AI92가 출시되었습니다 - 글로벌 소프트 론칭이 진행 중입니다: 전체 플랫폼이 전 세계적으로 30일 동안 공개됩니다.
문서 메뉴

이 개발자 문서는 현재 영어로만 제공됩니다. 코드 및 API 동작은 모든 지역에서 동일합니다.

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.