API Reference
Explore REST endpoints for ingestion, storage administration, and analytics.
Getting Your API Key
Through the Web Interface
- Login to your ContentIQ account
- Go to Settings (left sidebar)
- Click the ContentIQ API tab
- Click Generate next to ContentIQ API Key
- Copy the key — you'll only see it once!
Important
- Keep your API key secure. Don't share it or commit it to code repositories.
- Each time you generate a new key, the previous one becomes invalid.
- You must be logged into your ContentIQ account to generate keys.
Rate Limits
API requests are rate-limited per user per minute. Limits vary by plan. Exceeding the limit returns an HTTP 429 (Too Many Requests) response.
Limits by plan
- Starter: 50 requests per minute
- Essentials: 100 requests per minute
- Standard: 150 requests per minute
- Premium: 200 requests per minute
Headless Chat
Notes:
- Agent ID is the watsonx Orchestrate Agent ID (find via ADK or in the ContentIQ dashboard under Usage Analytics).
- Authentication uses
Authorization: Bearer YOUR_API_KEY_HERE. - Thread ID should be generated per conversation and reused to preserve context.
Endpoint: POST /api/headless/chat
curl -X POST "https://backend.contentiq.symplistic.ai/api/headless/chat" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-d '{
"agent_id": "your-agent-id",
"message": "Hello! What can you help me with?",
"thread_id": "my-conversation-123"
}'
Streaming Chat
Server-Sent Events (SSE) variant for real-time streaming responses.
Endpoint: POST /api/headless/chat/stream
curl -N -X POST "https://backend.contentiq.symplistic.ai/api/headless/chat/stream" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-d '{
"agent_id": "your-agent-id",
"message": "Stream the answer please",
"thread_id": "my-conversation-123"
}'
Conversation History
Fetch or clear a stored headless conversation thread.
Endpoints:
GET /api/headless/conversations/<agent_id>/<thread_id>DELETE /api/headless/conversations/<agent_id>/<thread_id>
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/conversations/your-agent-id/my-conversation-123" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Document Ingestion
Upload local documents into an agent knowledge base.
Endpoints:
POST /api/headless/document/ingestGET /api/headless/document/status/<run_id>/stream
curl -X POST "https://backend.contentiq.symplistic.ai/api/headless/document/ingest" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-F "[email protected]" \
-F "[email protected]" \
-F "agent_id=your-agent-id" \
-F "agent_name=My Agent"
curl -N -H "Authorization: Bearer YOUR_API_KEY_HERE" \
"https://backend.contentiq.symplistic.ai/api/headless/document/status/<YOUR_RUN_ID>/stream"
Website Ingestion
Start a headless website crawl and stream its status.
Endpoints:
POST /api/headless/website/ingestGET /api/headless/website/status/<run_id>/stream
curl -X POST "https://backend.contentiq.symplistic.ai/api/headless/website/ingest" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-d '{
"website_url": "https://www.example.com",
"agent_id": "your-agent-id",
"agent_name": "My Agent"
}'
OneDrive
List OneDrive files, start ingestion, and monitor run status.
Endpoints:
GET /api/headless/onedrive/list-filesPOST /api/headless/onedrive/ingestGET /api/headless/onedrive/status/<run_id>GET /api/headless/onedrive/status/<run_id>/stream
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/onedrive/list-files" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Box
List Box files and start Box ingestion.
Endpoints:
GET /api/headless/box/list-filesPOST /api/headless/box/ingest
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/box/list-files" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
IBM COS
List IBM Cloud Object Storage objects and start ingestion.
Endpoints:
GET /api/headless/ibm_cos/list-filesPOST /api/headless/ibm_cos/ingest
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/ibm_cos/list-files?prefix=folder/" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
List Structured Data Files (Headless)
Returns structured files for an agent. Supports search, optional pagination, and optional detailed schema metadata.
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/structured_data/files?agent_id={agent_id}" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/structured_data/files?agent_id={agent_id}&limit=50&offset=0&detailed=true" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Delete Structured Data File (Headless)
Remove a structured data file by filename.
curl -X DELETE "https://backend.contentiq.symplistic.ai/api/headless/structured_data/files/{filename}?agent_id={agent_id}" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
List Milvus Sources (Headless)
List distinct sources in an agent vector collection.
Endpoint: GET /api/headless/milvus/sources?agent_id=...
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/milvus/sources?agent_id={agent_id}&batch_size=512" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Delete Milvus Chunks by Source (Headless)
Delete all chunks for a specific source URL.
Endpoint: DELETE /api/headless/milvus/chunks
curl -X DELETE "https://backend.contentiq.symplistic.ai/api/headless/milvus/chunks" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "{agent_id}",
"source": "https://example.com/document1.pdf"
}'
Delete Entire Milvus Collection (Headless)
⚠️ WARNING: This permanently deletes the entire Milvus collection for an agent. This action cannot be undone.
Endpoint: DELETE /api/headless/milvus/collection
curl -X DELETE "https://backend.contentiq.symplistic.ai/api/headless/milvus/collection" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "{agent_id}"
}'
Milvus Credentials (Headless)
Manage service-account-scoped Milvus credentials used by headless vector operations.
Endpoints:
GET /api/headless/milvus/credentialsPOST /api/headless/milvus/credentialsDELETE /api/headless/milvus/credentials
curl -X POST "https://backend.contentiq.symplistic.ai/api/headless/milvus/credentials" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"uri": "https://your-milvus-endpoint",
"token": "your-milvus-token"
}'