Merchant-0 Intel API
The Intel API from Merchant-0 — 2 operation(s) for intel.
The Intel API from Merchant-0 — 2 operation(s) for intel.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/merchant-0-com:merchant-0-com-intel-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Merchant-0 A2A Protocol Server Intel API
description: Agent-to-Agent Commerce API for the 2026 Agentic Economy
version: '2026.1'
tags:
- name: Intel
paths:
/api/intel:
get:
summary: Get All Intel Queries
description: CEO-style aggregate of recent intel queries (buyer_did excluded).
operationId: get_all_intel_queries_api_intel_get
parameters:
- name: limit
in: query
required: false
schema:
type: integer
default: 20
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get All Intel Queries Api Intel Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/demand:
get:
summary: Get Demand Signals Route
description: 'GET /api/intel/demand -- see get_demand_signals (MP #74 block).'
operationId: get_demand_signals_route_api_intel_demand_get
parameters:
- name: sandbox_token
in: query
required: false
schema:
type: string
default: ''
title: Sandbox Token
- name: window_days
in: query
required: false
schema:
type: integer
default: 0
title: Window Days
responses:
'200':
description: Successful Response
content:
application/json:
schema:
title: Response Get Demand Signals Route Api Intel Demand Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/entities/status:
get:
summary: Get Intel Entities Status
description: 'Public entity-verification status -- AGGREGATE COUNTS ONLY.
Deliberately exposes no entity_name and no lei. Those are public
reference data rather than buyer_did (Rule #11 does not apply to
them), but they are the product, so the unauthenticated endpoint
reports shape and freshness and nothing else.'
operationId: get_intel_entities_status_api_intel_entities_status_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get Intel Entities Status Api Intel Entities Status Get
tags:
- Intel
/api/intel/entities:
get:
summary: Get Intel Entities
description: 'CEO entity list (sandbox_token auth).
The MP specifies the token in the request BODY. A GET with a body is
not reliably forwarded by every proxy, and the established GET auth
pattern in this file (/api/outbound/targets) uses a query parameter,
so BOTH are accepted: the body wins when present, the query parameter
is the fallback. Neither is a Bearer header, as required.'
operationId: get_intel_entities_api_intel_entities_get
parameters:
- name: country
in: query
required: false
schema:
type: string
default: ''
title: Country
- name: limit
in: query
required: false
schema:
type: integer
default: 50
title: Limit
- name: sandbox_token
in: query
required: false
schema:
type: string
default: ''
title: Sandbox Token
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/IntelEntitiesQueryBody'
- type: 'null'
title: Body
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get Intel Entities Api Intel Entities Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/sync/gleif:
post:
summary: Post Gleif Sync
description: 'CEO on-demand GLEIF sync (sandbox_token auth).
dry_run defaults to the GLEIF_DRY_RUN env posture, which ships true,
so an unqualified POST cannot accidentally write the first live rows.'
operationId: post_gleif_sync_api_intel_sync_gleif_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GleifSyncBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Post Gleif Sync Api Intel Sync Gleif Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/tariffs/status:
get:
summary: Get Intel Tariffs Status
description: Public tariff status -- AGGREGATE COUNTS ONLY.
operationId: get_intel_tariffs_status_api_intel_tariffs_status_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get Intel Tariffs Status Api Intel Tariffs Status Get
tags:
- Intel
/api/intel/tariffs:
get:
summary: Get Intel Tariffs
description: 'CEO tariff list (sandbox_token auth).
The response always carries the honesty fields -- confidence,
min_rate, max_rate, non_advalorem_lines and effective_date -- not just
the headline rate. A buyer reading tariff_pct alone can be materially
misled when dispersion is wide or non-ad-valorem lines were excluded.
Token accepted in the body (as the MP specifies) or as a query
parameter (the established GET pattern in this file, and reliable
through proxies). Never a Bearer header.'
operationId: get_intel_tariffs_api_intel_tariffs_get
parameters:
- name: hs_code
in: query
required: false
schema:
type: string
default: ''
title: Hs Code
- name: dest
in: query
required: false
schema:
type: string
default: ''
title: Dest
- name: limit
in: query
required: false
schema:
type: integer
default: 50
title: Limit
- name: sandbox_token
in: query
required: false
schema:
type: string
default: ''
title: Sandbox Token
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/IntelTariffQueryBody'
- type: 'null'
title: Body
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get Intel Tariffs Api Intel Tariffs Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/sync/wits-tariff:
post:
summary: Post Wits Tariff Sync
description: 'CEO on-demand WITS tariff sync (sandbox_token auth).
dry_run defaults to the WITS_TARIFF_DRY_RUN env posture, which ships
true, so an unqualified POST cannot write the first live rows.'
operationId: post_wits_tariff_sync_api_intel_sync_wits_tariff_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WitsTariffSyncBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Post Wits Tariff Sync Api Intel Sync Wits Tariff Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/flows/status:
get:
summary: Get Intel Flows Status
description: Public flow status -- AGGREGATE COUNTS ONLY.
operationId: get_intel_flows_status_api_intel_flows_status_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get Intel Flows Status Api Intel Flows Status Get
tags:
- Intel
/api/intel/flows:
get:
summary: Get Intel Flows
description: 'CEO flow list (sandbox_token auth).
Every row carries value_unit and period_start. A bare number is never
returned from this endpoint -- without its unit, 143158.4340 reads as
USD 143,158 when it means USD 143.16 million, and without its period
a stale observation reads as current.
Token accepted in the body (as the MP specifies) or as a query
parameter (the established GET pattern in this file, and reliable
through proxies). Never a Bearer header.'
operationId: get_intel_flows_api_intel_flows_get
parameters:
- name: corridor
in: query
required: false
schema:
type: string
default: ''
title: Corridor
- name: sector
in: query
required: false
schema:
type: string
default: ''
title: Sector
- name: limit
in: query
required: false
schema:
type: integer
default: 100
title: Limit
- name: sandbox_token
in: query
required: false
schema:
type: string
default: ''
title: Sandbox Token
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/IntelFlowQueryBody'
- type: 'null'
title: Body
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Get Intel Flows Api Intel Flows Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/sync/wits-flow:
post:
summary: Post Wits Flow Sync
description: 'CEO on-demand WITS flow sync (sandbox_token auth).
dry_run defaults to the WITS_FLOW_DRY_RUN env posture, which ships
true, so an unqualified POST cannot write the first live rows.'
operationId: post_wits_flow_sync_api_intel_sync_wits_flow_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WitsFlowSyncBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
title: Response Post Wits Flow Sync Api Intel Sync Wits Flow Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/corridor-brief:
post:
summary: Post Corridor Brief
description: 'Preview (CEO token) or re-deliver (executed contract) a brief.
There is no third branch. A buyer agent obtains a brief by calling
/api/ap2/negotiate, /api/ap2/sign and /api/ap2/execute like any other
SKU, which is where the a2a_catalog.available guard lives. This
endpoint adds no bypass around it.'
operationId: post_corridor_brief_api_intel_corridor_brief_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CorridorBriefBody'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
title: Response Post Corridor Brief Api Intel Corridor Brief Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
/api/intel/{execution_id}:
get:
summary: Get Intel Result
description: Retrieve stored intel for one execution (buyer_did never returned).
operationId: get_intel_result_api_intel__execution_id__get
parameters:
- name: execution_id
in: path
required: true
schema:
type: string
title: Execution Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
title: Response Get Intel Result Api Intel Execution Id Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Intel
components:
schemas:
WitsTariffSyncBody:
properties:
sandbox_token:
type: string
title: Sandbox Token
default: ''
dry_run:
anyOf:
- type: boolean
- type: 'null'
title: Dry Run
hs_code:
type: string
title: Hs Code
default: ''
type: object
title: WitsTariffSyncBody
description: POST /api/intel/sync/wits-tariff body (CEO auth).
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
IntelEntitiesQueryBody:
properties:
sandbox_token:
type: string
title: Sandbox Token
default: ''
country:
type: string
title: Country
default: ''
limit:
type: integer
title: Limit
default: 50
type: object
title: IntelEntitiesQueryBody
description: GET /api/intel/entities body (CEO auth).
IntelFlowQueryBody:
properties:
sandbox_token:
type: string
title: Sandbox Token
default: ''
corridor:
type: string
title: Corridor
default: ''
sector:
type: string
title: Sector
default: ''
limit:
type: integer
title: Limit
default: 100
type: object
title: IntelFlowQueryBody
description: GET /api/intel/flows body (CEO auth).
WitsFlowSyncBody:
properties:
sandbox_token:
type: string
title: Sandbox Token
default: ''
dry_run:
anyOf:
- type: boolean
- type: 'null'
title: Dry Run
sector:
type: string
title: Sector
default: ''
corridor:
type: string
title: Corridor
default: ''
type: object
title: WitsFlowSyncBody
description: POST /api/intel/sync/wits-flow body (CEO auth).
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
GleifSyncBody:
properties:
sandbox_token:
type: string
title: Sandbox Token
default: ''
dry_run:
anyOf:
- type: boolean
- type: 'null'
title: Dry Run
country:
type: string
title: Country
default: ''
type: object
title: GleifSyncBody
description: POST /api/intel/sync/gleif body (CEO auth).
CorridorBriefBody:
properties:
corridor:
type: string
title: Corridor
default: ''
sector:
type: string
title: Sector
default: ''
counterparty:
type: string
title: Counterparty
default: ''
hs_code:
type: string
title: Hs Code
default: ''
sandbox_token:
type: string
title: Sandbox Token
default: ''
contract_id:
type: string
title: Contract Id
default: ''
dry_run:
type: boolean
title: Dry Run
default: true
type: object
title: CorridorBriefBody
description: "POST /api/intel/corridor-brief request body.\n\nTwo callers only, and neither is a way to get an unpaid brief:\n\n* CEO preview -- ``sandbox_token`` matching CEO_PRODUCTION_TOKEN.\n Assembles and logs the brief, charges nothing, writes nothing.\n This is the mandatory dry-run gate.\n* Re-delivery -- ``contract_id`` of a contract already EXECUTED for\n merchant0-corridor-brief-001. The brief was paid for at execute;\n this hands it over again."
IntelTariffQueryBody:
properties:
sandbox_token:
type: string
title: Sandbox Token
default: ''
hs_code:
type: string
title: Hs Code
default: ''
dest:
type: string
title: Dest
default: ''
limit:
type: integer
title: Limit
default: 50
type: object
title: IntelTariffQueryBody
description: GET /api/intel/tariffs body (CEO auth).
x-provenance:
method: harvested
publisher: Merchant-0
source: https://api.merchant-0.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)