Y2 Elite workspaces are rolling out for teams
Y2Y2Docs

API Overview

Choose the correct Y2 API surface, authentication path, version root, and generated contract

Y2 exposes a versioned HTTP API for reports, profile orchestration, Projects, Automations, news, Situation Room data, ontology-backed intelligence, Y2 Global Knowledge retrieval, webhook configuration, subscription delivery, Agent Y2 streams, and x402 receipts.

Use the generated reference for exact contracts

This overview helps you choose a surface. The generated Endpoint Reference defines the exact path, operation-level server, parameters, body, scopes, authentication modes, media types, schemas, and response headers.

Request path

Base URLs

SurfaceBase URLContains
Core v1https://api.y2.dev/api/v1Agent Y2, reports, profiles, Projects, Automations, news, OSINT, webhooks, subscriptions, receipts
Intelligence v2https://api.y2.dev/api/v2Change feed, incidents, entities, graphs, markets, FININT, signals, cyber

The OpenAPI document defines core operation paths relative to /api/v1. Its v2 operation paths already contain /api/v2 and override the server to https://api.y2.dev. A generator that honors operation-level servers produces the correct URL; do not concatenate a v2 path onto the v1 base.

Choose authentication

PathUse whenIdentity and limits
Bearer API keyThe integration should access a Y2 workspace repeatedlyKey scopes, key IP restriction, per-key quota, and workspace/user aggregate quota
x402A listed read operation should be paid per request without provisioning a keyPayment signature, replay protection, wallet quota, endpoint ceiling, and settlement
Public receipt lookupA client needs the status of an x402 settlement nonceNo API key; receipt lookup only

New keys require Pro or Elite. Lite cannot create keys, though keys already covered by the Lite grace policy continue at 10 requests per minute and 500 per day. x402 support is independent and is declared one operation at a time.

See Authentication for workspace binding and scopes, or x402 Payments for the payment handshake.

Choose a surface

Core v1 route map

AreaRoutesBearer scopex402
Agent Y2POST /agent-y2/chat/stream, POST /chat/completionsagent:y2No
ReportsGET /reports, GET /reports/{reportId} and report subresourcesreports:read; audio uses reports:audioYes where declared
ProfilesGET, POST /profiles; PUT, PATCH, DELETE /profiles/{profileId}Read or write scope by operationNo
ProjectsGET, POST /projects; GET, PATCH /projects/{projectId}projects:read or projects:writeNo
AutomationsGET, POST /automations; GET, PATCH /automations/{automationId}; GET, POST /automations/{automationId}/runsautomations:read or automations:writeNo
NewsGET /news, /news/recaps, /news/feedsnews:readYes
OSINTGET /osint/* including country resourcesosint:readYes
Webhooks/webhooks, /webhooks/{webhookId}, /testwebhooks:manageNo
Subscription deliveryPATCH /subscriptions/{subscriptionId}/deliverywebhooks:manageNo
x402 receiptGET /x402/receipts/{nonce}NonePublic lookup

The reports list is workspace-contextual for bearer callers. In particular, GET /profiles lists profile subscription records available to the key workspace; it is not a public community-catalog search endpoint.

Intel v2 route map

RouteBearer scope
GET /changesosint:read
GET /incidents, GET /incidents/{incidentId}Any of intel:explorer, intel:finint, or intel:cyber
GET /entities, /entities/{entityId}, /entities/{entityId}/graphintel:explorer
GET /markets, /finintintel:finint
GET /signalsAny of intel:explorer, intel:finint, or intel:cyber
GET /cyber/graph, /cyber/cves, /cyber/actorsintel:cyber
POST /intel/knowledge/retrieveintel:knowledge

These paths are relative to https://api.y2.dev/api/v2 in the table above. Every current v2 operation except Y2 Global Knowledge also declares x402 metadata in OpenAPI. Global Knowledge is API-key-only because its authorization requires a Y2 workspace principal.

Success representations

Do not assume every successful endpoint returns the same JSON envelope.

Contract kindTypical response
Collection{ "data": [...], "meta": {...}, "links": {...} } or operation-specific pagination fields
Resource{ "data": {...} } plus operation-specific fields and headers
RepresentationPlain text, audio metadata, or an optional redirect as documented
Agent streamtext/event-stream in AI SDK UI or OpenAI-compatible chunk format
Delete204 No Content for the documented destructive operations

Collection cursors are opaque. Persist the returned next cursor or watermark and send it back unchanged; do not parse it or construct one from record IDs.

Errors

JSON failures use application/problem+json with stable top-level fields and an actionable resolution hint:

{
  "type": "https://api.y2.dev/problems/unauthorized",
  "title": "Unauthorized",
  "status": 401,
  "detail": "Invalid API key",
  "instance": "urn:y2:request:req_...",
  "code": "INVALID_API_KEY",
  "requestId": "req_...",
  "resolution": "Send a valid Y2 API key in the Authorization: Bearer header."
}
StatusCommon meaning
400Invalid query, ID, cursor, JSON, or request body
401Missing or invalid bearer authentication
402x402 challenge or rejection; on Agent Y2, plan or credit exhaustion instead
403Missing scope, ineligible plan, IP restriction, or tenant authorization failure
404Resource or thread not found in the allowed scope
409Idempotency or resource-state conflict
412If-Match does not match the current representation
415 / 422Unsupported representation or operation-specific semantic failure
429Key, account, endpoint, wallet, or abuse-control limit exceeded
500 / 503Internal failure, unavailable dependency, or unavailable data path

Retain X-Request-Id and the problem code in integration logs. Follow Retry-After only when the response indicates a retryable limit or availability failure.

Version and diagnostic headers

HeaderMeaning
X-Y2-API-Version1.0 for v1 operations and 2.0 for v2 operations
X-Y2-Schema-VersionShared response-schema version, currently 1.2
X-Request-IdPer-request diagnostic identifier
ETagStrong validator on operations that support conditional writes
LocationCanonical URL after resource creation
Idempotency-KeyEchoed retry key on operations that support idempotent creation
X-Y2-Next-Cursor, X-Y2-As-Of, X-Y2-WatermarkCollection and change-feed checkpoints where applicable

Explore and verify

Read the task guide

Start with Integration Recipes or the manual guide for the product area.

Open the generated operation

Verify method, server, scope, x402 metadata, parameters, request body, and responses.

Run a bounded request

Use API Workbench or curl with the smallest useful limit.

Capture the contract evidence

Check the body and diagnostic headers before implementing pagination, retries, or mutations.

Integration guides