Public API · no dashboard access needed

Send inbound messages into Tindel's triage loop.

POST a sender, subject, and message body to the public ingestion endpoint. Tindel classifies the message as reply, escalate, or junk and returns the triage result immediately.

Endpoint
Use the deployed origin for the Tindel workspace you want to receive messages.

POST

/api/ingest
No authentication header is required.
Cross-origin POSTs are supported.
Required headers
Send JSON. There are no API keys or signatures to provision.
Content-Typeapplication/json · required
Acceptapplication/json · optional

Do not add an Authorization header. This endpoint is intentionally public for inbound integrations.

Request body

Three fields, each a non-empty string.

The sender, subject, and body are the complete ingestion contract. Preserve the original message text in body so the classifier has the context it needs.

from
Required · string
The inbound sender address or identifier.
subject
Required · string
The original subject or conversation title.
body
Required · string
The full inbound message content to classify.

Quickstart

Copy, replace the origin, and send.

The example uses a placeholder hostname. Replace your-tindel-origin.example with the deployed origin shown above.

curl -X POST 'https://your-tindel-origin.example/api/ingest' \
  -H 'content-type: application/json' \
  -d '{
    "from": "[email protected]",
    "subject": "Question about my order",
    "body": "Hi, could you tell me when order #1842 will ship?"
  }'

Responses

A result you can route immediately.

A successful request returns 201 Created after Tindel classifies and stores the ticket. The response includes the ticket id plus the model's caller-facing triage result.

201 · Created
classification is one of reply, escalate, or junk. draft, channel, notes, reasoning, and confidence may be null or omitted when unavailable.
{
  "id": "cmj8q2n4f0001q2x0k3m8p7ab",
  "classification": "reply",
  "draft": "Hi! Order #1842 is scheduled to ship tomorrow.",
  "channel": "email",
  "notes": null,
  "reasoning": "Routine order-status question with enough context to answer.",
  "confidence": 0.96
}
400 · Validation error
One or more required fields are empty or missing.
{
  "errors": {
    "from": "From is required",
    "subject": "Subject is required",
    "body": "Body is required"
  }
}
500 · Internal Server Error
Retry safely if the service has a transient failure.
{
  "error": "Internal Server Error"
}

Cross-origin requests

Preflight is already handled.

Browser clients posting from another origin may send an OPTIONS preflight first. Tindel answers with 204 No Content, allows POST, OPTIONS, accepts the content-type request header, and returns permissive CORS headers on both preflight and POST responses.

OPTIONS /api/ingest

204 · no response body

Access-Control-Allow-Origin: *