Profile Read API

Lexer provides its customers with a low-latency API for reading Profile data from within the Lexer CDP.

Although the uses of this API are open to the customer's imagination, we foresee most using this for:

  • On-site personalisation: integrated with OSP platforms such as Optimizley, Adobe Experience Manager, etc
  • In-Site, App, or Platform via custom integration to change the user experience of your digital platforms
  • Real-time ad personalisation or bidding

However, this API is not intended to be used as a method of large scale extraction of data - such as exporting large segments of profile data. We provide customers with other, more scalable platforms, to deliver to those use cases.

Please note
Access to the Profile Read API requires configuration with the Lexer team as security is of the utmost importance.

Authentication

Securing the Profile Data API is a primary concern and needs to be designed in collaboration with the owner of the platforms consuming this API.
The caution here is that light security could result in unwanted figures being able to request profile data - essentially being able to access all the profile data held within the Lexer CDP.

To overcome this, we work with the Customer and platform owner to implement a series of authentication and security controls specific to the use case. These may include:

  • Whitelisted IP addresses for server-to-server communication
  • API keys with limited scope for data extraction
  • CORS for server-to-browser/app communication
  • The setup of a customer-owned proxy to prevent public access without internal authentication

Regardless of the solution determined, Lexer also rate limits and has alerting built into the API to ensure outlier requests are handled with the utmost caution.

Hub permissions

To be able to use this API, your account will need specific Hub permissions. You could adjust your Admin Group permissions, or create an entirely new group eg. API Permission, depending on your needs.
Whichever group you decide to use will need:

  • Edit Teams (allows you to create and update API tokens).
  • Access to Segment & Compare (allows you to see all attributes).
  • You may also need to add to the Allowed Attributes section. You can add a wildcard (eg au.com.fitness*), or specific attribute keys. For more information about how to do this, read our Manage Team article.

Please reach out to Support, or your Success manager, if you need any help.

Rate limiting

To prevent misuse of the Profile Data API, the API is rate limited within boundaries agreed with the Customer upon setup.

This is defined as the number of requests per minute permitted before returning a 429 Too Many Requests response code to the requester.

Lexer monitors the number of requests for billing and security purposes, these reports can be provided to customers to help alter rate limiting rules to ensure platform performance and cost management.

By default, the rate limit for each API key is set to 10 requests per second. However, it can be increased for your use cases by contacting support at support@lexer.io (support@lexer.io).

Profiles

The Profile Read API accepts POST requests only, and returns JSON upon return.

Lookups

API requests are made by providing a known identifier of the profile you would like to load data of. Depending on your CDP data set and configuration, you will likely be able to look up via:

  • [.code]email[.code]
  • [.code]email_sha256[.code]
  • [.code]customer_id[.code]
  • [.code]mobile[.code]

It is possible to customise the supported links for a customer in particular use cases, however, may require additional configuration of the CDP.

Responses.

Please note
Profiles can only be accessed one at a time, as the use case for our PDaaS API is to power personalisation use cases, not exports or large transfers. Lexer has other, more scalable methods, of transferring high volumes of profiles, contact us for more information.

Internally, Lexer attempts to find the profile with the link type matching the provided link value.
We respond with one of the following 4 HTTP codes:

In the scenario of a 200 response, the JSON payload will contain the Profile attributes configured to be exposed by the API...

Please note
The data exposed by the API is configured on an API by API basis. Meaning each Customer can configure which data is exposed for specific API credentials - allowing one implementation to access more data than the next in an attempt to limit the inherit risk of such public-facing APIs.

