{"components":{"securitySchemes":{"x402":{"description":"x402 payment proof. Unauthenticated probes receive 402.","in":"header","name":"Payment-Signature","type":"apiKey"}}},"info":{"contact":{"email":"support@datamancer.io","name":"Datamancer","url":"https://datamancer.io"},"description":"Two paid SKUs: registered business lookup (catalog-live SOS layers) and VIN decode. Free routes return thin projections; paid x402 routes return full cards. USDC on Base then Solana.","title":"Datamancer API","version":"0.4.0","x-guidance":"Two paid SKUs. Registered business lookup: GET /api/v1/paid/entity $0.01 (officers, addresses, provenance; catalog-live SOS layers), GET /api/v1/paid/search $0.005 (higher-limit name search; jurisdiction= omit=US-FL, live sibling layers, unknown empty, no national mashup). VIN decode: GET /api/v1/vehicles/vin and GET /api/v1/paid/vin (402 first, $0.005, Base then Solana). Other paid: GET /api/v1/paid/recalls $0.01, GET /api/v1/paid/recalls/campaign $0.02. Free thin identity at /api/v1/catalog, /search, /entities, /vehicles/recalls. Unauthenticated paid probes return 402 with USDC on Base first, then Solana."},"openapi":"3.1.0","paths":{"/api/v1/catalog":{"get":{"description":"Live layers. VIN is NHTSA API / DecodeVinValues + cache (not a restored vPICList_lite Postgres/SQL Server; by_vin.json is not coverage). Recalls stay ymm-joined after decode.","operationId":"getCatalog","responses":{"200":{"description":"Catalog envelope"},"503":{"description":"Warehouse unavailable"}},"security":[],"summary":"Warehouse catalog (free)"}},"/api/v1/entities":{"get":{"operationId":"getEntityFree","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Thin entity"}},"security":[],"summary":"Entity identity card (free; no officers/addresses)"}},"/api/v1/health":{"get":{"operationId":"health","responses":{"200":{"description":"OK"}},"security":[],"summary":"Liveness"}},"/api/v1/paid/entity":{"get":{"description":"Registered business lookup (coverage = catalog-live business_entities layers). Officers, addresses, and provenance. $0.01 USDC, Base then Solana. Returns HTTP 402 until settled. Probe without payment reaches 402 before body validation when possible. Thin identity stays free at GET /api/v1/entities. Not a history report.","parameters":[{"in":"query","name":"id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"Registered business entity card — catalog-live SOS layers (x402, $0.01)","x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/v1/paid/recalls":{"get":{"description":"Returns HTTP 402 with USDC payment terms until settled. Probe without payment reaches 402 before body validation when possible.","parameters":[{"in":"query","name":"make","required":false,"schema":{"type":"string"}},{"in":"query","name":"model","required":false,"schema":{"type":"string"}},{"in":"query","name":"year","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"Premium full recall list (x402)","x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/v1/paid/recalls/campaign":{"get":{"description":"Returns HTTP 402 with USDC payment terms until settled. Probe without payment reaches 402 before body validation when possible.","parameters":[{"in":"query","name":"id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"Premium full recall campaign (x402)","x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/v1/paid/search":{"get":{"description":"Registered business name search, one jurisdiction per request. Omit jurisdiction for US-FL. Live sibling layers via jurisdiction= matching catalog. Unknown or not-live values return empty hits — no national mashup, no Florida fan-out. Higher hit limit than free GET /api/v1/search. $0.005 USDC, Base then Solana. Returns HTTP 402 until settled. Probe without payment reaches 402 before body validation when possible. One URL: GET|POST /api/v1/paid/search.","parameters":[{"in":"query","name":"q","required":false,"schema":{"example":"LIVE BY 5","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"in":"query","name":"jurisdiction","required":false,"schema":{"description":"One live layer. Omit for US-FL. Unknown or not-live returns empty hits.","example":"US-FL","type":"string"}}],"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"Registered business name search, higher limit (x402, $0.005)","x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}},"post":{"description":"Registered business name search, one jurisdiction per request. Omit jurisdiction for US-FL. Live sibling layers via jurisdiction= matching catalog. Unknown or not-live values return empty hits — no national mashup, no Florida fan-out. Higher hit limit than free GET /api/v1/search. $0.005 USDC, Base then Solana. Returns HTTP 402 until settled. Probe without payment reaches 402 before body validation when possible. One URL: GET|POST /api/v1/paid/search.","requestBody":{"content":{"application/json":{"schema":{"properties":{"jurisdiction":{"description":"One live layer, e.g. US-FL or US-NY. Omit for US-FL. Unknown or not-live values return empty hits; search does not union states.","example":"US-FL","type":"string"},"limit":{"default":50,"type":"integer"},"q":{"description":"Search query (name tokens; US-FL also accepts a Sunbiz document number)","example":"LIVE BY 5","type":"string"}},"required":["q"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"Registered business name search, higher limit (x402, $0.005)","x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/v1/paid/vin":{"get":{"description":"Returns HTTP 402 with USDC payment terms until settled. Probe without payment reaches 402 before body validation when possible.","parameters":[{"in":"query","name":"vin","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"VIN decode (x402; 402 first, $0.005, Base then Solana)","x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/v1/search":{"get":{"operationId":"searchEntitiesFree","parameters":[{"in":"query","name":"q","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":10,"type":"integer"}},{"in":"query","name":"jurisdiction","required":false,"schema":{"description":"One live layer. Omit for US-FL. Unknown or not-live returns empty hits.","example":"US-FL","type":"string"}}],"responses":{"200":{"description":"Thin hits"}},"security":[],"summary":"Entity name search (free, max 10 hits, thin fields)"}},"/api/v1/vehicles/recalls":{"get":{"operationId":"listRecallsFree","parameters":[{"in":"query","name":"make","required":true,"schema":{"type":"string"}},{"in":"query","name":"model","required":true,"schema":{"type":"string"}},{"in":"query","name":"year","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Thin campaign list"}},"security":[],"summary":"Recall list thin (free)"}},"/api/v1/vehicles/recalls/campaign":{"get":{"operationId":"getRecallCampaignFree","parameters":[{"in":"query","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Thin campaign"}},"security":[],"summary":"Recall campaign summary (free thin)"}},"/api/v1/vehicles/vin":{"get":{"description":"Returns HTTP 402 with USDC payment terms until settled. Probe without payment reaches 402 before body validation when possible.","parameters":[{"in":"query","name":"vin","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid body after settlement / unlock"},"402":{"description":"Payment Required"}},"security":[{"x402":[]}],"summary":"VIN decode (x402; 402 first, $0.005, Base then Solana; same rails as /api/v1/paid/vin)","x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}}},"servers":[{"description":"This instance","url":"https://agents.datamancer.io"}],"x-discovery":{"ownershipProofs":[],"paid_paths":["/api/v1/paid/entity","/api/v1/paid/search","/api/v1/paid/vin","/api/v1/vehicles/vin","/api/v1/paid/recalls","/api/v1/paid/recalls/campaign"]}}
