The GraphQL types behind FCC ID inference, validation, and lookup.
For how to use these operations, see FCC ID. Fields are listed alphabetically. Decimal, DateTime, CountryCode, CurrencyCode, and Mode are standard Zonos scalars and enums.
Coming soon: The FCC ID API is not yet available. The types on this page describe the API as it will launch.
typeMutation{"Identify the FCC equipment authorizations that cover each product, up to 25 products per call."
fccEquipmentAuthorizationsInfer("Products to identify; results are returned in the same order."input:[FccEquipmentAuthorizationInferInput!]!):[FccEquipmentAuthorizationInference!]!"Check whether a supplied FCC ID is valid and covers each product, up to 25 products per call."
fccEquipmentAuthorizationsValidate("Products and FCC IDs to check; results are returned in the same order."input:[FccEquipmentAuthorizationValidateInput!]!):[FccEquipmentAuthorizationValidation!]!}typeQuery{"Look up one FCC equipment authorization by FCC ID; null when the FCC has no record of it."
fccEquipmentAuthorization("The FCC ID to look up, e.g. \"BCGA2270\"."id: ID!): FccEquipmentAuthorization
}
The product details you send to inference and validation.
Inputs
GraphQL
"A product to identify FCC equipment authorizations for."input FccEquipmentAuthorizationInferInput {"Selling price of the product."amount: Decimal
"Brand the product is sold under."brand: String
"Category hierarchy, most general first, e.g. [\"Electronics\", \"Tablets\"]."categories:[String!]"Currency of `amount`."currencyCode: CurrencyCode
"Full product description, with item specifics as newline-separated `Key: Value` lines."description: String
"GTIN (UPC, EAN, JAN, or ISBN) of the product."globalTradeItemNumber: String
"URL of a product image."imageUrl: String
"Manufacturer's model or part number, e.g. \"A2270\"; considerably improves results when known."manufacturerProductId: String
"Primary material of the product."material: String
"Product name or listing title."name: String!"Your identifier for the product, echoed back unchanged."productId: String
"Country the product ships from."shipFromCountry: CountryCode
}"A product and the FCC ID to check against it."input FccEquipmentAuthorizationValidateInput {"Selling price of the product."amount: Decimal
"Brand the product is sold under."brand: String
"Category hierarchy, most general first, e.g. [\"Electronics\", \"Tablets\"]."categories:[String!]"Currency of `amount`."currencyCode: CurrencyCode
"Full product description, with item specifics as newline-separated `Key: Value` lines."description: String
"FCC ID to check, e.g. \"BCGA2270\"; case, spaces, hyphens, and a leading \"FCC ID:\" label are ignored."fccId: String!"GTIN (UPC, EAN, JAN, or ISBN) of the product."globalTradeItemNumber: String
"URL of a product image."imageUrl: String
"Manufacturer's model or part number, e.g. \"A2270\"; considerably improves results when known."manufacturerProductId: String
"Primary material of the product."material: String
"Product name or listing title."name: String!"Your identifier for the product, echoed back unchanged."productId: String
"Country the product ships from."shipFromCountry: CountryCode
}
Returned by fccEquipmentAuthorizationsInfer, one result per input, in input order.
Inference
GraphQL
"The FCC equipment authorizations identified for one product."type FccEquipmentAuthorizationInference {"Close but unchosen authorizations for review, most likely first; empty for NOT_REGULATED and INSUFFICIENT_INFORMATION."alternates:[FccEquipmentAuthorizationAlternate!]!"Echo of the input `amount`."amount: Decimal
"Echo of the input `brand`."brand: String
"Echo of the input `categories`; empty when none were sent."categories:[String!]!"Probability (0.0–1.0) that `status`, and any returned authorizations, are correct."confidenceScore: Decimal!"When this result was created."createdAt: DateTime!"Who created this result."createdBy: ID!"Echo of the input `currencyCode`."currencyCode: CurrencyCode
"Echo of the input `description`."description: String
"Authorizations that cover the product: one for MATCHED, one or more for COMPONENTS_MATCHED, otherwise empty."equipmentAuthorizations:[FccEquipmentAuthorization!]!"Echo of the input `globalTradeItemNumber`."globalTradeItemNumber: String
"Unique identifier of this result."id: ID!"Echo of the input `imageUrl`."imageUrl: String
"Echo of the input `manufacturerProductId`."manufacturerProductId: String
"Echo of the input `material`."material: String
"Whether the request ran in live or test mode."mode: Mode!"Echo of the input `name`."name: String!"Organization that requested this result."organization: ID!"Probability (0.0–1.0) that the product requires FCC equipment authorization at all."probabilityOfRegulation: Decimal!"Echo of the input `productId`."productId: String
"Echo of the input `shipFromCountry`."shipFromCountry: CountryCode
"Which case applies to the product; branch on this field."status: FccEquipmentAuthorizationInferenceStatus!"When this result was last updated."updatedAt: DateTime!"Who last updated this result."updatedBy: ID!}"Which case applies to a product; advisory, so you decide the consequence of each value."enum FccEquipmentAuthorizationInferenceStatus {"One FCC equipment authorization covers the product."
MATCHED
"The product has no authorization of its own; the authorizations of its built-in radio modules are returned."
COMPONENTS_MATCHED
"The product does not require FCC equipment authorization, e.g. a hand tool or a passive cable."
NOT_REGULATED
"The product likely requires authorization, but the details given don't identify a specific product."
INSUFFICIENT_INFORMATION
"The product likely requires authorization, but none could be identified with confidence; not a finding that none exists."
NO_MATCH
}"A close, but not chosen, FCC equipment authorization."type FccEquipmentAuthorizationAlternate {"The candidate authorization."equipmentAuthorization: FccEquipmentAuthorization!"Probability (0.0–1.0) that this authorization covers the product."probabilityMass: Decimal!}
Returned by fccEquipmentAuthorizationsValidate, one result per input, in input order.
Validation
GraphQL
"Whether a supplied FCC ID is valid and covers one product."type FccEquipmentAuthorizationValidation {"Echo of the input `amount`."amount: Decimal
"Echo of the input `brand`."brand: String
"Echo of the input `categories`; empty when none were sent."categories:[String!]!"When this result was created."createdAt: DateTime!"Who created this result."createdBy: ID!"Echo of the input `currencyCode`."currencyCode: CurrencyCode
"Echo of the input `description`."description: String
"The authorization `fccId` refers to; null unless `fccIdStatus` is ON_RECORD."equipmentAuthorization: FccEquipmentAuthorization
"Echo of the input `fccId`, exactly as supplied."fccId: String!"Whether `fccId` is well-formed, from a registered grantee, and on record with the FCC."fccIdStatus: FccIdStatus!"Echo of the input `globalTradeItemNumber`."globalTradeItemNumber: String
"Company registered under the FCC ID's grantee code; null when MALFORMED or UNKNOWN_GRANTEE."grantee: FccGrantee
"Unique identifier of this result."id: ID!"Echo of the input `imageUrl`."imageUrl: String
"Echo of the input `manufacturerProductId`."manufacturerProductId: String
"Echo of the input `material`."material: String
"Whether the request ran in live or test mode."mode: Mode!"Echo of the input `name`."name: String!"Organization that requested this result."organization: ID!"Probability (0.0–1.0) that `fccId` covers the product, directly or as a built-in radio module; 0 unless ON_RECORD."probabilityOfMatch: Decimal!"Echo of the input `productId`."productId: String
"How the authorized device relates to the product."relationship: FccEquipmentAuthorizationRelationship!"Echo of the input `shipFromCountry`."shipFromCountry: CountryCode
"Likelier authorizations, most likely first; populated for negative verdicts and for FCC IDs not on record."suggestions:[FccEquipmentAuthorizationAlternate!]!"When this result was last updated."updatedAt: DateTime!"Who last updated this result."updatedBy: ID!"How strongly the evidence supports `fccId` covering the product; branch on this field."verdict: FccEquipmentAuthorizationValidationVerdict!}"How strongly the evidence supports a supplied FCC ID covering a product; advisory."enum FccEquipmentAuthorizationValidationVerdict {"The FCC ID covers the product; safe to accept without review."
DEFINITELY_SAME
"The FCC ID probably covers the product; accept, or review if your tolerance for error is low."
LIKELY_SAME
"The FCC ID probably does not cover the product; review it and check `suggestions`."
UNLIKELY_SAME
"The FCC ID does not cover the product; safe to reject."
DEFINITELY_NOT_SAME
"No verdict: the FCC ID is not ON_RECORD, or the product details don't identify a specific product."
INDETERMINATE
}"How the device named in an FCC authorization relates to a product."enum FccEquipmentAuthorizationRelationship {"The authorization is for this product."
SAME_PRODUCT
"The authorization is for a radio module built into this product."
COMPONENT_OF_PRODUCT
"The authorization is for another model, size, or variant in the same product family."
RELATED_PRODUCT
"The authorization is for an unrelated product."
DIFFERENT_PRODUCT
"The relationship could not be determined."
UNKNOWN
}"Whether an FCC ID is valid; checks run in order and the first failure is returned."enum FccIdStatus {"The FCC has an equipment authorization with this ID."
ON_RECORD
"The grantee code is registered, but the grantee holds no authorization with this product code."
NOT_ON_RECORD
"The ID is well-formed, but no company is registered with the FCC under its grantee code."
UNKNOWN_GRANTEE
"Not shaped like an FCC ID (3- or 5-character grantee code plus product code), or a placeholder such as \"N/A\"."
MALFORMED
}
"An FCC equipment authorization (grant), as recorded by the FCC."type FccEquipmentAuthorization {"Whether the grantee is on the FCC Covered List."coveredList: FccCoveredListStatus!"FCC equipment class, e.g. \"Part 15 Spread Spectrum Transmitter\"."equipmentClass: String
"Date the authorization was granted."grantDate: DateTime
"Company the authorization was granted to."grantee: FccGrantee!"The FCC ID: grantee code followed by product code, e.g. \"BCGA2270\"."id: ID!"Model number the grantee filed, e.g. \"A2270\"."model: String
"Product code: the part of the FCC ID after the grantee code."productCode: String!"The grantee's description of the device as filed, e.g. \"Apple iPad\"."productDescription: String
"Kind of radio when the authorization is for a built-in module; null otherwise."radioType: FccRadioType
"Name the product is sold under at retail, e.g. \"iPad (8th generation) (Wi-Fi)\"; often null for modules."retailName: String
"47 CFR rule parts the authorization was granted under, e.g. [\"15C\", \"15E\"]."ruleParts:[String!]!}"A company holding FCC equipment authorizations."type FccGrantee {"FCC grantee code: the first 3 or 5 characters of its FCC IDs."code: String!"Country the grantee is registered in."country: CountryCode
"Registered name of the grantee."name: String
}"Kind of radio module."enum FccRadioType {"Wi-Fi and/or Bluetooth."
WIFI_BLUETOOTH
"Cellular, e.g. LTE or 5G."
CELLULAR
"Near-field communication."
NFC
"Any other radio, e.g. ultra-wideband or RFID."
OTHER
}"Whether a grantee is on the FCC Covered List of equipment deemed a U.S. national security risk."type FccCoveredListStatus {"The Covered List entry that applies; null when `covered` is false."basis: String
"True when the grantee is on the FCC Covered List."covered: Boolean!}
FCC ID schema
FCC ID schema
The GraphQL types behind FCC ID inference, validation, and lookup.
For how to use these operations, see FCC ID. Fields are listed alphabetically.
Decimal,DateTime,CountryCode,CurrencyCode, andModeare standard Zonos scalars and enums.Operations
Two batch mutations and one lookup query.
Operations
GraphQL
type Mutation { "Identify the FCC equipment authorizations that cover each product, up to 25 products per call." fccEquipmentAuthorizationsInfer( "Products to identify; results are returned in the same order." input: [FccEquipmentAuthorizationInferInput!]! ): [FccEquipmentAuthorizationInference!]! "Check whether a supplied FCC ID is valid and covers each product, up to 25 products per call." fccEquipmentAuthorizationsValidate( "Products and FCC IDs to check; results are returned in the same order." input: [FccEquipmentAuthorizationValidateInput!]! ): [FccEquipmentAuthorizationValidation!]! } type Query { "Look up one FCC equipment authorization by FCC ID; null when the FCC has no record of it." fccEquipmentAuthorization( "The FCC ID to look up, e.g. \"BCGA2270\"." id: ID! ): FccEquipmentAuthorization }Inputs
The product details you send to inference and validation.
Inputs
GraphQL
"A product to identify FCC equipment authorizations for." input FccEquipmentAuthorizationInferInput { "Selling price of the product." amount: Decimal "Brand the product is sold under." brand: String "Category hierarchy, most general first, e.g. [\"Electronics\", \"Tablets\"]." categories: [String!] "Currency of `amount`." currencyCode: CurrencyCode "Full product description, with item specifics as newline-separated `Key: Value` lines." description: String "GTIN (UPC, EAN, JAN, or ISBN) of the product." globalTradeItemNumber: String "URL of a product image." imageUrl: String "Manufacturer's model or part number, e.g. \"A2270\"; considerably improves results when known." manufacturerProductId: String "Primary material of the product." material: String "Product name or listing title." name: String! "Your identifier for the product, echoed back unchanged." productId: String "Country the product ships from." shipFromCountry: CountryCode } "A product and the FCC ID to check against it." input FccEquipmentAuthorizationValidateInput { "Selling price of the product." amount: Decimal "Brand the product is sold under." brand: String "Category hierarchy, most general first, e.g. [\"Electronics\", \"Tablets\"]." categories: [String!] "Currency of `amount`." currencyCode: CurrencyCode "Full product description, with item specifics as newline-separated `Key: Value` lines." description: String "FCC ID to check, e.g. \"BCGA2270\"; case, spaces, hyphens, and a leading \"FCC ID:\" label are ignored." fccId: String! "GTIN (UPC, EAN, JAN, or ISBN) of the product." globalTradeItemNumber: String "URL of a product image." imageUrl: String "Manufacturer's model or part number, e.g. \"A2270\"; considerably improves results when known." manufacturerProductId: String "Primary material of the product." material: String "Product name or listing title." name: String! "Your identifier for the product, echoed back unchanged." productId: String "Country the product ships from." shipFromCountry: CountryCode }Inference
Returned by
fccEquipmentAuthorizationsInfer, one result per input, in input order.Inference
GraphQL
"The FCC equipment authorizations identified for one product." type FccEquipmentAuthorizationInference { "Close but unchosen authorizations for review, most likely first; empty for NOT_REGULATED and INSUFFICIENT_INFORMATION." alternates: [FccEquipmentAuthorizationAlternate!]! "Echo of the input `amount`." amount: Decimal "Echo of the input `brand`." brand: String "Echo of the input `categories`; empty when none were sent." categories: [String!]! "Probability (0.0–1.0) that `status`, and any returned authorizations, are correct." confidenceScore: Decimal! "When this result was created." createdAt: DateTime! "Who created this result." createdBy: ID! "Echo of the input `currencyCode`." currencyCode: CurrencyCode "Echo of the input `description`." description: String "Authorizations that cover the product: one for MATCHED, one or more for COMPONENTS_MATCHED, otherwise empty." equipmentAuthorizations: [FccEquipmentAuthorization!]! "Echo of the input `globalTradeItemNumber`." globalTradeItemNumber: String "Unique identifier of this result." id: ID! "Echo of the input `imageUrl`." imageUrl: String "Echo of the input `manufacturerProductId`." manufacturerProductId: String "Echo of the input `material`." material: String "Whether the request ran in live or test mode." mode: Mode! "Echo of the input `name`." name: String! "Organization that requested this result." organization: ID! "Probability (0.0–1.0) that the product requires FCC equipment authorization at all." probabilityOfRegulation: Decimal! "Echo of the input `productId`." productId: String "Echo of the input `shipFromCountry`." shipFromCountry: CountryCode "Which case applies to the product; branch on this field." status: FccEquipmentAuthorizationInferenceStatus! "When this result was last updated." updatedAt: DateTime! "Who last updated this result." updatedBy: ID! } "Which case applies to a product; advisory, so you decide the consequence of each value." enum FccEquipmentAuthorizationInferenceStatus { "One FCC equipment authorization covers the product." MATCHED "The product has no authorization of its own; the authorizations of its built-in radio modules are returned." COMPONENTS_MATCHED "The product does not require FCC equipment authorization, e.g. a hand tool or a passive cable." NOT_REGULATED "The product likely requires authorization, but the details given don't identify a specific product." INSUFFICIENT_INFORMATION "The product likely requires authorization, but none could be identified with confidence; not a finding that none exists." NO_MATCH } "A close, but not chosen, FCC equipment authorization." type FccEquipmentAuthorizationAlternate { "The candidate authorization." equipmentAuthorization: FccEquipmentAuthorization! "Probability (0.0–1.0) that this authorization covers the product." probabilityMass: Decimal! }Validation
Returned by
fccEquipmentAuthorizationsValidate, one result per input, in input order.Validation
GraphQL
"Whether a supplied FCC ID is valid and covers one product." type FccEquipmentAuthorizationValidation { "Echo of the input `amount`." amount: Decimal "Echo of the input `brand`." brand: String "Echo of the input `categories`; empty when none were sent." categories: [String!]! "When this result was created." createdAt: DateTime! "Who created this result." createdBy: ID! "Echo of the input `currencyCode`." currencyCode: CurrencyCode "Echo of the input `description`." description: String "The authorization `fccId` refers to; null unless `fccIdStatus` is ON_RECORD." equipmentAuthorization: FccEquipmentAuthorization "Echo of the input `fccId`, exactly as supplied." fccId: String! "Whether `fccId` is well-formed, from a registered grantee, and on record with the FCC." fccIdStatus: FccIdStatus! "Echo of the input `globalTradeItemNumber`." globalTradeItemNumber: String "Company registered under the FCC ID's grantee code; null when MALFORMED or UNKNOWN_GRANTEE." grantee: FccGrantee "Unique identifier of this result." id: ID! "Echo of the input `imageUrl`." imageUrl: String "Echo of the input `manufacturerProductId`." manufacturerProductId: String "Echo of the input `material`." material: String "Whether the request ran in live or test mode." mode: Mode! "Echo of the input `name`." name: String! "Organization that requested this result." organization: ID! "Probability (0.0–1.0) that `fccId` covers the product, directly or as a built-in radio module; 0 unless ON_RECORD." probabilityOfMatch: Decimal! "Echo of the input `productId`." productId: String "How the authorized device relates to the product." relationship: FccEquipmentAuthorizationRelationship! "Echo of the input `shipFromCountry`." shipFromCountry: CountryCode "Likelier authorizations, most likely first; populated for negative verdicts and for FCC IDs not on record." suggestions: [FccEquipmentAuthorizationAlternate!]! "When this result was last updated." updatedAt: DateTime! "Who last updated this result." updatedBy: ID! "How strongly the evidence supports `fccId` covering the product; branch on this field." verdict: FccEquipmentAuthorizationValidationVerdict! } "How strongly the evidence supports a supplied FCC ID covering a product; advisory." enum FccEquipmentAuthorizationValidationVerdict { "The FCC ID covers the product; safe to accept without review." DEFINITELY_SAME "The FCC ID probably covers the product; accept, or review if your tolerance for error is low." LIKELY_SAME "The FCC ID probably does not cover the product; review it and check `suggestions`." UNLIKELY_SAME "The FCC ID does not cover the product; safe to reject." DEFINITELY_NOT_SAME "No verdict: the FCC ID is not ON_RECORD, or the product details don't identify a specific product." INDETERMINATE } "How the device named in an FCC authorization relates to a product." enum FccEquipmentAuthorizationRelationship { "The authorization is for this product." SAME_PRODUCT "The authorization is for a radio module built into this product." COMPONENT_OF_PRODUCT "The authorization is for another model, size, or variant in the same product family." RELATED_PRODUCT "The authorization is for an unrelated product." DIFFERENT_PRODUCT "The relationship could not be determined." UNKNOWN } "Whether an FCC ID is valid; checks run in order and the first failure is returned." enum FccIdStatus { "The FCC has an equipment authorization with this ID." ON_RECORD "The grantee code is registered, but the grantee holds no authorization with this product code." NOT_ON_RECORD "The ID is well-formed, but no company is registered with the FCC under its grantee code." UNKNOWN_GRANTEE "Not shaped like an FCC ID (3- or 5-character grantee code plus product code), or a placeholder such as \"N/A\"." MALFORMED }Equipment authorizations
Shared by inference, validation, and lookup.
Equipment authorizations
GraphQL
"An FCC equipment authorization (grant), as recorded by the FCC." type FccEquipmentAuthorization { "Whether the grantee is on the FCC Covered List." coveredList: FccCoveredListStatus! "FCC equipment class, e.g. \"Part 15 Spread Spectrum Transmitter\"." equipmentClass: String "Date the authorization was granted." grantDate: DateTime "Company the authorization was granted to." grantee: FccGrantee! "The FCC ID: grantee code followed by product code, e.g. \"BCGA2270\"." id: ID! "Model number the grantee filed, e.g. \"A2270\"." model: String "Product code: the part of the FCC ID after the grantee code." productCode: String! "The grantee's description of the device as filed, e.g. \"Apple iPad\"." productDescription: String "Kind of radio when the authorization is for a built-in module; null otherwise." radioType: FccRadioType "Name the product is sold under at retail, e.g. \"iPad (8th generation) (Wi-Fi)\"; often null for modules." retailName: String "47 CFR rule parts the authorization was granted under, e.g. [\"15C\", \"15E\"]." ruleParts: [String!]! } "A company holding FCC equipment authorizations." type FccGrantee { "FCC grantee code: the first 3 or 5 characters of its FCC IDs." code: String! "Country the grantee is registered in." country: CountryCode "Registered name of the grantee." name: String } "Kind of radio module." enum FccRadioType { "Wi-Fi and/or Bluetooth." WIFI_BLUETOOTH "Cellular, e.g. LTE or 5G." CELLULAR "Near-field communication." NFC "Any other radio, e.g. ultra-wideband or RFID." OTHER } "Whether a grantee is on the FCC Covered List of equipment deemed a U.S. national security risk." type FccCoveredListStatus { "The Covered List entry that applies; null when `covered` is false." basis: String "True when the grantee is on the FCC Covered List." covered: Boolean! }Was this page helpful?