ContentIQ Documentation
API Reference

REST endpoints for ingestion, storage administration, and analytics.

API Reference

Explore REST endpoints for ingestion, storage administration, and analytics.

Getting Your API Key

Through the Web Interface

  1. Login to your ContentIQ account
  2. Go to Settings (left sidebar)
  3. Click the ContentIQ API tab
  4. Click Generate next to ContentIQ API Key
  5. 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/ingest
  • GET /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/ingest
  • GET /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-files
  • POST /api/headless/onedrive/ingest
  • GET /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"

SharePoint

Browse SharePoint sites and ingest site content.

Endpoints:

  • GET /api/headless/sharepoint/sites
  • GET /api/headless/sharepoint/sites/<site_id>/drives
  • GET /api/headless/sharepoint/sites/<site_id>/pages
  • GET /api/headless/sharepoint/sites/<site_id>/lists
  • POST /api/headless/sharepoint/ingest
  • GET /api/headless/sharepoint/status/<run_id>
  • GET /api/headless/sharepoint/status/<run_id>/stream
curl -X GET "https://backend.contentiq.symplistic.ai/api/headless/sharepoint/sites" \
        -H "Authorization: Bearer YOUR_API_KEY_HERE"

Box

List Box files and start Box ingestion.

Endpoints:

  • GET /api/headless/box/list-files
  • POST /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-files
  • POST /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/credentials
  • POST /api/headless/milvus/credentials
  • DELETE /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"
          }'