Base URL
https://prod-backend-api.cevvo.ai/api/v1Authentication
All API requests require authentication using an API key. Include your API key in the request header.
Header Parameters
Bearer token using your API key
Generate API keys from the API Keys page in your dashboard.
curl --request GET \
--url 'https://prod-backend-api.cevvo.ai/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY'SDKs
Official client libraries to integrate Cevvo into your application.
JavaScript / TypeScript
@cevvo/sdknpm install @cevvo/sdkPython
cevvo-sdkpip install cevvo-sdkGo
cevvo-gogo get github.com/cevvo/cevvo-gocURL
REST API# No installation neededChat
Send messages and manage conversations.
/chatSend a message and get an AI-generated response based on your knowledge base.
Body Parameters
The user message to send.
Conversation thread ID for context continuity.
Model to use for generation (auto, gpt-4o, claude-sonnet-4-20250514).
curl --request POST \
--url 'https://api.cevvo.com/api/v1/chat' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"message": "How do I get started?",
"thread_id": null
}'{
"id": "msg_abc123",
"answer": "To get started with Cevvo, first create a source...",
"thread_id": "thr_xyz789",
"sources": [
{
"title": "Getting Started Guide",
"url": "https://docs.example.com/getting-started",
"score": 0.95
}
],
"model": "gpt-4o",
"usage": {
"prompt_tokens": 512,
"completion_tokens": 128
}
}/chat/streamSend a message and receive a streaming response using Server-Sent Events (SSE).
Body Parameters
The user message to send.
Conversation thread ID for context continuity.
curl --request POST \
--url 'https://api.cevvo.com/api/v1/chat/stream' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"message": "Explain the main features"
}'data: {"type": "text", "text": "To get "}
data: {"type": "text", "text": "started "}
data: {"type": "text", "text": "with Cevvo..."}
data: {"type": "sources", "sources": [...]}
data: [DONE]Conversations
Manage conversation threads and history.
/conversationsList all conversations with pagination support.
Query Parameters
Page number for pagination.
Number of items per page (max 100).
curl --request GET \
--url 'https://api.cevvo.com/api/v1/conversations?page=1&per_page=20' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"data": [
{
"id": "thr_xyz789",
"title": "Getting started help",
"message_count": 4,
"created_at": "2026-03-10T14:30:00Z",
"updated_at": "2026-03-10T14:35:22Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 42
}
}/conversations/:idGet a specific conversation with all messages.
Path Parameters
The conversation thread ID.
curl --request GET \
--url 'https://api.cevvo.com/api/v1/conversations/thr_xyz789' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"id": "thr_xyz789",
"title": "Getting started help",
"messages": [
{
"role": "user",
"content": "How do I get started?",
"created_at": "2026-03-10T14:30:00Z"
},
{
"role": "assistant",
"content": "To get started with Cevvo...",
"sources": [...],
"created_at": "2026-03-10T14:30:02Z"
}
],
"created_at": "2026-03-10T14:30:00Z"
}/conversations/:idDelete a conversation and all its messages.
Path Parameters
The conversation thread ID to delete.
curl --request DELETE \
--url 'https://api.cevvo.com/api/v1/conversations/thr_xyz789' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"deleted": true
}Sources
Manage knowledge base sources.
/sourcesList all knowledge base sources.
Query Parameters
Page number for pagination.
Number of items per page.
Filter by source type (website, file, text).
curl --request GET \
--url 'https://api.cevvo.com/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"data": [
{
"id": "src_abc123",
"name": "Product Documentation",
"type": "website",
"url": "https://docs.example.com",
"status": "synced",
"document_count": 156,
"last_synced_at": "2026-03-10T12:00:00Z",
"created_at": "2026-02-15T10:00:00Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 5
}
}/sourcesCreate a new knowledge base source.
Body Parameters
Display name for the source.
Source type: website, file, or text.
URL to crawl (required for website type).
Enable automatic syncing on a schedule.
curl --request POST \
--url 'https://api.cevvo.com/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "Product Docs",
"type": "website",
"url": "https://docs.example.com",
"auto_sync": true
}'{
"id": "src_def456",
"name": "Product Docs",
"type": "website",
"url": "https://docs.example.com",
"status": "pending",
"auto_sync": true,
"created_at": "2026-03-14T10:00:00Z"
}/sources/:idGet details for a specific source.
Path Parameters
The source ID.
curl --request GET \
--url 'https://api.cevvo.com/api/v1/sources/src_abc123' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"id": "src_abc123",
"name": "Product Documentation",
"type": "website",
"url": "https://docs.example.com",
"status": "synced",
"document_count": 156,
"auto_sync": true,
"last_synced_at": "2026-03-10T12:00:00Z",
"created_at": "2026-02-15T10:00:00Z"
}/sources/:idUpdate an existing source.
Body Parameters
Updated display name.
Enable or disable auto sync.
curl --request PUT \
--url 'https://api.cevvo.com/api/v1/sources/src_abc123' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "Updated Docs",
"auto_sync": false
}'{
"id": "src_abc123",
"name": "Updated Docs",
"type": "website",
"auto_sync": false,
"updated_at": "2026-03-14T11:00:00Z"
}/sources/:idDelete a source and all its ingested documents.
Path Parameters
The source ID to delete.
curl --request DELETE \
--url 'https://api.cevvo.com/api/v1/sources/src_abc123' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"deleted": true
}Ingestion
Ingest and manage documents.
/ingest/uploadUpload and ingest a document file (PDF, DOCX, TXT, MD).
Body Parameters
The document file to upload.
The source to ingest the document into.
curl --request POST \
--url 'https://api.cevvo.com/api/v1/ingest/upload' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--form 'file=@document.pdf' \
--form 'source_id=src_abc123'{
"job_id": "job_ing_001",
"status": "processing",
"file_name": "document.pdf",
"source_id": "src_abc123"
}/ingest/urlIngest content from a URL.
Body Parameters
The URL to fetch and ingest.
The source to ingest into.
curl --request POST \
--url 'https://api.cevvo.com/api/v1/ingest/url' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://example.com/guide",
"source_id": "src_abc123"
}'{
"job_id": "job_ing_002",
"status": "processing",
"url": "https://example.com/guide",
"source_id": "src_abc123"
}/ingest/status/:idCheck the status of an ingestion job.
Path Parameters
The ingestion job ID.
curl --request GET \
--url 'https://api.cevvo.com/api/v1/ingest/status/job_ing_001' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"job_id": "job_ing_001",
"status": "completed",
"documents_processed": 24,
"started_at": "2026-03-14T10:00:00Z",
"completed_at": "2026-03-14T10:02:15Z"
}Analytics
Access analytics and insights.
/analytics/overviewGet dashboard overview metrics including total conversations, resolution rate, and response time.
Query Parameters
Time period: 24h, 7d, 30d, 90d.
curl --request GET \
--url 'https://api.cevvo.com/api/v1/analytics/overview?period=7d' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"total_conversations": 1247,
"resolution_rate": 0.89,
"avg_response_time_ms": 1250,
"total_messages": 4821,
"period": "7d",
"trend": {
"conversations": 0.12,
"resolution_rate": 0.03
}
}/analytics/top-questionsGet the most frequently asked questions.
Query Parameters
Number of questions to return (max 50).
Time period: 24h, 7d, 30d, 90d.
curl --request GET \
--url 'https://api.cevvo.com/api/v1/analytics/top-questions?limit=10' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"data": [
{
"question": "How do I get started?",
"count": 89,
"resolved_rate": 0.95
},
{
"question": "What pricing plans are available?",
"count": 67,
"resolved_rate": 0.88
}
]
}/analytics/coverage-gapsGet questions that could not be answered from the knowledge base.
Query Parameters
Number of gaps to return.
Time period: 24h, 7d, 30d, 90d.
curl --request GET \
--url 'https://api.cevvo.com/api/v1/analytics/coverage-gaps?limit=10' \
--header 'Authorization: Bearer YOUR_API_KEY'{
"data": [
{
"question": "Do you support SSO?",
"count": 23,
"first_asked": "2026-03-08T09:15:00Z"
}
]
}Rate Limits
API requests are limited to 100 requests per minute per API key. Exceeding this limit will result in a 429 Too Many Requests response.