Dokumentace API

Programmatický přístup k datům AI viditelnosti.

Pouze pro čtení REST API a MCP server, oba autentizovány stejným klíčem. Stahujte značky, dotazy, spuštění, zmínky, denní skóre viditelnosti a doporučení do vlastních přehledů, datových skladů nebo AI agentů.

Autentizace

Bearer tokeny

Vygenerujte API klíč v Nastavení → API klíče v aplikaci. Čistý text se zobrazí jednou při vytvoření – uložte ho do správce hesel. Předávejte ho jako Bearer token při každém požadavku.

curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands \
  -H "Authorization: Bearer ik_…"

Klíče lze kdykoli zrušit ze stejného panelu Nastavení. Každý klíč je vázán na váš účet a dědí oprávnění ke značkám vašeho účtu – zatím bez rozsahů pro jednotlivé klíče.

Základní URL

Kam směřují požadavky

Všechny REST endpointy žijí pod jednou základní URL:

https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1

Připojte cestu libovolného endpointu níže. GET je jediná podporovaná metoda – API je pouze pro čtení.

Získání ID značky

Odkud pochází {id}

Většina endpointů přijímá parametr cesty {id} což je UUID vaší značky. Dva způsoby, jak ho získat:

  1. Z API samotného– nejprve zavolejte GET /brands. Každá položka v odpovědi má pole id. Tuto hodnotu použijte v dalších voláních.
  2. Z URL přehledu– při otevření značky v https://app.intendity.com/brands/<id> je UUID za /brands/ ID značky pro použití v API.
Endpointy

Reference

Sedm endpointů, všechny GET, všechny vracejí JSON, všechny s rozsahem omezeným na vlastníka API klíče.

GET /brands

Seznam značek – zjistěte svá ID

Vrátí každou značku, kterou vlastníte. Volejte toto nejdříve, abyste získali `id` pro použití v dalších endpointech. Toto je jediný endpoint, který nebere ID značky jako parametr cesty.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "brands": [
    {
      "id": "0ae98f45-446c-4482-886f-9ce2fd6ba4ea",
      "name": "Acme",
      "industry": "B2B SaaS",
      "aliases": ["Acme Corp", "ACME"],
      "competitors": ["Beta", "Gamma"],
      "country": "US",
      "enabled_models": ["openai/gpt-5.2", "anthropic/claude-sonnet-4"],
      "run_frequency": "daily",
      "created_at": "2026-04-01T12:00:00Z"
    }
  ]
}
GET /brands/{id}

Získat značku

Jedna značka podle ID. Stejná forma jako položky v `/brands`.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/0ae98f45-446c-4482-886f-9ce2fd6ba4ea \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "brand": {
    "id": "0ae98f45-446c-4482-886f-9ce2fd6ba4ea",
    "name": "Acme",
    ...
  }
}
GET /brands/{id}/queries

Seznam dotazů pro značku

Každý prompt, který jste přidali pro tuto značku. Seřazeny od nejnovějšího.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/queries?limit=100 \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "queries": [
    {
      "id": "…",
      "text": "best CRM for small B2B teams",
      "tags": ["evaluation"],
      "country": "US",
      "enabled": true,
      "last_run_at": "2026-04-30T04:00:00Z",
      "created_at": "2026-04-01T12:00:00Z"
    }
  ]
}
GET /brands/{id}/runs

Seznam spuštění pro značku

Jeden řádek na spuštění (dotaz × model). Zahrnuje surový blob `response` z modelu.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/runs?limit=100 \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "runs": [
    {
      "id": "…",
      "query_id": "…",
      "model": "openai/gpt-5.2",
      "status": "completed",
      "response": "Acme is one of the leading…",
      "error": null,
      "created_at": "2026-04-30T04:01:23Z"
    }
  ]
}
GET /brands/{id}/mentions

Seznam zmínek pro značku

Analýza na spuštění: zda byla značka zmíněna, kde se umístila, sentiment, kteří konkurenti byli zmíněni a URL zdrojů citovaných modelem.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/mentions?limit=100 \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "mentions": [
    {
      "id": "…",
      "run_id": "…",
      "mentioned": true,
      "position": 3,
      "sentiment": "positive",
      "sentiment_score": 78,
      "context": "Acme stands out for its…",
      "competitors_found": ["Beta"],
      "sources": ["https://en.wikipedia.org/wiki/…"],
      "confidence": 0.92,
      "created_at": "2026-04-30T04:01:24Z"
    }
  ]
}
GET /brands/{id}/visibility

Denní skóre viditelnosti

Jeden řádek na den. `score` je 0–100 procentuální míra zmínek napříč všemi dotazy × modely spuštěnými ten den.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/visibility \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "visibility": [
    {
      "day": "2026-04-30",
      "score": 64,
      "total_runs": 48,
      "total_mentions": 31
    }
  ]
}
GET /brands/{id}/recommendations

