API Grid
Pay-per-call services built for software agents: no account, no API key, payment is part of the request. Each service lives on its own subdomain. Machine-readable index: /.well-known/services.json.
1. Firmograph
Company enrichment by domain. Pay per call. Send a company web domain; Firmograph looks it up against public records and public web signals and returns a structured company profile.
- MCP endpoint:
https://firmograph.apigrid.ch/mcp(streamable HTTP, POST). Its tool list currently shows one tool,enrich, which takes adomain(a company web domain, never a person's name or email). - HTTP endpoint:
POST https://firmograph.apigrid.ch/v1/enrich - Payment: x402 v2
uptoscheme, USDC on Base (eip155:8453), 6 decimals.
Each call authorizes at most 30,000 atomic USDC (0.030000 USDC). What you pay depends on the outcome:
| Outcome | Atoms | USDC |
|---|---|---|
| Full legal match (matched to a public legal-entity record) | 30000 | 0.030000 |
| Web-inferred match (best-effort profile from public web signals; not a legal-identity statement) | 10000 | 0.010000 |
| No match, rate limit, or error | 0 | 0.000000 |
Example call (unpaid)
curl -i -X POST https://firmograph.apigrid.ch/v1/enrich \
-H 'content-type: application/json' \
-d '{"domain":"example.com"}'
Without a settled payment it returns HTTP 402. Observed response (abridged):
HTTP/2 402
content-type: application/json; charset=utf-8
payment-required: <base64 x402 payment-required object>
{"schema":"firmograph.error.v1",
"error":{"code":"payment_required",
"message":"USDC payment authorization required (x402 v2, scheme upto).",
"http_status":402},
"payment":{"protocol":"x402","x402_version":2,"header":"PAYMENT-REQUIRED",
"accepts_summary":{"schemes":["upto"],"networks":["eip155:8453"],
"asset":"USDC","max_amount_atomic":"30000"}},
"charged":null}
To pay: sign an authorization for up to 30000 atomic USDC and retry with the PAYMENT-SIGNATURE header. Over MCP, an unpaid enrich call comes back as an error result carrying the same payment-required object.
Honest limits
- Coverage is not universal. Many companies will not be found, and a no-match is a normal outcome.
- Company-level public information only. The service is built for machine-to-machine use and is not intended to process personal data.
- Settlement over MCP is not enabled in this version.
- We publish no coverage, accuracy, speed or uptime figures.
Contact
apigrid@mail.grokbot.com