Updated:
October 14, 2022
Did this page help you?
Thank you! Your feedback has been received!
Oops! Something went wrong while submitting the form, for assistance please contact support@lexer.io
Welcome to Lexer!
Fundamentals
Getting started
Our glossary
Fundamentals
Getting started
Integrations
Fundamentals
Setup
My account
Fundamentals
Setup
Manage team
Fundamentals
Setup
Group permissions
Fundamentals
Setup
Classifications
Fundamentals
Setup
Out of the box segments
Fundamentals
Setup
Browser guide
Fundamentals
Security
Corporate networks
Fundamentals
Security
Emergency contact
Fundamentals
Security
Multi-factor authentication
Fundamentals
Security
Single sign-on
Fundamentals
Security
Trust and compliance
Fundamentals
Security
Lexer's Identity Resolution
Fundamentals
Identity Resolution
Troubleshooting tech issues
Fundamentals
Troubleshooting
Error code: 503 Service Unavailable
Fundamentals
Troubleshooting
Error code: 401 Unauthorized
Fundamentals
Troubleshooting
Error code: 403 Forbidden
Fundamentals
Troubleshooting
Troubleshooting Activate
Fundamentals
Troubleshooting
Troubleshooting Respond
Fundamentals
Troubleshooting
Help! My data is missing from the Hub
Fundamentals
Troubleshooting
Understanding APIs at Lexer
Data
Data Onboarding
Providing JSON data to Lexer
Data
Data Onboarding
Providing CSV data to Lexer
Data
Data Onboarding
Upload using SFTP
Data
Data Onboarding
Upload using S3
Data
Data Onboarding
Lexer data specification
Data
Lexer Data Specification
Customer data specification
Data
Lexer Data Specification
Commerce data specification
Data
Lexer Data Specification
Marketing data specification
Data
Lexer Data Specification
Compliance data specification
Data
Lexer Data Specification
Data Formatting and Validation
Data
Getting Started with APIs
Authentication and API token creation
Data
Getting Started with APIs
Rate Limits
Data
Getting Started with APIs
Response codes and common errors
Data
Getting Started with APIs
Product imagery
Data
Getting Started with APIs
Currency conversion
Data
Getting Started with APIs
Lexer’s APIs overview
Data
Lexer’s APIs
Dataset management in the Hub
Data
Dataset management
Chatbox user API
Data
Lexer’s APIs
Activity API
Data
Lexer’s APIs
Visualize API
Hidden from nav
Profile Read API
Data
Lexer’s APIs
Lexer Javascript Tag basics
Data
Lexer Javascript Tag
Lexer Javascript Tag technical guide
Data
Lexer Javascript Tag
Lexer Javascript Tag use cases
Data
Lexer Javascript Tag
dataLayer configuration: Shopify
Data
Lexer Javascript Tag
Customer segment CSV export
Data
Data off-boarding
Export to CSV
Data
Data off-boarding
Data in Lexer's CDXP
Understand
Customer Data
Lexer's attributes
Understand
Customer Data
Attribute value types
Understand
Customer Data
Data source - CRM
Understand
Customer Data
Data source - Transactions
Understand
Customer Data
Data source - Email
Understand
Customer Data
Partner data - Experian
Understand
Customer Data
Partner data - Mastercard
Understand
Customer Data
Partner data - Roy Morgan
Understand
Customer Data
GDPR and CCPA requests
Understand
Customer Data
Upload data files
Understand
Customer Data
File upload API
Understand
Customer Data
Data provision and schemas
Understand
Customer Data
Segment overview
Understand
Segment
Creating segments
Understand
Segment
Smart Search
Understand
Segment
Export attribute results
Understand
Segment
Contact a customer
Understand
Segment
Fixing a disabled segment
Understand
Segment
Profile tab
Understand
Segment
Compare segments
Understand
Compare
Compare attributes
Understand
Compare
Activate overview
Engage
Activate
Ongoing activations
Engage
Activate
Audience splits
Engage
Activate
A/B splits
Engage
Activate
Control group splits
Engage
Activate
Inbox filtering
Engage
Respond
Ignored Senders
Engage
Respond
Forms for service
Engage
Respond
Workflow states
Engage
Respond
Bulk changes
Engage
Respond
Scheduled replies
Engage
Respond
Message templates
Engage
Respond
Customer profiles
Engage
Respond
Grouped messages
Engage
Respond
Automation rules
Engage
Respond
Redact messages
Engage
Respond
Track overview
Measure
Track
Activity overview
Measure
Activity
Team report
Measure
Activity
Cases report
Measure
Activity
Listen overview
Measure
Listen
Searching in Listen
Measure
Listen
Tier filters
Measure
Listen
Boolean search
Measure
Listen
Saved dives
Measure
Listen
Email notifications
Measure
Listen
Twitter data
Measure
Listen
Facebook data
Measure
Listen
Instagram data
Measure
Listen
Visualize overview
Measure
Visualize
Curate feed
Measure
Visualize
Report overview
Measure
Report