• LLM calls (type = "llm")
  • Tool usage (type = "tool")
  • Chat/thread messages (type = "thread")
  • Retrieval-augmented generation (type = "retriever")
  • Simple logs (type = "log")

Sending Events

Use the endpoint:

POST /v0/ingest

Required Headers

  • Authorization: Bearer YOUR_API_KEY
  • x-avido-app-id: YOUR_APP_UUID

Request Body

{
  "events": [
    {
      "type": "llm",
      "event": "start",
      "runId": "some-run-id",
      "timestamp": "2025-01-05T12:34:56.789Z",
      "input": "...",
      "metadata": { "model": "gpt-4" }
    }
  ]
}

You can send multiple events at once. Avido will sort them by timestamp and store them in chronological order.

Response

On success, you’ll receive a 200 with a JSON body:

{
  "results": [
    {
      "id": "some-run-id",
      "success": true
    },
    {
      "id": "another-run-id",
      "success": false,
      "error": "Some error message"
    }
  ]
}

Monitoring vs. Evaluation

If your application has monitoring disabled, the ingestion endpoint will filter out any events without an evaluationId.

Tip: If you only want to track events for specific evaluations, ensure evaluationId is present.