Elisiom

API Reference

Complete reference for Elisiom's REST API endpoints.

Complete reference for Elisiom's REST API endpoints. The current public API is built around two operations:

  • indexing documents into a workspace search index
  • asking questions against those indexed documents

All API requests require authentication via API key.

Authentication

Send your API key in one of these headers:

  • x-api-key
  • Authorization: Bearer <your_api_key>
curl -X GET "https://dynamic-butterfly-742.eu-west-1.convex.site//v1/info?question=What%20does%20this%20workspace%20contain%3F" \
-H "x-api-key: your_api_key_here"

Base URL

Base URL from the app environment:

https://dynamic-butterfly-742.eu-west-1.convex.site/

Endpoints

GET /v1/info

Ask a question against the current workspace index. This endpoint:

  • verifies the API key
  • counts against the workspace monthly request limit
  • searches the workspace index
  • generates an answer from the matched documents

Headers

ParameterTypeRequiredDescription
x-api-keystringYesA valid workspace API key

Query Parameters

ParameterTypeRequiredDescription
questionstringYesNatural-language question to answer
limitnumberNoNumber of search matches to use. Clamped internally.

Responses

200 Success
{
  "answer": "The workspace contains onboarding documents, deployment notes, and pricing information.",
  "matches": [
    {
      "id": "doc_01",
      "score": 0.92,
      "content": {
        "text": "Pricing updated on April 3, 2026..."
      },
      "metadata": {
        "source": "pricing.md"
      }
    }
  ],
  "index": "k57c9v8kz7r1x..."
}
400 Missing Question
{
  "error": "Missing required parameters: question"
}
401 Invalid API Key
{
  "error": "Invalid API key"
}
429 Request Limit Exceeded
{
  "error": "Request limit exceeded. Please upgrade your plan or wait for the monthly reset.",
  "currentUsage": 100,
  "limit": 100,
  "resetPeriod": "monthly"
}
500 Server Error
{
  "error": "Internal server error",
  "message": "Workspace search is not configured."
}

POST /v1/insert

Insert one or more documents into the current workspace index.

This endpoint:

  • verifies the API key
  • counts against the workspace monthly request limit
  • checks the remaining document quota for the workspace
  • uploads documents to Upstash Search in chunks

Only array-based inserts are supported.

Headers

ParameterTypeRequiredDescription
x-api-keystringYesA valid workspace API key
Content-TypestringYesMust be application/json

Request Body

FieldTypeRequiredDescription
documentsarrayYesArray of documents to insert
documents[].documentanyYesRaw document content. Strings and objects are both accepted.
documents[].metadataanyNoArbitrary metadata stored with the document
documents[].idstringNoOptional document ID. A UUID is generated if omitted.
Request Body Example
{
  "documents": [
    {
      "id": "pricing-2026-04-03",
      "document": {
        "text": "Pricing updated on April 3, 2026."
      },
      "metadata": {
        "source": "pricing.md",
        "section": "plan-table"
      }
    },
    {
      "document": "Workspace onboarding checklist",
      "metadata": {
        "source": "onboarding.md"
      }
    }
  ]
}

Responses

201 Created
{
  "success": true,
  "insertedCount": 2,
  "documentIds": [
    "pricing-2026-04-03",
    "1f34c6c5-4d91-4b54-b2b9-cf5c39d2c7f7"
  ],
  "index": "k57c9v8kz7r1x...",
  "currentDocuments": 24,
  "remainingDocuments": 226,
  "limit": 250
}
400 Invalid Body
{
  "error": "Missing required field: documents"
}
400 Invalid Item
{
  "error": "Missing required field: documents[].document"
}
409 Document Limit Exceeded
{
  "error": "Document limit exceeded.",
  "requested": 300,
  "currentDocuments": 50,
  "remainingDocuments": 200,
  "limit": 250
}
429 Request Limit Exceeded
{
  "error": "Request limit exceeded. Please upgrade your plan or wait for the monthly reset.",
  "currentUsage": 100,
  "limit": 100,
  "resetPeriod": "monthly"
}

Limits

Limits are enforced per workspace.

PlanRequests / monthDocuments / workspace
Free100250
Hobby2,0005,000
Pro5,00015,000
Growth12,00040,000
Scale30,000100,000

/v1/info and /v1/insert both count against the monthly request limit.


Error Handling

All API errors return JSON with an error field.

Status CodeDescription
200Success
201Insert created
400Missing or invalid input
401Invalid or missing API key
409Document quota conflict
429Monthly request limit exceeded
500Internal server error

Notes

  • API keys are workspace-scoped through Unkey identities.
  • Search results are generated from the indexed documents already stored for the workspace.
  • If search returns no useful matches, the answer endpoint may respond that it could not find relevant indexed documents.

On this page