Quickstart
Authenticate, enqueue a bulk enrichment, then poll for results - the full flow in one example.
Four steps get you from zero to enriched data: create a key, exchange it for a token, call an endpoint, and optionally wire up a webhook so results land on your server without polling.
#Base URL
All requests go to:
https://api.up2data.ai/api#1. Create an API key
Go to Settings -> Integrations in the dashboard and create a new API key. Keys are long-lived credentials, so copy and store it securely and keep it out of source control.
#2. Get an access token
Exchange the key for a JWT access token with POST /api-auth/authenticate. The token is valid for 24 hours. See the Authentication guide for the full exchange.
#3. Make requests
Send the token in the Authorization header on every subsequent call. Most endpoints enqueue work and hand you a queueId; two of them enrich a single profile or company synchronously instead. See Queues and polling for reading queued results back.
#4. Set up webhooks (optional)
Configure a webhook in Settings -> Integrations to have results pushed to your server as soon as they finish, instead of polling /open-refresh/status. See the Webhooks guide.
#Complete flow
# 1. Authenticate and get access token
curl -X POST https://api.up2data.ai/api/api-auth/authenticate \
-H "Content-Type: application/json" \
-d '{"apiKey": "your-api-key-here"}'
# Response: {"accessToken": "eyJhbGciOiJIUzI1NiIs..."}
# 2. Enqueue profiles for enrichment
curl -X POST https://api.up2data.ai/api/open-refresh/profiles-bulk \
-H "Content-Type: application/json" \
-H "Authorization: eyJhbGciOiJIUzI1NiIs..." \
-d '{
"name": "My Enrichment Job",
"profiles": ["https://linkedin.com/in/johndoe", "https://linkedin.com/in/janedoe"],
"priority": 2
}'
# Response: {"message": "2 items have been enqueued.", "queueId": "..."}
# 3. Check status
curl -X GET "https://api.up2data.ai/api/open-refresh/status?queueId=..." \
-H "Authorization: eyJhbGciOiJIUzI1NiIs..."Every request that enqueues profiles or companies is billed by the item that survives normalization, not by the item you sent, except the Search API, which reserves against each link's limit and refunds unused credits. See the Credits guide for the full rate table.