gov.fcc-id

Resolve an FCC ID (printed on US wireless/electronic devices) to the grantee — the manufacturer that holds the FCC equipment authorization. Pass fccId in any form (BCG-E3217A, BCGE3217A). Returns the grantee code, the product code, and the grantee company: name, city, state, country, and the date its grantee code was registered. Uses the FCC EAS Equipment Authorization Grantee Registrations open dataset, free and keyless — the "who made this device" lookup an agent reading a label off hardware cannot do natively. (Per-product RF detail — frequencies, equipment class — is not in the open dataset and is out of scope.)

price
$0.0012 USDC per call
method
GET/api/gov/fcc-id
payment
x402 v2 · USDC on Base (EIP-3009) or Solana (SPL transfer)
auth
None. Sign the payment, retry with PAYMENT-SIGNATURE.

Overview

The fcc id API is a pay-per-call gov endpoint built for AI agents and autonomous software. Resolve an FCC ID (printed on US wireless/electronic devices) to the grantee — the manufacturer that holds the FCC equipment authorization.

There is no signup and no API key. An agent (or any HTTP client) hits the endpoint, receives an x402 "402 Payment Required" challenge, signs a sub-cent USDC payment on Base or Solana, and retries — the data comes back on the paid request. That makes it a drop-in fcc id data source for an agent tool-use loop, an MCP host, or a backend that needs gov data on demand without onboarding to yet another vendor portal.

Use cases

Parameters

NameTypeDescription
fccIdrequiredstringAn FCC ID, e.g. BCG-E3217A or BCGE3217A.
min 3 chars · max 40 chars

Code samples

cURLbash
# 1. Probe with no auth → 402 envelope with PaymentRequirements
curl -sS 'https://2s.io/api/gov/fcc-id?fccId=xxx'

# 2. Sign + retry with PAYMENT-SIGNATURE:
curl -sS 'https://2s.io/api/gov/fcc-id?fccId=xxx' \
  -H 'PAYMENT-SIGNATURE: <base64-json-payload>'

# Or use the canonical runner (handles probe → sign → retry):
#   EVM_PRIVATE_KEY=0x... node --env-file=.env.local \
#     --experimental-strip-types scripts/x402-pay.ts \
#     'https://2s.io/api/gov/fcc-id?fccId=xxx'
TypeScript / Node — @2sio/sdktypescript
import { TwoS } from '@2sio/sdk'

const client = new TwoS({
  privateKey: process.env.EVM_PRIVATE_KEY as `0x${string}`,
})

const result = await client.gov.fccId({
  "fccId": "xxx"
})

console.log('endpoint:', result.endpoint)
console.log('cost:', result.costUsd, 'USDC')
console.log('tx:', result.settlement?.txHash)
console.log('data:', result.data)
Python — 2siopython
import os
from twosio import TwoS

client = TwoS(private_key=os.environ["EVM_PRIVATE_KEY"])

result = client.gov.fcc_id(fccId="xxx")

print("endpoint:", result.endpoint)
print("cost:", result.cost_usd, "USDC")
print("tx:", (result.settlement or {}).get("tx_hash"))
print("data:", result.data)
MCP — Claude Desktop / AgentKit / any MCP hostjson
// 1. Add @2sio/mcp to your MCP host config (Claude Desktop example below).
//    EVM_PRIVATE_KEY funds x402 payments per call.

// claude_desktop_config.json
{
  "mcpServers": {
    "2sio": {
      "command": "npx",
      "args": ["-y", "@2sio/mcp"],
      "env": { "EVM_PRIVATE_KEY": "0x..." }
    }
  }
}

// 2. Once the server is running, agents call this tool via standard MCP:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "gov.fcc-id",
    "arguments": {
      "fccId": "xxx"
    }
  }
}

Response

FieldTypeDescription
queryobject
foundboolean
granteeCodestring
productCodestring
granteeobject
sourceobject
notestring
Example response datajson
{
  "query": {
    "fccId": "example"
  },
  "found": false,
  "granteeCode": "example",
  "productCode": "example",
  "grantee": {
    "name": "example",
    "city": "example",
    "state": "example",
    "country": "example",
    "zipCode": "example",
    "dateReceived": "example"
  },
  "source": {
    "provider": "example",
    "url": "example",
    "license": "example"
  },
  "note": "example"
}

FAQ

Do I need an API key to use the fcc id API?
No. gov.fcc-id is x402-native — there is no signup and no API key. Your client makes the call, receives a 402 with payment requirements, signs a USDC payment, and retries. Funds come from a wallet you control.
How much does the fcc id API cost?
$0.0012 USDC per call, charged per request. There are no monthly fees, seats, or minimums — you pay only for the calls you make.
Can I try the fcc id API for free first?
Yes. Add ?trial=1 (or the header X-2s-Trial: 1) to get a free real call per endpoint per hour, so you can verify the response shape before wiring payment.
Which networks and tokens are supported?
USDC on Base (via EIP-3009 transferWithAuthorization) or Solana (SPL transfer), using the open x402 payment protocol.
How do I call gov.fcc-id from an AI agent or MCP host?
Use @2sio/sdk (TypeScript), 2sio (Python), or the @2sio/mcp server for any MCP host — each handles the probe → sign → retry loop for you. See the code samples on this page.

Discovery

Related: fcc id api · gov fcc id api · fcc id api for ai agents · x402 gov api · fcc id api no api key · pay per call fcc id api · gov api