AI92 est en ligne - notre lancement mondial en douceur est en cours : la plateforme complète est ouverte dans le monde entier pendant les 30 premiers jours.
Menu de la documentation

Cette documentation développeur est actuellement uniquement en anglais. Le code et le comportement de l'API sont identiques dans toutes les régions.

Who Is Searching API

Intent and engagement signals. Two real signals, honestly scoped:

  • Visitors (/v1/visitors/identify) — brand-level engagement and attribution from module-C click analytics (not company-level de-anonymization).
  • Intel (/v1/intel/*) — module-G brand-intelligence surface, keyed by brand_id.
  • Intent & alerts (/v1/intent/*, /v1/alerts) — market-intel signals, industry alert scans, and intent-based enrichment via module-G.

These routes are mounted directly under /v1 (no extra sub-prefix).

Authentication

Authorization: Bearer ai92_live_<key>     # production
Authorization: Bearer ai92_test_<key>     # sandbox

Mutating requests support Idempotency-Key and are brand-gated.

Credit costs at a glance

EndpointCost
GET /v1/visitors/identify45 cr per 100
GET /v1/intel/brand/{brand_id}5 cr
GET /v1/intel/competitor/{brand_id}10 cr
GET /v1/intel/keywords/{brand_id}5 cr
GET /v1/intel/market/{brand_id}5 cr
POST /v1/intent/signals5 cr
POST /v1/alerts3 cr
POST /v1/intent/enrich12 cr

GET /v1/visitors/identify

Cost: 45 credits per 100

Real engagement / intent signals for a brand from module-C click and attribution analytics: per-post opens/clicks/engagement plus click totals, country breakdown and timeline. Pass the canonical brand id (slug) so attribution resolves.

Auth: Bearer

ParameterInTypeRequiredDescription
brand_idquerystringYesCanonical brand id (slug).
campaign_idquerystring / nullNoRestrict to a campaign.
limitqueryintegerNoRecords returned. Default 100.

Request

bash
curl "https://api.ai92.ai/v1/visitors/identify?brand_id=acme&limit=100" \
  -H "Authorization: Bearer ai92_test_51a9c0de…"

Response 200 OK

json
{
  "brand_id": "acme",
  "attribution": [
    { "post_id": "post_12", "opens": 540, "clicks": 88, "engagement": 0.16 }
  ],
  "clicks": { "total": 2104, "by_country": { "US": 1320, "UK": 410 }, "timeline": [] }
}

Errors

StatusCodeWhen
402INSUFFICIENT_CREDITSBalance below 45 credits.

GET /v1/intel/brand/{brand_id}

Cost: 5 credits

module-G brand intelligence profile for a brand.

Auth: Bearer

ParameterInTypeRequiredDescription
brand_idpathstringYesThe brand.

Request

bash
curl https://api.ai92.ai/v1/intel/brand/acme \
  -H "Authorization: Bearer ai92_test_51a9c0de…"

Response 200 OK

json
{
  "brand_id": "acme",
  "industry": "Software",
  "positioning": "mid-market CRM",
  "key_attributes": ["ease-of-use", "integrations"]
}

GET /v1/intel/competitor/{brand_id}

Cost: 10 credits

module-G competitor intelligence for a brand.

Auth: Bearer

ParameterInTypeRequiredDescription
brand_idpathstringYesThe brand.
include_pricingquerybooleanNoInclude competitor pricing. Default false.
anonymizequerybooleanNoAnonymize competitor identities. Default false.

Request

bash
curl "https://api.ai92.ai/v1/intel/competitor/acme?include_pricing=true" \
  -H "Authorization: Bearer ai92_test_51a9c0de…"

Response 200 OK

json
{
  "brand_id": "acme",
  "competitors": [ { "name": "rival", "positioning": "enterprise CRM", "pricing_tier": "high" } ]
}

GET /v1/intel/keywords/{brand_id}

Cost: 5 credits

module-G keyword intelligence for a brand, optionally over a date range.

Auth: Bearer

ParameterInTypeRequiredDescription
brand_idpathstringYesThe brand.
start_datequerystring / nullNoISO date lower bound.
end_datequerystring / nullNoISO date upper bound.

Request

bash
curl "https://api.ai92.ai/v1/intel/keywords/acme?start_date=2026-05-01&end_date=2026-06-01" \
  -H "Authorization: Bearer ai92_test_51a9c0de…"

Response 200 OK

json
{
  "brand_id": "acme",
  "keywords": [ { "keyword": "crm software", "trend": "rising", "interest": 78 } ]
}

GET /v1/intel/market/{brand_id}

Cost: 5 credits

module-G market intelligence for a brand.

Auth: Bearer

ParameterInTypeRequiredDescription
brand_idpathstringYesThe brand.

Request

bash
curl https://api.ai92.ai/v1/intel/market/acme \
  -H "Authorization: Bearer ai92_test_51a9c0de…"

Response 200 OK

json
{
  "brand_id": "acme",
  "market_trends": ["AI adoption", "consolidation"],
  "opportunity_score": 67
}

POST /v1/intent/signals

Cost: 5 credits

Market / intent intelligence for an industry (module-G market-intel). keywords are passed as the free-text question.

Auth: Bearer

FieldTypeRequiredDescription
industrystringYesIndustry to query.
keywordsstring[]YesIntent keywords. Length 120.

Request

bash
curl https://api.ai92.ai/v1/intent/signals \
  -H "Authorization: Bearer ai92_test_51a9c0de…" \
  -H "Content-Type: application/json" \
  -d '{"industry": "fintech", "keywords": ["payment orchestration", "fraud"]}'

Response 200 OK

json
{
  "industry": "fintech",
  "signals": [ { "topic": "payment orchestration", "momentum": "high", "sources": 42 } ]
}

Errors

StatusCodeWhen
402INSUFFICIENT_CREDITSBalance below 5 credits.

POST /v1/alerts

Cost: 3 credits

Scan a business for industry alerts (module-G). Requires an active industry-alerts subscription on the business; the scan window is capped at 7 days.

Auth: Bearer

FieldTypeRequiredDescription
business_idstringYesThe business to scan. Min length 1.
days_backintegerNoScan window. Default 7. Range 17.
keywordstring / nullNoOptional context keyword (back-compat).
industrystring / nullNoOptional industry context (back-compat).
webhook_urlstring / nullNoOptional webhook for results (back-compat).
notification_emailstring / nullNoOptional notification email (back-compat).

Request

bash
curl https://api.ai92.ai/v1/alerts \
  -H "Authorization: Bearer ai92_test_51a9c0de…" \
  -H "Content-Type: application/json" \
  -d '{"business_id": "biz_991", "days_back": 7}'

Response 200 OK

json
{
  "business_id": "biz_991",
  "alerts": [ { "type": "funding", "summary": "Competitor raised Series B", "date": "2026-06-18" } ]
}

Errors

StatusCodeWhen
402INSUFFICIENT_CREDITSBalance below 3 credits.

POST /v1/intent/enrich

Cost: 12 credits

Intent-based enrichment via module-G business-scan for the target brand.

Auth: Bearer

FieldTypeRequiredDescription
intent_signal_idstringYesSignal id; used as the scan target when brand_id is omitted. Min length 1.
depthstringNoEnrichment depth. Default basic.
brand_idstring / nullNoPreferred scan target (overrides intent_signal_id).

Request

bash
curl https://api.ai92.ai/v1/intent/enrich \
  -H "Authorization: Bearer ai92_test_51a9c0de…" \
  -H "Content-Type: application/json" \
  -d '{"intent_signal_id": "sig_44", "brand_id": "acme", "depth": "full"}'

Response 200 OK

json
{
  "brand_id": "acme",
  "enrichment": { "firmographics": { "employees": 420, "revenue_usd": 50000000 }, "tech_stack": ["aws", "react"] }
}

Errors

StatusCodeWhen
402INSUFFICIENT_CREDITSBalance below 12 credits.