Documentation Index
Fetch the complete documentation index at: https://cludo.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Push custom content to your search index when you need to index content that isn’t available via web crawling, such as database records, CMS content, or internal documents.
v4 Index Management (recommended)
Auth: Basic (API Key)
The request body for document operations is a plain JSON array of document objects.
Create or replace documents
Upsert documents. If a document with the same ID exists, it’s replaced.
Each document may optionally include a top-level type ("PageContent" or "FileContent") as a sibling of id and fields — not inside fields. It defaults to "PageContent"; use "FileContent" for files such as PDFs or DOCX so they are treated as file results in the index.
curl -X PUT "https://api.cludo.com/api/v4/{customerId}/index/{crawlerId}/documents" \
-H "Authorization: Basic {base64(customerId:apiKey)}" \
-H "Content-Type: application/json" \
-d '[
{
"id": "product-123",
"type": "PageContent",
"fields": {
"Title": "Widget Pro",
"Description": "Our most popular widget...",
"Url": "https://example.com/products/widget-pro",
"Category": "Products",
"Price": "99.00"
}
},
{
"id": "product-456",
"type": "FileContent",
"fields": {
"Title": "Widget Basic",
"Description": "Great for getting started...",
"Url": "https://example.com/products/widget-basic",
"Category": "Products",
"Price": "49.00"
}
}
]'
Partial update
Update specific fields without replacing the entire document. The optional top-level type works the same way here as on replace — omit it to keep the existing kind, or send "PageContent" / "FileContent" to set it.
curl -X PATCH "https://api.cludo.com/api/v4/{customerId}/index/{crawlerId}/documents" \
-H "Authorization: Basic {base64(customerId:apiKey)}" \
-H "Content-Type: application/json" \
-d '[
{
"id": "product-123",
"fields": {
"Price": "89.00"
}
}
]'
Delete documents
# Single document
curl -X DELETE "https://api.cludo.com/api/v4/{customerId}/index/{crawlerId}/documents?documentId=product-123" \
-H "Authorization: Basic {base64(customerId:apiKey)}"
# Bulk delete by filter (filters are ANDed together)
curl -X POST "https://api.cludo.com/api/v4/{customerId}/index/{crawlerId}/documents/bulk-delete" \
-H "Authorization: Basic {base64(customerId:apiKey)}" \
-H "Content-Type: application/json" \
-d '{
"Category": { "operator": "Eq", "values": ["Discontinued"] },
"Date_date": { "operator": "Lt", "values": ["2024/01/01"] }
}'
Queue URLs for Crawling
Instead of pushing document fields directly, you can queue URLs for the crawler to fetch:
curl -X POST "https://api.cludo.com/api/v4/{customerId}/crawler/{crawlerId}/paths" \
-H "Authorization: Basic {base64(customerId:apiKey)}" \
-H "Content-Type: application/json" \
-d '[
"https://example.com/new-page",
"https://example.com/updated-page"
]'