Status codes and API info
All Etals integration endpoints take and return JSON. Send these headers on every request:
Without Accept: application/json, authentication and permission failures answer with a redirect or an HTML page instead of the JSON shown here.
Funnel API
POST and DELETE on /api/v1/funnels/{endpoint-url}. Details on Data sync via Funnel API.
Funnel bodies always have status (success or error) and message, plus errors, errorsWithoutIdentifier and data when they have content.
Feedback API
POST /api/v1/feedback/content-job-values. Details on API Feedback.
Feedback bodies use success (true or false) and message, plus data or errors. Body validation errors use the standard format {"message": "...", "errors": {"field.path": ["..."]}}.
Authentication errors
The same for every endpoint:
is returned with 401, and
with 403. See Authorization.
Rate limits
The funnel and feedback endpoints have no request rate limit today, so they do not return 429. Other Etals API endpoints do. If you get a 429, wait for the number of seconds in the Retry-After header before sending again.
Retrying safely
- Retry on network errors and
5xx, with increasing waits (for example 5 s, 30 s, 2 min). - Do not retry
400,401,403,404or422without changing something first. - Funnel requests are safe to repeat: items are matched by identifier, so sending the same body twice gives the same result.
- Feedback requests are not deduplicated. Sending the same feedback twice stores it twice and can create two tasks. Only retry a feedback request when you did not get a response.
Your receiver’s status codes
For the other direction, where Etals calls your endpoint, Etals treats any 2xx as delivered and everything else, including timeouts, as failed. See How Etals reads your response.