Seznam doporučení pro značku

Další kroky generované AI ke zlepšení viditelnosti, se stavem workflow (pending → in_progress → done / dismissed).

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/recommendations \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "recommendations": [
    {
      "id": "…",
      "category": "wikipedia",
      "title": "Edit the 'CRM software' Wikipedia article",
      "body": "Three of four models cited Wikipedia…",
      "related_queries": ["…"],
      "status": "pending",
      "due_date": null,
      "completed_at": null,
      "created_at": "2026-04-30T04:05:00Z"
    }
  ]
}
GET /brands/{id}/suggested-prompts

Navrhované prompty

Prompty, které systém považuje za vhodné ke sledování, ale které jste ještě nepřidali. `added: true` znamená, že uživatel přijal návrh (a prompt je nyní v `/brands/{id}/queries`).

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/suggested-prompts \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "suggested_prompts": [
    {
      "id": "…",
      "text": "best CRM for small SaaS teams",
      "rationale": "competitor-comparison gap - competitors win 4/5 runs",
      "added": false,
      "created_at": "2026-05-01T04:00:00Z"
    }
  ]
}
GET /brands/{id}/competitor-sov

Share of voice konkurentů

Denní počty zmínek per (konkurent, model). Sama značka je hlášena pod sentinelem `__brand__`, takže share of voice je `brand_count / SUM(count)` v rámci (model, den). Filtrujte časový rozsah pomocí `?since=YYYY-MM-DD` (výchozí: posledních 90 dní).

Požadavek
curl "https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/competitor-sov?since=2026-04-01" \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "sov": [
    { "competitor": "__brand__", "model": "openai/gpt-5.2", "day": "2026-05-04", "mention_count": 4, "avg_position": 2.5 },
    { "competitor": "Beta",      "model": "openai/gpt-5.2", "day": "2026-05-04", "mention_count": 7, "avg_position": null }
  ]
}
GET /brands/{id}/page-audits

Audity stránek – seznam

Audity připravenosti AI provedené na stránkách značky. Každý řádek obsahuje skóre (0–100), seznam problémů a analyzované signály (typy schema.org, přítomnost llms.txt, pravidla robots pro AI boty atd.).

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/page-audits \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "page_audits": [
    {
      "id": "…",
      "url": "https://acme.com/pricing",
      "fetched_at": "2026-05-04T10:12:00Z",
      "status_code": 200,
      "score": 72,
      "issues": [
        { "id": "no-faq-schema", "severity": "warning", "title": "No FAQPage schema", "fix": "Add JSON-LD FAQPage with the top buyer questions.", "score_impact": 8 }
      ],
      "signals": {
        "word_count": 824,
        "h1_count": 1,
        "has_canonical": true,
        "has_meta_description": true,
        "has_faq_schema": false,
        "schema_types": ["Organization", "WebSite"],
        "llms_txt_present": false,
        "robots_blocks_ai": [],
        "ai_bots_allowed": ["GPTBot", "ClaudeBot"]
      },
      "error": null
    }
  ]
}
GET /brands/{id}/page-audits/{auditId}

Audit stránky – jedna položka

Jeden audit podle ID. Stejná forma jako položky v `/brands/{id}/page-audits`.

Požadavek
curl https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/api-v1/brands/{id}/page-audits/{auditId} \
  -H "Authorization: Bearer ik_…"
Odpověď (200 OK)
{
  "page_audit": {
    "id": "…",
    "url": "https://acme.com/pricing",
    "score": 72,
    ...
  }
}

Stránkování

Předejte ?limit=N na endpointech kolekcí. Výchozí hodnota je 100, max 500. Stránkování s kurzorem je v plánu pro kolekce přesahující jednu stránku.

Chyby

Stavové kódy

Stav Kdy
200 Úspěch.
401 Chybějící nebo neplatný Bearer token.
404 Značka nebo cesta neexistuje (nebo vám nepatří).
405 Použita jiná metoda než GET.
500 Neočekávaná chyba serveru – zkuste znovu s backoffem.

Těla chyb obsahují řetězec error a někdy hint.

MCP server

Používejte Intendity z Claude / Cursoru / jakéhokoli MCP klienta

Stejný API klíč se autentizuje na MCP kompatibilním endpointu. Namiřte jakýkoli klient Model Context Protocol na něj a data viditelnosti vaší značky budou dostupná jako nástroje v asistentovi.

https://ipxntaczzxemkezuofzl.supabase.co/functions/v1/mcp

Auth: Authorization: Bearer ik_… na SSE / HTTP transportu. Podívejte se do dokumentace vašeho MCP klienta, jak registrovat vlastní server s hlavičkou.

Potřebujete endpoint, který nemáme?

Zápis, webhooky, stránkování s kurzorem – vše v plánu. Řekněte nám, co byste stavěli, a my tomu dáme prioritu.

[email protected]