Push ingest API
Connectors are not finished yet
Connectors work end to end, but the configuration vocabulary is still developer-facing and the dry-run flow is being revised. Showcase marks Integrations as coming soon in the editor for that reason. The rest of Audience Integrations is generally available.
Endpoint
POST /api/integrations/:connector/ingest
Authorization: Bearer <named-connector-credential>
Content-Type: application/json | text/csv | application/xml
The connector slug selects parser, mapping, target, deletion policy, and limits. Authentication uses a named credential created for this connector, not an editor access token. The administrator sees the secret only once; store it in the sending system's secret manager.
CSV example
curl --fail-with-body 'https://showcase.example/api/integrations/visitor-directory/ingest' \
-H 'Authorization: Bearer <named-connector-credential>' \
-H 'Content-Type: text/csv' \
--data-binary @people.csv
person_id,display_name,email,tier
P-001,Ada Example,ada@example.invalid,gold
P-002,Lin Example,lin@example.invalid,silver
JSON example
curl --fail-with-body 'https://showcase.example/api/integrations/catalog/ingest' \
-H 'Authorization: Bearer <named-connector-credential>' \
-H 'Content-Type: application/json' \
--data-binary @catalog.json
{
"items": [
{ "id": "ITEM-1", "title": "Example item", "description": "Fixture data" }
]
}
A successful response includes run ID, status, counts, and any record-level errors. A second payload with the same external ID updates the mapped record rather than creating a duplicate.
Errors
| Status | Meaning | Action |
|---|---|---|
| 400 | Payload, parser, mapping, or target is invalid | Read response and run history; correct with dry-run |
| 401 | Connector credential missing, invalid, or revoked | Create a replacement credential, update the sender, then revoke the old one |
| 404 | Connector does not exist or is unavailable | Check the slug and connector state; involve support if an engineering kill switch is active |
| 413 | Request exceeds body-size cap | Split or reduce the payload |
| 429 | Connector rate limit exceeded | Wait for the window; do not retry in a tight loop |
| 500 | Unexpected server failure | Preserve run ID, response, timestamp, and service log |
Do not automatically retry ambiguous 400/500 responses without checking run history: valid records may already have been applied in a partial run. Use external IDs to make deliberate retries idempotent.