{"components":{"schemas":{"Candidate":{"properties":{"company":{"$ref":"#/components/schemas/Company"},"conflicts":{"items":{"type":"string"},"type":"array"},"match_type":{"enum":["company_number","strict_name","relaxed_name","fuzzy_name"],"type":"string"},"score":{"description":"Service-generated evidence score. Not a probability or CRO assessment.","maximum":1000,"minimum":0,"type":"integer"},"signals":{"$ref":"#/components/schemas/MatchSignals"}},"required":["company","score","match_type","signals","conflicts"],"type":"object"},"Company":{"properties":{"company_number":{"pattern":"^[0-9]{1,20}$","type":"string"},"company_type":{"type":["string","null"]},"company_type_code":{"type":["string","null"]},"dissolved_date":{"format":"date","type":["string","null"]},"last_accounts_date":{"format":"date","type":["string","null"]},"last_annual_return_date":{"format":"date","type":["string","null"]},"legal_name":{"type":"string"},"nace_v2_code":{"type":["string","null"]},"name_effective_date":{"format":"date","type":["string","null"]},"next_annual_return_date":{"format":"date","type":["string","null"]},"principal_object_code":{"type":["string","null"]},"registered_address":{"properties":{"eircode":{"type":["string","null"]},"lines":{"items":{"type":"string"},"type":"array"}},"required":["lines","eircode"],"type":"object"},"registered_date":{"format":"date","type":["string","null"]},"status":{"type":["string","null"]},"status_code":{"type":["string","null"]},"status_date":{"format":"date","type":["string","null"]},"type_effective_date":{"format":"date","type":["string","null"]}},"required":["company_number","legal_name","status","status_code","company_type","company_type_code","nace_v2_code","principal_object_code","registered_date","dissolved_date","last_annual_return_date","next_annual_return_date","last_accounts_date","status_date","name_effective_date","type_effective_date","registered_address"],"type":"object"},"CompanyResponse":{"properties":{"company":{"$ref":"#/components/schemas/Company"},"snapshot_id":{"type":"string"},"source":{"$ref":"#/components/schemas/Source"}},"required":["company","source","snapshot_id"],"type":"object"},"DataError":{"properties":{"company":{"type":"null"},"error":{"$ref":"#/components/schemas/Error"},"snapshot_id":{"type":"string"},"source":{"$ref":"#/components/schemas/Source"}},"required":["company","error","source","snapshot_id"],"type":"object"},"Error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"ErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/Error"}},"required":["error"],"type":"object"},"MatchSignals":{"properties":{"address_contains":{"type":["boolean","null"]},"company_number_exact":{"type":"boolean"},"eircode_exact":{"type":["boolean","null"]},"name_similarity":{"maximum":1,"minimum":0,"type":"number"},"relaxed_name_exact":{"type":"boolean"},"strict_name_exact":{"type":"boolean"}},"required":["name_similarity","strict_name_exact","relaxed_name_exact","eircode_exact","address_contains","company_number_exact"],"type":"object"},"Metadata":{"properties":{"endpoints":{"items":{"type":"string"},"type":"array"},"imported_at":{"format":"date-time","type":"string"},"quarantined_company_count":{"minimum":0,"type":"integer"},"rejected_row_count":{"minimum":0,"type":"integer"},"row_count":{"minimum":0,"type":"integer"},"service":{"type":"string"},"snapshot_id":{"type":"string"},"source":{"$ref":"#/components/schemas/Source"},"version":{"type":"string"}},"required":["service","version","endpoints","source","snapshot_id","row_count","quarantined_company_count","rejected_row_count","imported_at"],"type":"object"},"ResolveInput":{"additionalProperties":false,"anyOf":[{"required":["name"]},{"required":["company_number"]}],"properties":{"address":{"maxLength":160,"minLength":3,"type":"string"},"company_number":{"pattern":"^[0-9]{1,20}$","type":"string"},"eircode":{"description":"Seven ASCII letters or digits, with optional spaces.","maxLength":16,"type":"string"},"name":{"maxLength":160,"minLength":3,"type":"string"}},"type":"object"},"ResolveResponse":{"allOf":[{"$ref":"#/components/schemas/SearchResponse"},{"properties":{"match":{"anyOf":[{"$ref":"#/components/schemas/Candidate"},{"type":"null"}]},"status":{"enum":["matched","ambiguous","conflicting","no_match"],"type":"string"}},"required":["status","match"],"type":"object"}]},"SearchResponse":{"properties":{"candidate_limit_reached":{"type":"boolean"},"candidates":{"items":{"$ref":"#/components/schemas/Candidate"},"maxItems":10,"type":"array"},"filters":{"type":"object"},"matching_version":{"type":"string"},"query":{"type":"object"},"score_definition":{"type":"string"},"snapshot_id":{"type":"string"},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","candidates","source","snapshot_id","matching_version","score_definition","candidate_limit_reached"],"type":"object"},"Source":{"properties":{"dataset":{"type":"string"},"dataset_url":{"type":"string"},"license":{"type":"string"},"license_url":{"type":"string"},"modified":{"type":"boolean"},"notice":{"type":"string"},"publisher":{"type":"string"},"resource_id":{"type":"string"},"retrieved_at":{"format":"date-time","type":"string"},"source_updated_at":{"format":"date-time","type":["string","null"]},"synthetic":{"type":"boolean"}},"required":["publisher","dataset","dataset_url","license","license_url","resource_id","notice","retrieved_at","source_updated_at","modified","synthetic"],"type":"object"}}},"info":{"description":"Irish company lookup, name search and resolution with x402 v2 on Base. Lookup and search cost 0.01 native USDC; resolution costs 0.02. Documentation and metadata are free.","title":"QuerySpigot Company API","version":"0.1.0"},"openapi":"3.1.0","paths":{"/.well-known/agent-card.json":{"get":{"operationId":"getA2AAgentCard","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Agent card for the enabled A2A interface"},"404":{"description":"A2A is disabled"}},"summary":"A2A 1.0 agent card"}},"/.well-known/agent-registration.json":{"get":{"operationId":"getDomainRegistration","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Testnet domain registration metadata."},"400":{"description":"Invalid query."},"404":{"description":"Available only on the testnet service."},"429":{"description":"Registry read capacity reached. Retry after five seconds."},"503":{"description":"Registry could not be checked. No result inferred."}},"summary":"Testnet domain registration metadata."}},"/a2a":{"post":{"description":"Read /docs/a2a.md. Text help is free. Structured operations reuse REST prices and need the QuerySpigot HTTP x402 extension. The quote identifies the underlying REST resource. This is not the task-based A2A x402 extension.","operationId":"sendA2AMessage","parameters":[{"in":"header","name":"A2A-Version","schema":{"enum":["1.0"],"type":"string"}},{"in":"header","name":"A2A-Extensions","schema":{"type":"string"}},{"in":"header","name":"PAYMENT-SIGNATURE","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"lookup-1","jsonrpc":"2.0","method":"SendMessage","params":{"message":{"messageId":"lookup-1","parts":[{"data":{"input":{"company_number":"100001"},"operation":"lookup"}}],"role":"ROLE_USER"}}},"schema":{"required":["jsonrpc","id","method","params"],"type":"object"}}},"required":true},"responses":{"200":{"description":"A2A Message or JSON-RPC protocol error"},"400":{"description":"REST input error"},"402":{"description":"x402 payment required; original REST quote in PAYMENT-REQUIRED"},"404":{"description":"Company not found"},"409":{"description":"Source conflict or payment replay conflict"},"413":{"description":"Request body exceeds 16 KiB"},"429":{"description":"Adapter or origin capacity reached"},"502":{"description":"Gateway response unavailable; retry the same payment"},"503":{"description":"Company dataset unavailable"}},"servers":[{"url":"https://api.queryspigot.com"}],"summary":"Synchronous A2A 1.0 JSON-RPC company requests"}},"/agent.json":{"get":{"operationId":"getAgentRegistration","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ERC-8004 testnet metadata. Unconfigured identities explicitly report not_registered."},"400":{"description":"Invalid query."},"404":{"description":"Available only on the testnet service."},"429":{"description":"Registry read capacity reached. Retry after five seconds."},"503":{"description":"Registry could not be checked. No result inferred."}},"summary":"ERC-8004 testnet metadata. Unconfigured identities explicitly report not_registered."}},"/api/v1/company/{company_number}":{"get":{"description":"Successful responses are prepared before settlement and stored durably. Invalid, missing, conflicted, stale and rate-limited requests are not charged. Retry an identical payment to recover a stored result; never automatically create a replacement authorization after an uncertain outcome.","operationId":"getCompany","parameters":[{"example":"100001","in":"path","name":"company_number","required":true,"schema":{"pattern":"^[0-9]{1,20}$","type":"string"}},{"description":"Base64 x402 v2 payload signed by a separate wallet tool.","in":"header","name":"PAYMENT-SIGNATURE","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"synthetic":{"summary":"Synthetic illustration only; this number can identify a different company in live CRO data.","value":{"company":{"company_number":"100001","company_type":"Private limited by shares","company_type_code":null,"dissolved_date":null,"last_accounts_date":null,"last_annual_return_date":null,"legal_name":"EXAMPLE SOFTWARE LIMITED","nace_v2_code":null,"name_effective_date":null,"next_annual_return_date":null,"principal_object_code":null,"registered_address":{"eircode":"T12AB34","lines":["1 EXAMPLE STREET","CORK"]},"registered_date":"2014-02-03","status":"Normal","status_code":null,"status_date":null,"type_effective_date":null},"snapshot_id":"sha256:0000000000000000000000000000000000000000000000000000000000000000","source":{"dataset":"Synthetic companies","dataset_url":"","license":"Test data","license_url":"","modified":true,"notice":"Synthetic example. This is not a CRO record.","publisher":"Spigot test fixture","resource_id":"synthetic-companies-v1","retrieved_at":"2026-09-08T00:00:00Z","source_updated_at":null,"synthetic":true}}}},"schema":{"$ref":"#/components/schemas/CompanyResponse"}}},"description":"Company from the current snapshot.","headers":{"PAYMENT-RESPONSE":{"description":"Base64 settlement result; save it with the request and response.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid company number.","headers":{}},"402":{"description":"Payment required or rejected.","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataError"}}},"description":"No company in the current snapshot.","headers":{}},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unsupported method at the origin.","headers":{}},"409":{"content":{"application/json":{"examples":{"conflict":{"summary":"Synthetic source-conflict illustration.","value":{"company":null,"error":{"code":"source_data_conflict","message":"The source contains multiple records for this company number. No version was selected."},"snapshot_id":"sha256:0000000000000000000000000000000000000000000000000000000000000000","source":{"dataset":"Synthetic companies","dataset_url":"","license":"Test data","license_url":"","modified":true,"notice":"Synthetic example. This is not a CRO record.","publisher":"Spigot test fixture","resource_id":"synthetic-companies-v1","retrieved_at":"2026-09-08T00:00:00Z","source_updated_at":null,"synthetic":true}}}},"schema":{"$ref":"#/components/schemas/DataError"}}},"description":"Conflicting source records withheld.","headers":{}},"429":{"description":"Shared service rate limit reached. Wait for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}}},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unavailable dataset or uncertain payment outcome. Do not sign a replacement payment.","headers":{}},"default":{"description":"Gateway or infrastructure error; body and settlement evidence can vary."}},"summary":"Look up one Irish company by company number","x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","endpoint_prices":{"/api/v1/company":10000,"/api/v1/resolve":20000,"/api/v1/search":10000},"network":"eip155:8453","pay_to":"0x5Bb201198478075705fe1e972f6221c812C88EcC","price_micro_usdc":10000}}},"/api/v1/meta":{"get":{"operationId":"getDatasetMetadata","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metadata"}}},"description":"Current snapshot."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No dataset or database unavailable."}},"summary":"Read current dataset provenance and quality counts without payment"}},"/api/v1/reputation":{"get":{"operationId":"getServiceFeedback","parameters":[{"in":"query","name":"client","schema":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string"}},{"in":"query","name":"start","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":10,"maximum":10,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Read one reviewer’s testnet feedback. No aggregate score or inferred purchase verification."},"400":{"description":"Invalid query."},"404":{"description":"Available only on the testnet service."},"429":{"description":"Registry read capacity reached. Retry after five seconds."},"503":{"description":"Registry could not be checked. No result inferred."}},"summary":"Read one reviewer’s testnet feedback. No aggregate score or inferred purchase verification."}},"/api/v1/resolve":{"post":{"description":"Read-only JSON POST. Matches require score >=900 and a margin >=80. Conflicting evidence or a truncated candidate pool prevents selection. Scores are not probabilities. Valid ambiguous, conflicting and no-match results are charged. Retries require identical URI, Content-Type and body bytes.","operationId":"resolveCompany","parameters":[{"description":"Wallet-generated base64 x402 v2 payment payload. Omit for an unpaid quote.","in":"header","name":"PAYMENT-SIGNATURE","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"eircode":"T12AB34","name":"Example Software Ltd"},"schema":{"$ref":"#/components/schemas/ResolveInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}},"description":"Resolution outcome, candidates, evidence and source provenance.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"400":{"description":"Invalid query or conflicting parameter syntax. No charge in journal mode."},"402":{"description":"x402 payment challenge or rejected payment. The body is gateway-owned.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 JSON requirements. Check the asset, network, receiver, amount, and expiry before signing.","schema":{"type":"string"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataError"}}},"description":"No company in the active snapshot. A local payment can still settle.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unsupported method at the origin.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"examples":{"conflict":{"summary":"Synthetic source-conflict illustration.","value":{"company":null,"error":{"code":"source_data_conflict","message":"The source contains multiple records for this company number. No version was selected."},"snapshot_id":"sha256:0000000000000000000000000000000000000000000000000000000000000000","source":{"dataset":"Synthetic companies","dataset_url":"","license":"Test data","license_url":"","modified":true,"notice":"Synthetic example. This is not a CRO record.","publisher":"Spigot test fixture","resource_id":"synthetic-companies-v1","retrieved_at":"2026-09-08T00:00:00Z","source_updated_at":null,"synthetic":true}}}},"schema":{"$ref":"#/components/schemas/DataError"}}},"description":"Quarantined duplicate company number. No version selected. A local payment can still settle.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"413":{"description":"JSON body exceeds 4 KiB. No charge."},"415":{"description":"JSON Content-Type is required. No charge."},"429":{"description":"Shared origin limit reached. Retry after Retry-After seconds. No charge."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Company dataset unavailable at the origin.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"default":{"description":"Gateway or infrastructure error; body and settlement evidence can vary."}},"summary":"Resolve a company from name and optional address evidence","x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","endpoint_prices":{"/api/v1/company":10000,"/api/v1/resolve":20000,"/api/v1/search":10000},"network":"eip155:8453","pay_to":"0x5Bb201198478075705fe1e972f6221c812C88EcC","price_micro_usdc":20000}}},"/api/v1/search":{"get":{"description":"Bounded ranked results with canonical names and snapshot provenance. Valid no-match responses are charged. Preserve the complete query string for payment retries.","operationId":"searchCompanies","parameters":[{"in":"query","name":"q","required":true,"schema":{"maxLength":160,"minLength":3,"type":"string"}},{"in":"query","name":"limit","schema":{"default":5,"maximum":10,"minimum":1,"type":"integer"}},{"in":"query","name":"status","schema":{"maxLength":80,"minLength":1,"type":"string"}},{"in":"query","name":"eircode","schema":{"description":"Seven ASCII letters or digits, with optional spaces.","maxLength":16,"type":"string"}},{"description":"Wallet-generated base64 x402 v2 payment payload. Omit for an unpaid quote.","in":"header","name":"PAYMENT-SIGNATURE","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}},"description":"Ranked candidates, including an empty list for a valid no-match query. This response is charged.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"400":{"description":"Invalid query or conflicting parameter syntax. No charge in journal mode."},"402":{"description":"x402 payment challenge or rejected payment. The body is gateway-owned.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 JSON requirements. Check the asset, network, receiver, amount, and expiry before signing.","schema":{"type":"string"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataError"}}},"description":"No company in the active snapshot. A local payment can still settle.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unsupported method at the origin.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"409":{"content":{"application/json":{"examples":{"conflict":{"summary":"Synthetic source-conflict illustration.","value":{"company":null,"error":{"code":"source_data_conflict","message":"The source contains multiple records for this company number. No version was selected."},"snapshot_id":"sha256:0000000000000000000000000000000000000000000000000000000000000000","source":{"dataset":"Synthetic companies","dataset_url":"","license":"Test data","license_url":"","modified":true,"notice":"Synthetic example. This is not a CRO record.","publisher":"Spigot test fixture","resource_id":"synthetic-companies-v1","retrieved_at":"2026-09-08T00:00:00Z","source_updated_at":null,"synthetic":true}}}},"schema":{"$ref":"#/components/schemas/DataError"}}},"description":"Quarantined duplicate company number. No version selected. A local payment can still settle.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"413":{"description":"JSON body exceeds 4 KiB. No charge."},"415":{"description":"JSON Content-Type is required. No charge."},"429":{"description":"Shared origin limit reached. Retry after Retry-After seconds. No charge."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Company dataset unavailable at the origin.","headers":{"PAYMENT-RESPONSE":{"description":"Optional base64 x402 settlement result when the gateway supplies it. Payment does not prove successful data delivery.","schema":{"type":"string"}}}},"default":{"description":"Gateway or infrastructure error; body and settlement evidence can vary."}},"summary":"Search Irish companies by name","x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","endpoint_prices":{"/api/v1/company":10000,"/api/v1/resolve":20000,"/api/v1/search":10000},"network":"eip155:8453","pay_to":"0x5Bb201198478075705fe1e972f6221c812C88EcC","price_micro_usdc":10000}}},"/attribution":{"get":{"operationId":"getAttribution","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"dataset_url":{"type":"string"},"license":{"type":"string"},"license_url":{"type":"string"},"notice":{"type":"string"},"publisher":{"type":"string"}},"required":["publisher","dataset_url","license","license_url","notice"],"type":"object"}}},"description":"CRO source and license notice."}},"summary":"Read source acknowledgment without payment"}},"/docs":{"get":{"operationId":"getDocumentation","responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"Public documentation."}},"summary":"Read public documentation without payment"}},"/docs/a2a.md":{"get":{"operationId":"getA2AGuide","responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"A2A and HTTP x402 extension guide"}}}},"/docs/api.md":{"get":{"operationId":"getApiGuide","responses":{"200":{"content":{"text/markdown":{"schema":{"type":"string"}}},"description":"Public documentation."}},"summary":"Read public documentation without payment"}},"/llms.txt":{"get":{"operationId":"getLlmGuide","responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"Public documentation."}},"summary":"Read public documentation without payment"}},"/openapi.json":{"get":{"operationId":"getOpenApi","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Public documentation."}},"summary":"Read public documentation without payment"}},"/robots.txt":{"get":{"operationId":"getRobotsPolicy","responses":{"200":{"content":{"text/plain":{"schema":{"type":"string"}}},"description":"Public documentation."}},"summary":"Read public documentation without payment"}}},"servers":[{"description":"Base mainnet API","url":"https://api.queryspigot.com"}]}