SMAO API Documentation
Public APIKnowledge items

Create a knowledge item

Creates a new knowledge item and asynchronously embeds its text for retrieval. sync_status.state follows the lifecycle:

pendingsyncingsynced (success) or failed (terminal).

Poll the item via GET to observe the transition. pending is non-terminal: use a client-side polling timeout because a queueing failure can leave the item pending. A later valid PATCH re-enqueues indexing; contact support if the state does not progress.

POST
/knowledge-items
AuthorizationBearer <token>

API key in the Authorization: Bearer <key> header. Keys are created in the SMAO dashboard (Settings → API Keys).

In: header

group_idstring
Match^[a-f0-9]{24}$
namestring

Trimmed of leading/trailing whitespace before storage.

Length1 <= length <= 200
textstring
Length1 <= length <= 5000000
active?boolean
Defaulttrue

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.smao.ai/api/v1/knowledge-items" \  -H "Content-Type: application/json" \  -d '{    "group_id": "string",    "name": "string",    "text": "string"  }'
{
  "data": {
    "id": "string",
    "group_id": "string",
    "name": "Shipping Policy",
    "active": true,
    "text_length": 5000000,
    "sync_status": {
      "state": "pending",
      "synced_at": "2019-08-24T14:15:22Z",
      "total_chunks": 0,
      "estimated_duration_ms": 0,
      "error": "string"
    },
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
  }
}
{
  "error": {
    "code": "validation_failed",
    "message": "Validation failed"
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Missing API key"
  }
}
{
  "error": {
    "code": "subscription_required",
    "message": "This feature is not available in your current subscription. Please upgrade to a higher plan"
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "No permission"
  }
}
{
  "error": {
    "code": "not_found",
    "message": "Not found"
  }
}
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded"
  }
}
{
  "error": {
    "code": "internal_error",
    "message": "An unexpected error occurred."
  }
}