Appearance
Data API
The Data API is how you get data into axite. You upload objects to a named entry point on a Content Engine; from there the engine's workflow stores, generates, quality-checks and delivers the content.
This is one half of the integration — data in. For content out, see Receiving Webhooks.
Need a custom data source?
Prefer a connector to your PIM, or want axite to pull from your system instead of pushing? We build custom in-integrations with you as part of onboarding — just ask your axite contact.
Entry points
You don't upload to a data pool directly. Every upload targets a named entry point — a labelled starting node in your engine's workflow. The entry-point name is the last segment of the upload URL, so you can route different feeds (e.g. products, categories) into different parts of the workflow.
A new entry point becomes available once the workflow is published.
Authentication
Requests are authenticated with a bearer token — an API client created in your Content Engine's settings, scoped to that engine. Send it on every request; never embed it in client-side code.
Upload data
Upload one or more objects to an entry point with a PUT request:
PUT https://{organization}.api.axite.app/v4/pipelines/{pipeline}/upload/{entryPoint}- Send a single JSON object to upload one object.
- Send a JSON array, JSONL, CSV or XLSX to upload many at once. For tabular formats, each row becomes one object.
- Set the matching
Content-Typefor the body you send.
| Body | Content-Type |
|---|---|
| Single object | application/json |
| Array of objects | application/json |
| JSON Lines — newline-delimited JSON objects, one per line | application/jsonl |
| CSV | text/csv |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
Size limits
JSONL is the preferred format for large uploads — a JSONL request can be gigabytes. The other formats (a JSON array, CSV, or XLSX) are capped at 100 MB per request, and a single object (one record) at 100 KB.
Request
bash
curl --request PUT \
--url https://yourorg.api.axite.app/v4/pipelines/yourPipeline/upload/yourEntrypoint \
--header 'Authorization: Bearer $AXITE_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"sku": "SKU-4815",
"name": "Cordless drill 18V",
"price": 89.99,
"brand": "OBI"
}'Upload many objects in one request by sending an array:
bash
curl --request PUT \
--url https://yourorg.api.axite.app/v4/pipelines/yourPipeline/upload/yourEntrypoint \
--header 'Authorization: Bearer $AXITE_API_KEY' \
--header 'Content-Type: application/json' \
--data '[
{ "sku": "SKU-4815", "name": "Cordless drill 18V", "price": 89.99 },
{ "sku": "SKU-2342", "name": "Impact driver", "price": 64.50 }
]'…or a file (JSONL is preferred for large uploads):
bash
curl --request PUT \
--url https://yourorg.api.axite.app/v4/pipelines/yourPipeline/upload/yourEntrypoint \
--header 'Authorization: Bearer $AXITE_API_KEY' \
--header 'Content-Type: application/jsonl' \
--data-binary @products.jsonlThe identifier field
Each record needs a stable identifier — the field that tells axite which object an upload refers to, so re-uploading updates that object instead of creating a duplicate. Internally this becomes the object's uid.
Talk to us about your identifier
Which field is your identifier — e.g. a product sku or id — and how it maps to the object uid is set up per engine during onboarding. Tell us about your data and we'll configure it with you.
What happens after upload
- The raw upload is received at the entry point and kept — every upload is kept. See Uploads.
- It runs through the engine's workflow from that entry point.
- When it reaches a Data Pool node it's stored as objects, keyed by the identifier.
- If autogenerate is on, each new or changed object continues through the workflow — generate, quality-check, route — and the finished content is delivered to your webhook.