curl -X POST https://api.tryprofound.com/v2/reports/citations \
-H "X-API-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"start_date": "2026-06-09",
"end_date": "2026-06-15"
}'
curl -X POST https://api.tryprofound.com/v2/reports/citations \
-H "X-API-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": {
"field": "citation_tag",
"op": "in",
"value": ["Editorial", "Docs"]
}
}'
{
"info": {
"total_results": 11662,
"count": 10,
"next_cursor": "Z0FBQUFBQnFQcWdrbDRiSHpGaktVNm5N...",
"scope": "all",
"models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
"metrics": ["count", "citation_share", "rank"],
"analysis_types": ["visibility"],
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": null
},
"data": [
{ "domain": "reddit.com", "rank": 1, "count": 13940, "citation_share": 0.040 },
{ "domain": "youtube.com", "rank": 2, "count": 16287, "citation_share": 0.037 },
{ "domain": "tryprofound.com", "rank": 3, "count": 10414, "citation_share": 0.029 }
// ...7 more rows in this page (count: 10, total_results: 11662); paginate with next_cursor
]
}
Citas
curl -X POST https://api.tryprofound.com/v2/reports/citations \
-H "X-API-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"start_date": "2026-06-09",
"end_date": "2026-06-15"
}'
curl -X POST https://api.tryprofound.com/v2/reports/citations \
-H "X-API-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": {
"field": "citation_tag",
"op": "in",
"value": ["Editorial", "Docs"]
}
}'
{
"info": {
"total_results": 11662,
"count": 10,
"next_cursor": "Z0FBQUFBQnFQcWdrbDRiSHpGaktVNm5N...",
"scope": "all",
"models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
"metrics": ["count", "citation_share", "rank"],
"analysis_types": ["visibility"],
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": null
},
"data": [
{ "domain": "reddit.com", "rank": 1, "count": 13940, "citation_share": 0.040 },
{ "domain": "youtube.com", "rank": 2, "count": 16287, "citation_share": 0.037 },
{ "domain": "tryprofound.com", "rank": 3, "count": 10414, "citation_share": 0.029 }
// ...7 more rows in this page (count: 10, total_results: 11662); paginate with next_cursor
]
}
page para obtener filas a nivel de URL; usa scope: "owned" para ver solo los dominios que te pertenecen.
- Métricas:
count(citas sin procesar),citation_share(cuota promedio por modelo),rank,first_cited_at(solo páginas). group_by:page,date,model,topic,region,persona,prompt.- Sin
sort: las filas siempre se ordenan de más a menos citadas. - Filtros de la capa de citas:
domain(reconoce subdominios),page,analysis_type(visibility·sentiment·factcheck·all),citation_category(owned·competition·social·earned_media·earned_institutions·pr_wire·other·personalizada),citation_tag(tus etiquetas personalizadas: enuméralas con Get Citation Tags).
citation_category y citation_tag son hojas and de nivel superior
que aceptan is / in; los valores dentro de un mismo in se combinan con OR, así que
{"field": "citation_tag", "op": "in", "value": ["Editorial", "Docs"]}
coincide con las URL que tengan cualquiera de las dos etiquetas.count y citation_share miden cosas distintas: citation_share se
promedia por modelo de IA, por lo que no se ordenará exactamente igual que el count sin procesar.Variante con streaming (SSE) (mismo cuerpo, /stream)
Variante con streaming (SSE) (mismo cuerpo, /stream)
POST /v2/reports/citations/stream acepta el mismo cuerpo de solicitud y
devuelve Server-Sent Events:
un evento summary (el bloque info) y luego un evento result por fila.
limit/cursor se ignoran; de forma predeterminada devuelve todo. Pasa
max_results para establecer un límite.event: summary
data: { ...the info block... }
event: result ← one per row, same shape as data[] above
data: {"domain": "reddit.com", "rank": 1, "count": 13940, "citation_share": 0.040}
curl -X POST https://api.tryprofound.com/v2/reports/citations \
-H "X-API-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"start_date": "2026-06-09",
"end_date": "2026-06-15"
}'
curl -X POST https://api.tryprofound.com/v2/reports/citations \
-H "X-API-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": {
"field": "citation_tag",
"op": "in",
"value": ["Editorial", "Docs"]
}
}'
{
"info": {
"total_results": 11662,
"count": 10,
"next_cursor": "Z0FBQUFBQnFQcWdrbDRiSHpGaktVNm5N...",
"scope": "all",
"models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
"metrics": ["count", "citation_share", "rank"],
"analysis_types": ["visibility"],
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": null
},
"data": [
{ "domain": "reddit.com", "rank": 1, "count": 13940, "citation_share": 0.040 },
{ "domain": "youtube.com", "rank": 2, "count": 16287, "citation_share": 0.037 },
{ "domain": "tryprofound.com", "rank": 3, "count": 10414, "citation_share": 0.029 }
// ...7 more rows in this page (count: 10, total_results: 11662); paginate with next_cursor
]
}
Autorizaciones
Cuerpo
YYYY-MM-DD, ET, inclusive
YYYY-MM-DD, ET, inclusive
What each row represents: domain (default), page, or citation_category. Legacy: group_by: ["page"] (with entity omitted) is still accepted and is equivalent to entity: "page". citation_category uses the dashboard split view: a citation counts under both its page-level and domain-level category, so category shares can sum to more than 100%.
domain, page, citation_category page, date, model, topic, region, persona, prompt count, citation_share, rank, first_cited_at day, week, month all (every cited domain) or owned (only your owned domains). Applies to entity=domain.
all, owned citation_category filters on a cited URL's single category; citation_tag filters on the custom citation tags a URL carries (a URL can carry several). List the category's tags with GET /v1/org/categories/{category_id}/citation-tags.
Show child attributes
Show child attributes
Page size; default 10, max 50.
0 < x <= 50Stream endpoint only: cap the number of streamed rows (default: all).
x > 0¿Esta página le ayudó?