API reference · version 1
FCCID.io API documentation
Base URL: https://api.fccid.io. All data endpoints use GET
and return JSON.
Download the OpenAPI 3.1 specification.
Authentication
Create an FCCID.io API account and activate Development / Free or a paid subscription. Email verification is optional. Create a key in the account dashboard. Keys are shown once; rotate or revoke them there.
Authorization: Bearer YOUR_API_KEY
Keep API keys in your server or private project configuration. Commercial use is allowed on every plan. A link to FCCID.io wherever you display the data is appreciated and optional.
Examples in your language
Python
import os, requests
response = requests.get(
"https://api.fccid.io/lookup",
params={"manufacturer": "Creality", "model": "SPARKXI8"},
headers={"Authorization": "Bearer " + os.environ["FCCID_API_KEY"]},
timeout=15,
)
response.raise_for_status()
print(response.json())
JavaScript (server)
const url = new URL("https://api.fccid.io/validate");
url.searchParams.set("fccid", "A4RH2G2-42");
const response = await fetch(url, {
headers: { Authorization: "Bearer " + process.env.FCCID_API_KEY },
signal: AbortSignal.timeout(15000)
});
if (!response.ok) throw new Error("FCCID API: " + response.status);
console.log(await response.json());
GET /lookup
Accepts fccid, q, brand,
model, manufacturer, ean,
mpn, title, and category. Supply
at least one identifier or product clue. Inputs are limited to 256
characters each. Returns up to ten candidates.
Example requests
curl 'https://api.fccid.io/lookup?manufacturer=Creality&model=SPARKXI8' \ -H "Authorization: Bearer $FCCID_API_KEY" curl 'https://api.fccid.io/lookup?ean=5020309001701' \ -H "Authorization: Bearer $FCCID_API_KEY"
Each candidate reports valid for the FCC record and a
separate match.status, method, reasons, and evidence. An
identifier_match confirms only that the supplied identifier
matched a record. A candidate is not a confirmed product association.
Common OCR variants are bounded and disclosed in
corrections.
Search by fccid or enter a compact FCC ID in
q. The suggestions array lists public FCC
records with their canonical IDs, links, and the reason each was
suggested. An exact record can return its recorded punctuation as a
formatting suggestion. If there is no exact record, the API
checks up to seven alternatives for one visually similar character (such
as 0/O, 1/I/L, 5/S, 8/B, or 2/Z) or a swap of adjacent characters. An
empty array means the checked alternatives yielded no public record.
Lookup can return suggestions even when matches is empty.
EAN/UPC/GTIN is an input for finding FCC IDs. It must have a valid check
digit; leading zeros are preserved. Published FCC exhibit records are
checked first for an exact normalized GTIN association. These results
use match.method: "exact_ean_record" and retain
the supporting FCC document. If none are available, product sources,
including retailer and manufacturer evidence available through
Barcode.report, supply brand/model clues. You can also provide
brand/model/MPN from your own catalog or other sources; a supplied
brand/manufacturer plus model/MPN bypasses the barcode reader after the
direct FCC-record check. An available direct FCC association takes
priority over those inferred clues. Current record, document, and
association publication rules are reapplied on cache hits. Results
contain FCC candidates and only the source clues supporting those
candidates. No FCC match returns
status: "not_found" with
matches: [], not standalone barcode products or unrelated
recalls. ean_resolution reports the normalized GTIN,
resolution outcome, and whether clues came from the request or product
sources. Product associations remain unconfirmed; conflicting source
variants remain separate candidates.
Example responses
Product search · GET /lookup?manufacturer=Creality&model=SPARKXI8
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000001",
"status": "matches",
"matches": [
{
"fccid": "2AXH6-SPARKXI8",
"valid": true,
"applicant": "Shenzhen Creality 3D Technology Co.,Ltd.",
"manufacturer": null,
"brand": null,
"models": [
"SPARKXI8"
],
"product": "3D Printer",
"equipment_class": "DTS - Digital Transmission System",
"latest_filing_date": "2026-10-16",
"authorization": {
"status": "granted",
"as_of": "2026-10-16",
"evidence": [
{
"application_id": "xzxVY4/Wa74mXxajj94ezA==",
"status": "granted",
"date": "2026-10-16",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/2AXH6-SPARKXI8"
}
]
},
"match": {
"status": "candidate",
"method": "document_text",
"reasons": [
"FCC document content matches the product query."
]
},
"evidence": [
{
"kind": "fcc_application",
"application_id": "xzxVY4/Wa74mXxajj94ezA==",
"url": "https://fccid.io/2AXH6-SPARKXI8",
"date": "2026-10-16"
},
{
"kind": "fcc_document",
"document_id": 9736191,
"application_id": "xzxVY4/Wa74mXxajj94ezA==",
"sha256": "6653576106d51bf2263f95d43d09ae0fbdb8a5b296d11e96e028e44329a5c5ca",
"title": "Test Report",
"url": "https://fccid.io/document.php?id=9736191"
}
],
"links": {
"fccid": "https://fccid.io/2AXH6-SPARKXI8"
},
"news": [],
"warnings": []
}
],
"search": {
"literal_model": "SPARKXI8",
"expanded_terms": [
"SPARKXI8",
"5PARKXI8",
"SPARKX18",
"SPARKXL8",
"SPARKXIB"
]
},
"corrections": [],
"barcode": null,
"warnings": [],
"checked_at": "2026-11-03T19:50:00.000Z",
"verification_source": "FCC-sourced records held by FCCID.io",
"cache": "miss",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
}
}Direct EAN association · GET /lookup?ean=5020309001701
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000002",
"status": "matches",
"matches": [
{
"fccid": "2BNTC-BTS50H",
"valid": true,
"applicant": "JMTEK TECHNOLOGY(ZHONGSHAN) CO., LTD",
"manufacturer": null,
"brand": null,
"models": [
"BTS50H"
],
"product": "Transparent Wireless Speaker",
"equipment_class": "DSS - Part 15 Spread Spectrum Transmitter",
"latest_filing_date": "2026-10-30",
"authorization": {
"status": "granted",
"as_of": "2026-10-30",
"evidence": [
{
"application_id": "jBNV/rPyLGJ5ajfl2lgUzg==",
"status": "granted",
"date": "2026-10-30",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/2BNTC-BTS50H"
}
]
},
"match": {
"status": "candidate",
"method": "exact_ean_record",
"reasons": [
"The exact normalized GTIN is recorded in a published FCC exhibit associated with this FCC ID. Physical product identity remains unconfirmed."
]
},
"evidence": [
{
"kind": "fcc_application",
"application_id": "jBNV/rPyLGJ5ajfl2lgUzg==",
"url": "https://fccid.io/2BNTC-BTS50H",
"date": "2026-10-30"
},
{
"kind": "fcc_document",
"document_id": 9775360,
"application_id": "jBNV/rPyLGJ5ajfl2lgUzg==",
"sha256": "14187a1c043f40927dfa505f15f00bfc3805948035d52998fa5aa13bf5d3ec8e",
"title": "ID label and location",
"url": "https://fccid.io/document.php?id=9775360"
},
{
"kind": "fcc_ean_association",
"gtin14": "05020309001701",
"barcode_id": 4230,
"document_id": 9775360,
"application_id": "jBNV/rPyLGJ5ajfl2lgUzg==",
"fccid": "2BNTC-BTS50H",
"sha256": "14187a1c043f40927dfa505f15f00bfc3805948035d52998fa5aa13bf5d3ec8e",
"source_url": "https://fccid.io/document.php?id=9775360",
"observed_at": "2026-10-31 05:01:20",
"reference": "61191bce1c8ad31d22d9106323ca5dcf43599336c7a9def17cf2066063fb249c"
}
],
"links": {
"fccid": "https://fccid.io/2BNTC-BTS50H"
},
"news": [],
"warnings": []
}
],
"corrections": [],
"direct_records_truncated": false,
"news": [],
"warnings": [],
"ean_resolution": {
"gtin14": "05020309001701",
"status": "fcc_candidates_found",
"clue_source": "fcc_records",
"direct_record_matches": 1,
"product_association": "unconfirmed"
},
"checked_at": "2026-11-03T19:50:00.000Z",
"verification_source": "FCC-sourced records held by FCCID.io",
"cache": "miss",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
}
}Response fields
| JSON field | Meaning |
|---|---|
matches | Ranked FCC candidates. An empty array means no match. At most 10 entries. |
search | Search diagnostics when search terms were expanded. |
search.literal_model | Model or part number used before expansion, or null. |
search.expanded_terms | Bounded list of tried spellings, including the original term when available. |
corrections | Reported character substitutions. An empty array means none were reported. |
corrections[].field | Input field corrected when the response identifies it. |
corrections[].from | Original value. |
corrections[].to | Candidate value after substitution. |
corrections[].basis | Why the substitution was proposed, when provided. |
barcode | Legacy field. Ordinary lookup can return null. EAN lookup uses ean_resolution instead. |
direct_records_truncated | True when the direct FCC barcode search reached its source row limit. Present on applicable EAN lookups. |
ean_resolution | How the barcode was used to find FCC IDs. |
ean_resolution.gtin14 | Checksum-validated barcode normalized to a 14-digit string. Leading zeros are preserved. |
ean_resolution.status | fcc_candidates_found or no_fcc_match. |
ean_resolution.clue_source | fcc_records for a direct FCC association, request for caller-supplied clues, or product_sources for external product clues. |
ean_resolution.direct_record_matches | Number of returned FCC candidates with direct barcode evidence. |
ean_resolution.product_association | unconfirmed. Review whether the evidence applies to the specific product. |
suggestions | Verified FCC records offered as alternatives for an identifier search. An empty array means none of the checked spellings produced a public record. |
suggestions[].fccid | Canonical FCC ID of the suggested record. |
suggestions[].basis | formatting for the same ID with its recorded punctuation, confusable_character for one visually similar character, or adjacent_transposition for two neighboring characters in reverse order. |
suggestions[].url | FCCID.io page for the suggested record. |
See also shared response fields.
GET /validate
Requires fccid. Checks whether that identifier appears in
the FCC-sourced records covered by the API.
Example request
curl 'https://api.fccid.io/validate?fccid=A4RH2G2-42' \ -H "Authorization: Bearer $FCCID_API_KEY"
| Result | Meaning |
|---|---|
valid: true |
An exact identifier is confirmed in FCC-sourced records held by FCCID.io. |
valid: false |
The supplied identifier has malformed syntax. |
valid: null |
The identifier is plausible but unconfirmed in the covered records. |
Case, spaces, and display separators are normalized; character substitutions are not made. Grant/authorization status is reported independently and can be unknown. Confirmation of a record does not establish that a physical product uses that authorization.
When the submitted ID is plausible but unconfirmed,
suggestions may list other records. For example,
A4RH2G2-4Z can suggest A4RH2G2-42 while
valid remains null. Submit the suggested ID
separately to validate it.
Marketplace compliance screening
Every completed /validate response includes
screening, with no additional query charge.
checks.fcc_id_record.status is confirmed,
invalid_syntax, or unconfirmed. Evidence is
filtered through the current publication policy before screening is
built, including on cache hits.
marketing_eligibility remains undetermined and
review_required remains true. The API has not inspected the
physical product, collected seller certification, performed a live FCC
EAS check, or determined Covered List clearance. A recorded historical
grant appears in checks.recorded_grant; current permission
is separate. Missing IDs, empty warnings, and source outages are not
compliance clearance.
rules_reviewed_at dates the rule references;
assessed_at dates this response.
next_actions lists remaining review steps. Preserve the
complete JSON and its request ID with the seller’s product and label
evidence.
Marketplace guide, scope, exceptions, and 2027 dates
·
Machine-readable rule references.
Example responses
Confirmed FCC ID with a historical grant · GET /validate?fccid=A4RH2G2-42
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000003",
"status": "confirmed",
"input": "A4RH2G2-42",
"sources": [
{
"kind": "fcc_application",
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"url": "https://fccid.io/A4RH2G2-42",
"date": "2013-05-17"
}
],
"fccid": "A4RH2G2-42",
"valid": true,
"applicant": "Google LLC",
"manufacturer": null,
"brand": null,
"models": [
"H2G2-42"
],
"product": "H840 Device",
"equipment_class": "DTS - Digital Transmission System",
"latest_filing_date": "2013-05-17",
"authorization": {
"status": "granted",
"as_of": "2013-05-17",
"evidence": [
{
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"status": "granted",
"date": "2013-05-17",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/A4RH2G2-42"
}
]
},
"match": {
"status": "identifier_match",
"method": "exact_fccid",
"reasons": [
"Exact FCC-sourced identifier record."
]
},
"evidence": [
{
"kind": "fcc_application",
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"url": "https://fccid.io/A4RH2G2-42",
"date": "2013-05-17"
}
],
"links": {
"fccid": "https://fccid.io/A4RH2G2-42"
},
"news": [],
"warnings": [],
"checked_at": "2026-11-03T19:50:00.000Z",
"screening": {
"schema_version": "1",
"purpose": "us_marketplace_fcc_id_screening",
"assessed_at": "2026-11-03T19:50:00.000Z",
"rules_reviewed_at": "2026-11-02",
"rules_url": "https://api.fccid.io/marketplace-rules.json",
"guide_url": "https://api.fccid.io/compliance",
"marketing_eligibility": "undetermined",
"review_required": true,
"checks": {
"fcc_id_record": {
"status": "confirmed",
"basis": "FCC-sourced records held by FCCID.io",
"evidence": [
{
"kind": "fcc_application",
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"url": "https://fccid.io/A4RH2G2-42",
"date": "2013-05-17"
}
]
},
"recorded_grant": {
"status": "observed",
"as_of": "2013-05-17"
},
"product_association": {
"status": "not_verified"
},
"current_authorization": {
"status": "unknown"
},
"fcc_eas_live_check": {
"status": "not_performed"
},
"covered_equipment": {
"status": "not_assessed"
},
"listing_display_requirement": {
"status": "requires_listing_context"
},
"seller_accuracy_certification": {
"status": "not_collected"
},
"published_warnings": {
"status": "none_found_in_covered_sources",
"count": 0,
"coverage": "Published items explicitly linked to this FCC ID; not comprehensive enforcement or recall coverage."
}
},
"next_actions": [
"verify_product_label_and_model",
"check_current_fcc_authorization_and_restrictions",
"determine_certification_or_sdoc_path",
"review_listing_scope_deadline_and_exceptions",
"collect_seller_accuracy_certification_when_applicable",
"retain_response_and_product_evidence"
],
"official_verification_url": "https://apps.fcc.gov/oetcf/eas/reports/GenericSearch.cfm",
"limitations": "A confirmed record does not establish product identity, current marketing permission, Covered List clearance, or compliance certification. FCCID.io does not perform a live FCC EAS check in this response."
},
"verification_source": "FCC-sourced records held by FCCID.io",
"cache": "hit",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
}
}Plausible FCC ID with no confirmed record · GET /validate?fccid=ZZZUNCONFIRMED99
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000003",
"checked_at": "2026-11-03T19:50:00.000Z",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
},
"status": "not_found",
"valid": null,
"input": "ZZZUNCONFIRMED99",
"authorization": {
"status": "unknown",
"as_of": null,
"evidence": []
},
"sources": [],
"news": [],
"warnings": [],
"screening": {
"schema_version": "1",
"purpose": "us_marketplace_fcc_id_screening",
"assessed_at": "2026-11-03T19:50:00.000Z",
"rules_reviewed_at": "2026-11-02",
"rules_url": "https://api.fccid.io/marketplace-rules.json",
"guide_url": "https://api.fccid.io/compliance",
"marketing_eligibility": "undetermined",
"review_required": true,
"checks": {
"fcc_id_record": {
"status": "unconfirmed",
"basis": "FCC-sourced records held by FCCID.io",
"evidence": []
},
"recorded_grant": {
"status": "unknown",
"as_of": null
},
"product_association": {
"status": "not_verified"
},
"current_authorization": {
"status": "unknown"
},
"fcc_eas_live_check": {
"status": "not_performed"
},
"covered_equipment": {
"status": "not_assessed"
},
"listing_display_requirement": {
"status": "requires_listing_context"
},
"seller_accuracy_certification": {
"status": "not_collected"
},
"published_warnings": {
"status": "none_found_in_covered_sources",
"count": 0,
"coverage": "Published items explicitly linked to this FCC ID; not comprehensive enforcement or recall coverage."
}
},
"next_actions": [
"verify_identifier_in_fcc_eas",
"check_current_fcc_authorization_and_restrictions",
"determine_certification_or_sdoc_path",
"review_listing_scope_deadline_and_exceptions",
"collect_seller_accuracy_certification_when_applicable",
"retain_response_and_product_evidence"
],
"official_verification_url": "https://apps.fcc.gov/oetcf/eas/reports/GenericSearch.cfm",
"limitations": "A confirmed record does not establish product identity, current marketing permission, Covered List clearance, or compliance certification. FCCID.io does not perform a live FCC EAS check in this response."
},
"cache": "miss",
"verification_source": "FCC-sourced records held by FCCID.io"
}Unconfirmed FCC ID with a suggested correction · GET /validate?fccid=A4RH2G2-4Z
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000003",
"checked_at": "2026-11-03T19:50:00.000Z",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
},
"status": "not_found",
"valid": null,
"input": "A4RH2G2-4Z",
"authorization": {
"status": "unknown",
"as_of": null,
"evidence": []
},
"suggestions": [
{
"fccid": "A4RH2G2-42",
"basis": "confusable_character",
"url": "https://fccid.io/A4RH2G2-42"
}
],
"sources": [],
"news": [],
"warnings": [],
"screening": {
"schema_version": "1",
"purpose": "us_marketplace_fcc_id_screening",
"assessed_at": "2026-11-03T19:50:00.000Z",
"rules_reviewed_at": "2026-11-02",
"rules_url": "https://api.fccid.io/marketplace-rules.json",
"guide_url": "https://api.fccid.io/compliance",
"marketing_eligibility": "undetermined",
"review_required": true,
"checks": {
"fcc_id_record": {
"status": "unconfirmed",
"basis": "FCC-sourced records held by FCCID.io",
"evidence": []
},
"recorded_grant": {
"status": "unknown",
"as_of": null
},
"product_association": {
"status": "not_verified"
},
"current_authorization": {
"status": "unknown"
},
"fcc_eas_live_check": {
"status": "not_performed"
},
"covered_equipment": {
"status": "not_assessed"
},
"listing_display_requirement": {
"status": "requires_listing_context"
},
"seller_accuracy_certification": {
"status": "not_collected"
},
"published_warnings": {
"status": "none_found_in_covered_sources",
"count": 0,
"coverage": "Published items explicitly linked to this FCC ID; not comprehensive enforcement or recall coverage."
}
},
"next_actions": [
"verify_identifier_in_fcc_eas",
"check_current_fcc_authorization_and_restrictions",
"determine_certification_or_sdoc_path",
"review_listing_scope_deadline_and_exceptions",
"collect_seller_accuracy_certification_when_applicable",
"retain_response_and_product_evidence"
],
"official_verification_url": "https://apps.fcc.gov/oetcf/eas/reports/GenericSearch.cfm",
"limitations": "A confirmed record does not establish product identity, current marketing permission, Covered List clearance, or compliance certification. FCCID.io does not perform a live FCC EAS check in this response."
},
"cache": "miss",
"verification_source": "FCC-sourced records held by FCCID.io"
}Malformed identifier · GET /validate?fccid=%3F%3F
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000003",
"checked_at": "2026-11-03T19:50:00.000Z",
"usage": {
"plan": "free",
"quota": 100,
"used": 11,
"remaining": 89,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
},
"status": "invalid_syntax",
"valid": false,
"input": "??",
"authorization": {
"status": "unknown"
},
"sources": [],
"news": [],
"warnings": [],
"screening": {
"schema_version": "1",
"purpose": "us_marketplace_fcc_id_screening",
"assessed_at": "2026-11-03T19:50:00.000Z",
"rules_reviewed_at": "2026-11-02",
"rules_url": "https://api.fccid.io/marketplace-rules.json",
"guide_url": "https://api.fccid.io/compliance",
"marketing_eligibility": "undetermined",
"review_required": true,
"checks": {
"fcc_id_record": {
"status": "invalid_syntax",
"basis": "FCC-sourced records held by FCCID.io",
"evidence": []
},
"recorded_grant": {
"status": "unknown",
"as_of": null
},
"product_association": {
"status": "not_verified"
},
"current_authorization": {
"status": "unknown"
},
"fcc_eas_live_check": {
"status": "not_performed"
},
"covered_equipment": {
"status": "not_assessed"
},
"listing_display_requirement": {
"status": "requires_listing_context"
},
"seller_accuracy_certification": {
"status": "not_collected"
},
"published_warnings": {
"status": "none_found_in_covered_sources",
"count": 0,
"coverage": "Published items explicitly linked to this FCC ID; not comprehensive enforcement or recall coverage."
}
},
"next_actions": [
"correct_identifier",
"check_current_fcc_authorization_and_restrictions",
"determine_certification_or_sdoc_path",
"review_listing_scope_deadline_and_exceptions",
"collect_seller_accuracy_certification_when_applicable",
"retain_response_and_product_evidence"
],
"official_verification_url": "https://apps.fcc.gov/oetcf/eas/reports/GenericSearch.cfm",
"limitations": "A confirmed record does not establish product identity, current marketing permission, Covered List clearance, or compliance certification. FCCID.io does not perform a live FCC EAS check in this response."
}
}Response fields
| JSON field | Meaning |
|---|---|
input | Submitted FCC ID after request input normalization. |
sources | Source evidence for the exact record. Uses the same fields as match evidence. |
screening | Marketplace evidence and review checklist. Present on validation responses. |
screening.schema_version | Version of the screening object. |
screening.purpose | Identifier for the US marketplace FCC ID screening workflow. |
screening.assessed_at | UTC timestamp for this screening response. |
screening.rules_reviewed_at | Date the published rule references were reviewed. |
screening.rules_url | Machine-readable rule references. |
screening.guide_url | FCCID.io guide to marketplace checks. |
screening.marketing_eligibility | undetermined. The response identifies checks that require additional evidence or listing context. |
screening.review_required | True when review is required. |
screening.checks | Individual evidence and review checks. |
screening.checks.fcc_id_record | Exact FCC record check. |
screening.checks.fcc_id_record.status | confirmed, invalid_syntax, or unconfirmed. |
screening.checks.fcc_id_record.basis | Source used for the record check. |
screening.checks.fcc_id_record.evidence | Evidence supporting the exact record check. |
screening.checks.recorded_grant | Historical grant check. |
screening.checks.recorded_grant.status | observed for a documented historical grant, otherwise unknown. |
screening.checks.recorded_grant.as_of | Historical grant date, or null. |
screening.checks.product_association | Evidence linking this physical product to the FCC ID. |
screening.checks.product_association.status | not_verified. Compare the product label and model with the returned evidence. |
screening.checks.current_authorization | Status of the current equipment authorization. |
screening.checks.current_authorization.status | unknown. Requires evidence of the current authorization and applicable restrictions. |
screening.checks.fcc_eas_live_check | Whether the API queried the official FCC EAS system live. |
screening.checks.fcc_eas_live_check.status | not_performed. Live official verification is a separate step. |
screening.checks.covered_equipment | Covered equipment review. |
screening.checks.covered_equipment.status | not_assessed. Covered equipment review is a separate step. |
screening.checks.listing_display_requirement | Whether the specific listing context has been assessed. |
screening.checks.listing_display_requirement.status | requires_listing_context. Apply the requirements to the actual listing. |
screening.checks.seller_accuracy_certification | Whether a seller certification was collected. |
screening.checks.seller_accuracy_certification.status | not_collected. The API collects no seller attestation. |
screening.checks.published_warnings | Warnings published in the covered sources. |
screening.checks.published_warnings.status | review_items_found or none_found_in_covered_sources. |
screening.checks.published_warnings.count | Number of linked warning items in the response. |
screening.checks.published_warnings.coverage | Scope of the warning sources. |
screening.next_actions | Machine-readable codes for suggested review steps. |
screening.official_verification_url | Official FCC equipment authorization search. |
screening.limitations | What additional checks or evidence are needed. |
suggestions | Verified FCC records offered as alternatives for an identifier search. An empty array means none of the checked spellings produced a public record. |
suggestions[].fccid | Canonical FCC ID of the suggested record. |
suggestions[].basis | formatting for the same ID with its recorded punctuation, confusable_character for one visually similar character, or adjacent_transposition for two neighboring characters in reverse order. |
suggestions[].url | FCCID.io page for the suggested record. |
See also shared response fields.
GET /frequency
Requires fccid. When a response includes
next_cursor, pass it as cursor to retrieve the
next page. Each page is one query. When the submitted ID has no exact
record, suggestions may list alternatives. Query the
suggested ID to retrieve its frequencies.
Example request
curl 'https://api.fccid.io/frequency?fccid=A4RH2G2-42' \ -H "Authorization: Bearer $FCCID_API_KEY"
authorization uses the same FCC evidence on lookup,
validation, and frequency responses. granted records a
historical grant. denied and dismissed require
an explicit FCC decision and are reported when no grant is evidenced.
Otherwise the status is unknown. Evidence identifies the
application and source. Current authorization remains unknown without
separate lifecycle evidence.
Frequency ranges use MHz. Results retain application references, grant
dates, and source links. Raw power values retain their source units.
Only supported grant data is returned; missing frequencies have
frequency_status: "unknown".
Example responses
Granted frequency ranges · GET /frequency?fccid=A4RH2G2-42
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000004",
"status": "confirmed",
"input": "A4RH2G2-42",
"sources": [
{
"kind": "fcc_application",
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"url": "https://fccid.io/A4RH2G2-42",
"date": "2013-05-17"
}
],
"fccid": "A4RH2G2-42",
"valid": true,
"applicant": "Google LLC",
"manufacturer": null,
"brand": null,
"models": [
"H2G2-42"
],
"product": "H840 Device",
"equipment_class": "DTS - Digital Transmission System",
"latest_filing_date": "2013-05-17",
"authorization": {
"status": "granted",
"as_of": "2013-05-17",
"evidence": [
{
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"status": "granted",
"date": "2013-05-17",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/A4RH2G2-42"
}
]
},
"match": {
"status": "identifier_match",
"method": "exact_fccid",
"reasons": [
"Exact FCC-sourced identifier record."
]
},
"evidence": [
{
"kind": "fcc_application",
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"url": "https://fccid.io/A4RH2G2-42",
"date": "2013-05-17"
}
],
"links": {
"fccid": "https://fccid.io/A4RH2G2-42"
},
"news": [],
"warnings": [],
"frequencies": [
{
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"lower_mhz": 2412,
"upper_mhz": 2462,
"power_output": "0.0646",
"power_output_unit": "W",
"emission_designator": null,
"rule_parts": "15C",
"grant_date": "2013-05-17",
"source_url": "https://fccid.io/A4RH2G2-42"
},
{
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"lower_mhz": 2412,
"upper_mhz": 2462,
"power_output": "0.1047",
"power_output_unit": "W",
"emission_designator": null,
"rule_parts": "15C",
"grant_date": "2013-05-17",
"source_url": "https://fccid.io/A4RH2G2-42"
},
{
"application_id": "f0j7HF8eqysxKMxHa1LE+g==",
"lower_mhz": 2412,
"upper_mhz": 2462,
"power_output": "0.0692",
"power_output_unit": "W",
"emission_designator": null,
"rule_parts": "15C",
"grant_date": "2013-05-17",
"source_url": "https://fccid.io/A4RH2G2-42"
}
],
"frequency_status": "known",
"frequency_coverage": {
"complete": true,
"max_grant_applications": 100,
"max_fallback_rows": 500
},
"next_cursor": null,
"checked_at": "2026-11-03T19:50:00.000Z",
"verification_source": "FCC-sourced records held by FCCID.io",
"cache": "hit",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
}
}Response fields
| JSON field | Meaning |
|---|---|
input | Submitted FCC ID after request input normalization. |
sources | Source evidence for the exact record. |
frequencies | Page of supported grant frequency records. Empty when no rows were found or the page is exhausted. |
frequencies[].application_id | FCC application associated with this frequency range. |
frequencies[].lower_mhz | Lower frequency in MHz. |
frequencies[].upper_mhz | Upper frequency in MHz. |
frequencies[].power_output | Output power as recorded by the source, or null. |
frequencies[].power_output_unit | Source unit for output power when supplied. May be null or omitted. |
frequencies[].emission_designator | FCC emission designator, or null. |
frequencies[].rule_parts | Applicable FCC rule parts recorded for this range, or null. |
frequencies[].grant_date | Date of the underlying historical grant, or null. |
frequencies[].source_url | FCCID.io source for the range. |
frequency_status | known when supported ranges were found for the record, otherwise unknown. |
frequency_coverage | Limits applied to the grant and frequency records examined. |
frequency_coverage.complete | True when the source limits were not exceeded, false when results were truncated, or null when the FCC record was unconfirmed. |
frequency_coverage.max_grant_applications | Maximum number of grant applications considered. |
frequency_coverage.max_fallback_rows | Maximum number of indexed equipment specification rows considered when grant HTML supplies no usable ranges. |
next_cursor | Send this string as cursor to fetch the next page. Null means there is no next page. |
suggestions | Verified FCC records offered as alternatives for an identifier search. An empty array means none of the checked spellings produced a public record. |
suggestions[].fccid | Canonical FCC ID of the suggested record. |
suggestions[].basis | formatting for the same ID with its recorded punctuation, confusable_character for one visually similar character, or adjacent_transposition for two neighboring characters in reverse order. |
suggestions[].url | FCCID.io page for the suggested record. |
See also shared response fields.
GET /brand
Provide brand, grantee_code, or
q. Returns matching grantees and their ten latest distinct
FCC IDs, ordered by filing date. Available on Free and paid plans; one
call uses one query from the same shared monthly allowance as the other
data endpoints.
Example requests
curl 'https://api.fccid.io/brand?brand=Apple' \ -H "Authorization: Bearer $FCCID_API_KEY" curl 'https://api.fccid.io/brand?grantee_code=BCG' \ -H "Authorization: Bearer $FCCID_API_KEY"
Exact organization-name matches are preferred over unrelated names that happen to share a prefix. Results identify the grantee match basis; grantee identity and consumer-brand ownership remain distinct. Up to twenty grantees are considered and truncation is reported.
Example responses
Brand query with a matching FCC grantee · GET /brand?brand=Apple
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000005",
"status": "matches",
"query": "Apple",
"grantees": [
{
"code": "2AN3R",
"name": "Apple Inc.",
"match_basis": "grantee_name",
"url": "https://fccid.io/2AN3R"
},
{
"code": "2AN3S",
"name": "Apple Inc.",
"match_basis": "grantee_name",
"url": "https://fccid.io/2AN3S"
},
{
"code": "2AN3T",
"name": "Apple Inc.",
"match_basis": "grantee_name",
"url": "https://fccid.io/2AN3T"
},
{
"code": "BCG",
"name": "Apple Inc.",
"match_basis": "grantee_name",
"url": "https://fccid.io/BCG"
}
],
"grantees_truncated": false,
"matches": [
{
"fccid": "BCGA3375",
"valid": true,
"applicant": "Apple Inc.",
"manufacturer": null,
"brand": null,
"models": [
"A3375"
],
"product": "Laptop Computer",
"equipment_class": "NII - Unlicensed National Information Infrastructure TX",
"latest_filing_date": "2026-10-28",
"authorization": {
"status": "granted",
"as_of": "2026-10-28",
"evidence": [
{
"application_id": "CWzckFH+s+8buBSoGqj6qA==",
"status": "granted",
"date": "2026-10-28",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/BCGA3375"
},
{
"application_id": "UT3fR6m7LYf2fGm0c9LWOw==",
"status": "granted",
"date": "2026-10-28",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/BCGA3375"
},
{
"application_id": "lk8afS56JGuejwNku3VNag==",
"status": "granted",
"date": "2026-10-28",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/BCGA3375"
},
{
"application_id": "lwfojLaHCPue2MpC805SyA==",
"status": "granted",
"date": "2026-10-28",
"basis": "grant_tcb",
"observed_at": null,
"source_url": "https://fccid.io/BCGA3375"
}
]
},
"match": {
"status": "candidate",
"method": "grantee_record",
"reasons": [
"FCC record filed under a matching grantee."
]
},
"evidence": [
{
"kind": "fcc_application",
"application_id": "ypm8cxwW6PF3UD7a3K2xrw==",
"url": "https://fccid.io/BCGA3375",
"date": "2026-10-28"
}
],
"links": {
"fccid": "https://fccid.io/BCGA3375"
},
"news": [],
"warnings": [],
"grantee_code": "BCG"
}
],
"relationship_note": "Names match the supplied query. Grantee identity and consumer-brand ownership are distinct.",
"checked_at": "2026-11-03T19:50:00.000Z",
"verification_source": "FCC-sourced records held by FCCID.io",
"cache": "miss",
"usage": {
"plan": "free",
"quota": 100,
"used": 12,
"remaining": 88,
"resets_at": "2026-12-01T00:00:00.000Z"
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
},
"license": {
"commercial": true,
"attribution_required": false,
"attribution_url": "https://fccid.io"
}
}Response fields
| JSON field | Meaning |
|---|---|
query | Brand or grantee search term used for the query. |
grantees | Matching FCC grantees considered for the latest filing results. |
grantees[].code | FCC grantee code. |
grantees[].name | Registered grantee name, or null. |
grantees[].match_basis | exact_grantee_code or grantee_name. |
grantees[].url | FCCID.io grantee page. |
grantees_truncated | True when matching grantees exceeded the 20-grantee limit. |
matches | Latest FCC ID candidates from the matching grantees. At most 10. |
relationship_note | Explains the scope of the grantee relationship. |
See also shared response fields.
GET /status.json
Public, no key or quota required. For a browser view, see the system status page. The JSON endpoint shows bounded health checks for the FCCID.io database, OpenSearch document search, and the active Barcode.report/EAN database. Available filing and sample observation dates provide freshness context; they do not measure complete source coverage.
Example request
curl https://api.fccid.io/status.json
Example responses
All services operational · GET /status.json
{
"api_version": "1",
"status": "operational",
"checked_at": "2026-11-03T19:48:52.604Z",
"services": {
"fccid_records": {
"name": "FCCID.io database",
"status": "operational",
"latest_filing_date": "2026-11-03"
},
"fccid_documents": {
"name": "FCC document search in OpenSearch",
"status": "operational"
},
"barcode_ean": {
"name": "Barcode.report active product and EAN reader",
"status": "operational",
"check": "Fresh product-reader request",
"sample_observed_at": "2026-09-16 21:01:09"
}
}
}Document search unavailable · GET /status.json
{
"api_version": "1",
"status": "degraded",
"checked_at": "2026-11-03T19:48:52.604Z",
"services": {
"fccid_records": {
"name": "FCCID.io database",
"status": "operational",
"latest_filing_date": "2026-11-03"
},
"fccid_documents": {
"name": "FCC document search in OpenSearch",
"status": "unavailable"
},
"barcode_ean": {
"name": "Barcode.report active product and EAN reader",
"status": "operational",
"check": "Fresh product-reader request",
"sample_observed_at": "2026-09-16 21:01:09"
}
}
}Response fields
| JSON field | Meaning |
|---|---|
api_version | Response contract version. Currently 1. |
status | operational when all probes pass or degraded when one or more services are unavailable. Both results use HTTP 200. |
checked_at | UTC timestamp when the component probes were assembled. The endpoint may return a response cached for 30 seconds. |
services | Component results keyed by fccid_records, fccid_documents and barcode_ean. |
services.fccid_records | Backing FCC record database. |
services.fccid_documents | FCC document search service. |
services.barcode_ean | Barcode.report product and barcode reader. |
services.*.name | Human-readable component name when available. |
services.*.status | operational or unavailable for this component. |
services.fccid_records.latest_filing_date | Latest final-action date observed in the backing FCC database, or null. |
services.barcode_ean.check | Type of probe used for the barcode service when successful. |
services.barcode_ean.sample_observed_at | When the sample barcode data was observed by its source, or null. |
Shared response fields
The response examples above use sample usage counters and representative list entries. Fields may be omitted when they do not apply. A null value marks information that was unavailable or unconfirmed. Paths with [] describe each item in an array.
Shared response, usage and rate-limit fields
| JSON field | Meaning |
|---|---|
api_version | Response contract version. Currently 1. |
request_id | Unique ID for this request. Include it when asking for support. |
status | Outcome of the query. matches means candidates were returned, confirmed means an exact record was found, not_found means no matching record was confirmed, and invalid_syntax means the supplied FCC ID is malformed. |
checked_at | UTC time the API assembled and checked the response against its covered data. |
verification_source | Description of the FCC data used for the check. Absent when input syntax fails. |
cache | hit or miss for the shared data cache. Publication rules are checked on either path. |
example | True on anonymous playground responses, which omit account usage, rate limit and license. |
usage | Monthly usage for the calling account after the request is processed. |
usage.plan | Plan code. free, starter, business, scale, or enterprise. |
usage.quota | Total query allowance for the current billing period. |
usage.used | Completed queries charged in that period. |
usage.remaining | Available queries after completed usage and any in-flight reservations. |
usage.resets_at | ISO 8601 timestamp for the next quota reset. |
rate_limit | Account allowance in the current UTC minute. Shared across keys and data endpoints. |
rate_limit.limit | Maximum requests allowed in the minute. |
rate_limit.remaining | Requests still available in the minute. |
rate_limit.resets_at | ISO 8601 timestamp for the next minute boundary. |
rate_limit.window_seconds | Length of the rate window in seconds. Currently 60. |
license | Usage rights for the calling account. |
license.commercial | Whether commercial use is allowed. |
license.attribution_required | Whether visible attribution is mandatory. Currently false. |
license.attribution_url | FCCID.io link to use for optional attribution. |
FCC record and match fields
| JSON field | Meaning |
|---|---|
fccid | Canonical FCC identifier recorded by FCCID.io. |
valid | true confirms an FCC-sourced record, false indicates malformed syntax, and null means a plausible identifier was unconfirmed. For candidates, true refers to the record itself. |
applicant | Name of the FCC applicant, or null if unavailable. |
manufacturer | Identified manufacturer, or null if unavailable. |
brand | Identified consumer brand, or null if unavailable. |
models | Model names recorded in the covered applications. |
product | Equipment description, or null if unavailable. |
equipment_class | FCC equipment class code, or null if unavailable. |
latest_filing_date | Latest final-action date found in the covered records, or null. |
grantee_code | Grantee associated with this candidate. Present on brand results. |
match | How this FCC record was selected. |
match.status | identifier_match for an exact identifier match or candidate for a search result that needs review. |
match.method | Selection method. exact_fccid, exact_ean_record, barcode_record, applicant_model, document_text, character_variant, or grantee_record. |
match.reasons | Human-readable explanations for the selection. |
links | Relevant links for the record. |
links.fccid | FCCID.io record page. |
links.barcode | Barcode.report link when supporting barcode clues were used. |
evidence | Source records supporting the match. Fields vary by source kind. |
news | Published articles linked to the FCC ID. An empty array means none were found in covered sources. |
warnings | Linked warnings, recalls or enforcement items in covered sources. An empty array means none were found there. |
authorization | Historical FCC decision evidence. See the authorization fields below. |
Source evidence item fields
| JSON field | Meaning |
|---|---|
kind | Source type. fcc_application, fcc_document, fcc_ean_association, ean_product_clue, or ean_fccid_reference. |
application_id | FCC application that the evidence concerns, when available. |
document_id | FCC exhibit ID for document evidence. |
barcode_id | FCCID.io identifier for the direct barcode record. |
fccid | FCC identifier attached to the direct association. |
gtin14 | 14-digit barcode attached to the evidence. |
sha256 | SHA-256 digest of the supporting exhibit file. |
title | Exhibit title or description, or null. |
date | Source application final-action date, or null. |
url | Link to the FCCID.io application or exhibit. |
source_url | Link to the source of the barcode or product clue. |
observed_at | Source observation timestamp, or null when unavailable. Formatting can follow the source. |
reference | Opaque identifier for a published FCC barcode association. |
brand | Brand reported by the product source, or null. |
manufacturer | Manufacturer reported by the product source, or null. |
model | Model reported by the product source. |
News and warning item fields
| JSON field | Meaning |
|---|---|
article_id | FCCID.io article identifier. |
title | Headline, or null if unavailable. |
date | Publication date, when available. |
url | FCCID.io article link. |
source_url | Original publication link. |
kind | Published content type. Warnings can include warning, recall or enforcement. |
association | Relationship used to attach the article to a record. |
association.basis | Basis for the link, such as exact_fccid. |
association.fccid | FCC identifier to which the article is linked. |
Errors, quotas, and freshness
Successful calls, including cache hits and no-match results, use one query. Malformed FCC ID checks, rejected requests, and service failures use none. A query counts only after the required data sources and publication checks complete. Failed attempts can still count toward the per-minute rate limit. All four data endpoints are included on every plan. Free has one shared allowance of 100 queries per UTC calendar month across /lookup, /validate, /frequency, and /brand, with a limit of 10 requests per minute. All keys share that allowance. Calls stop at the hard monthly limit until the reset or an upgrade. There are no automatic overage charges.
| HTTP status | Action |
|---|---|
| 400 / 415 | Correct the input or content type. |
| 401 | Supply a valid, active API key. |
| 403 | Activate Development / Free or a paid subscription. |
| 410 | The record is withdrawn from public access. |
| 429 | Wait for the rate/quota reset or upgrade. Observe Retry-After. |
| 503 | Verification or a data source is unavailable. Retry with backoff. |
Rate limits apply to the whole account across all keys and all four data endpoints, in fixed UTC-minute windows.
| Plan | Requests per minute |
|---|---|
| Development / Free | 10 |
| Starter | 60 |
| Business | 120 |
| Scale | 300 |
| Enterprise | Agreed |
Authenticated data responses and rate/quota rejections include
rate_limit with limit, remaining,
resets_at (ISO 8601), and window_seconds: 60.
Headers X-RateLimit-Limit,
X-RateLimit-Remaining, and
X-RateLimit-Reset (Unix seconds) report the same minute
allowance. A rejected burst returns HTTP 429
rate_limit with Retry-After in seconds.
Monthly quota rejection uses quota_exceeded. Successful
responses also include usage,
X-Quota-Remaining, and X-Quota-Reset. Free
quota resets at the next UTC calendar month; paid quotas follow verified
billing periods.
checked_at is when the API checked its covered records, not
a live FCC website verification. Sources retain available dates. News
and warnings include supported associations only; an empty list means
none were found in the covered sources. Service outages are reported
separately.
Example error responses
unknown_parameter · HTTP 400
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "unknown_parameter",
"message": "Unknown parameter: unsupported"
}
}api_key_required · HTTP 401
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "api_key_required",
"message": "Use Authorization: Bearer YOUR_API_KEY."
}
}license_required · HTTP 403
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "license_required",
"message": "Activate Development / Free or renew your subscription."
}
}record_withdrawn · HTTP 410
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "record_withdrawn",
"message": "This record is withdrawn from public access."
}
}rate_limit · HTTP 429
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "rate_limit",
"message": "Request rate exceeded."
},
"rate_limit": {
"limit": 10,
"remaining": 0,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
}
}quota_exceeded · HTTP 429
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "quota_exceeded",
"message": "Monthly quota reached. Upgrade or wait for the reset."
},
"rate_limit": {
"limit": 10,
"remaining": 9,
"resets_at": "2026-11-03T19:51:00.000Z",
"window_seconds": 60
}
}data_unavailable · HTTP 503
{
"api_version": "1",
"request_id": "00000000-0000-4000-8000-000000000006",
"error": {
"code": "data_unavailable",
"message": "FCC data is temporarily unavailable."
}
}Response fields
| JSON field | Meaning |
|---|---|
api_version | Response contract version. |
request_id | Unique request identifier for support and diagnostics. |
error | Error details. Use the HTTP status and error.code to decide what to do. |
error.code | Machine-readable failure code. rate_limit is a minute limit, quota_exceeded is a monthly limit, and data_unavailable indicates the backing source could not complete the request. |
error.message | Human-readable message. Use error.code for application logic. |
rate_limit | Minute allowance snapshot when available. See the shared response fields. |
See also shared response fields.