The Bulk Identify Users API allows you to create or update multiple user profiles in a single request. This is ideal for large-scale data synchronization, initial user imports, or batch updates from your CRM or database systems.Documentation Index
Fetch the complete documentation index at: https://docs.userpilot.com/llms.txt
Use this file to discover all available pages before exploring further.
Endpoint
The endpoint URL uses the
analytex environment. For EU data residency, use
analytex-eu instead. See Environment
Settings for your specific endpoint.Headers
| Header | Value | Required |
|---|---|---|
Content-Type | application/json | Yes |
Accept | application/json, text/plain, */* | Yes |
Authorization | Token {YOUR_API_KEY} | Yes |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
users | array | Yes | Array of user objects |
user_id | string | Yes | Unique identifier for the user |
company_id | string | No | Unique identifier for the company (if applicable) |
metadata | object | No | Key-value pairs describing the user (primitives only) |
JSON Payload Example
Response
A successful call returns a job object:File Upload (NDJSON)
For very large updates, you may upload NDJSON files containing user profiles.Endpoint
The endpoint URL uses the
analytex environment. For EU data residency, use
analytex-eu instead. See Environment
Settings for your specific endpoint.Headers
| Header | Value | Required |
|---|---|---|
Content-Type | multipart/form-data | Yes |
Accept | application/json, text/plain, */* | Yes |
Authorization | Token {YOUR_API_KEY} | Yes |
Request Body
Submit the file using multipart/form-data. Include a key calledfile with your NDJSON file:
Rate Limits
The Bulk Updates API implements rate limiting to ensure efficient processing of large-scale user data operations while maintaining system stability. These limits help optimize performance for bulk user profile updates and synchronizations.Rate Limit Details
- Job Limitation: One job at a time - The system processes only one bulk update job at a time (either user or company operations)
- User Processing: 1,800 users per minute service consumption rate
- JSON Payload: Up to 10,000 records per request
- File Upload: Up to 50 MB file size
Error Responses
When you exceed these limits, the API returns:409 Conflict: Returned when attempting to create a new job while another is in progress413 Payload Too Large: Returned when file size exceeds 50 MB or payload exceeds 10,000 records
Best Practices
Limitations
- File size up to 50 MB (for file uploads).
- JSON/NDJSON list up to 10,000 users per request.
- Only primitive types (string, number, boolean, null) are supported in metadata.
Best Practices
- Validate Your Data: Ensure each record includes the required identifiers (
user_id) and that metadata is formatted correctly. - Monitor Jobs: Always use the job monitoring endpoints to check the status of your bulk updates.
- Rate Limits and Retries: If you experience rate limits or timeouts, batch your requests and monitor job statuses before submitting more.
Troubleshooting
- Authentication Errors: Verify your API token and that it is sent in the
Authorizationheader. - Invalid Payload: Ensure your JSON/NDJSON is well-formed and required fields are present.
- Job Failures: Use the job status endpoint to inspect error messages for failed records or processing issues.