Endpoint
The endpoint URL uses the
analytex environment. For EU data residency, use
analytex-eu instead. See Environment
Settings for your specific endpoint.Headers
Request Body
JSON Payload Example
Response
A successful call returns202 Accepted with a job object:
Row-level validation (e.g. a missing
user_id) doesn’t fail the request itself: the job is still accepted and queued. Invalid rows fail individually during processing; check the job status endpoint for a reason_for_failure field explaining what went wrong with each failed row.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
Request Body
Submit the file using multipart/form-data. Include a key calledfile with your NDJSON file:
Response
A successful call returns the same job object shape as the JSON payload endpoint above, with one difference:filename reflects the name of the file you uploaded instead of an auto-generated name.
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
The API returns the following error responses:401 Unauthorized: Returned when the API token is missing, invalid, or isn’t a write/admin token409 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.
- Stuck Jobs: If a job’s processing time is taking much longer than expected, contact support@userpilot.com for help.