CiteMind API Documentation
Connect agency workflows to CiteMind with secure REST endpoints for product context, visibility snapshots, and recommendations.
Getting Started
Go Live in 5 Minutes
A simple setup path for agencies integrating with n8n, Make, Zapier, or internal systems.
Step 1
Generate a token
Open Integrations in your workspace and generate an API access token.
Step 2
List products
Call `GET /api/v1/products` and select the target `product_id`.
Step 3
Call `/api/v1/query`
Send a POST request with an `operation` name and validated input.
Step 4
Use the response
Use the outputs to automate reporting and execution workflows.
List Products (cURL)
curl -X GET https://<your-domain>/api/v1/products \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Quick Query (cURL)
curl -X POST https://<your-domain>/api/v1/query \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operation": "get_product_context",
"input": { "product_id": "00000000-0000-0000-0000-000000000000" }
}'API Reference
Request Format, Operations, and Responses
All query calls use one endpoint with operation-dispatched inputs and outputs.
Endpoints
GET https://<your-domain>/api/v1/products
POST https://<your-domain>/api/v1/query
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/jsonlist_products
GET /api/v1/productsReturns all products available for the agency linked to the bearer token.
cURL
curl -X GET https://<your-domain>/api/v1/products \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Response
{
"ok": true,
"agency_id": "uuid",
"products": [
{
"id": "uuid",
"name": "Acme",
"website_url": "https://acme.com",
"normalized_domain": "acme.com",
"status": "active",
"created_at": "2026-03-01T10:00:00.000Z",
"updated_at": "2026-03-04T12:00:00.000Z"
}
]
}get_product_context
POST /api/v1/queryReturns core product metadata and analysis context.
Input
{
"product_id": "uuid"
}Output
{
"ok": true,
"operation": "get_product_context",
"result": { "product": { "id": "...", "name": "...", "website_url": "..." } }
}get_visibility_snapshot
POST /api/v1/queryReturns visibility summary, LLM segmentation, and prompt-level rows.
Input
{
"product_id": "uuid",
"from": "2026-03-01T00:00:00.000Z",
"to": "2026-03-04T23:59:59.999Z",
"llms": ["chatgpt", "gemini", "perplexity"]
}Output
{
"ok": true,
"operation": "get_visibility_snapshot",
"result": {
"summary": { "visibility_score": 61.3, "answered_prompts": 42 },
"by_llm": [{ "llm": "chatgpt", "visibility_score": 66.7 }],
"prompts": [{ "question_id": "...", "llm": "chatgpt", "best_rank": 4 }]
}
}list_recommendations
POST /api/v1/queryReturns recommendation list and summary counts with optional filters.
Input
{
"product_id": "uuid",
"status": "open",
"limit": 20
}Output
{
"ok": true,
"operation": "list_recommendations",
"result": {
"summary": { "total": 23, "open": 9, "in_progress": 8, "done": 6 },
"recommendations": [{ "recommendation_key": "...", "status": "open" }]
}
}JavaScript Example
const res = await fetch("https://<your-domain>/api/v1/query", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CITEMIND_API_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
operation: "list_recommendations",
input: { product_id: "<uuid>", status: "open", limit: 20 },
}),
});
const data = await res.json();Common Errors
401 Unauthorized: missing bearer token
403 Forbidden: revoked/expired token, invalid scope
400 Bad request: invalid input for selected operation
404 Product not found in your agency