All data endpoints start with /v19. They need an API key, except /v19/export, which also answers without a key on the anonymous plan (per IP). Which endpoints a key may use depends on its plan: see plans. Field meanings are in the data dictionary.
| Endpoint | Purpose |
|---|---|
GET /v19/nsn/{nsn} |
One NSN record |
GET /v19/search?q= |
Search NSNs by item name, NSN or part number |
GET /v19/parts?partNumber= |
NSNs that list a manufacturer part number |
GET /v19/cage/{code} |
One company by CAGE code |
GET /v19/cage?q= |
Search companies by name |
GET /v19/fsc/{code} |
One Federal Supply Class |
GET /v19/inc/{code} |
One Item Name Code |
GET /v19/export/{nsn}, POST /v19/export/batch |
Export screening from DEMIL / DEMILI (no key needed for one NSN) |
GET /v19/weight-dims/{nsn}, POST /v19/weight-dims/batch |
Weight and dimensions, lb/in with kg/mm (Developer plan and above) |
GET /v19/trade-codes/{nsn}, POST /v19/trade-codes/batch |
Schedule B and HTS codes (Developer and above) |
GET /v19/repairable/{nsn}, POST /v19/repairable/batch |
Repairability from the Air Force ERRC (Developer and above) |
GET /v19/photos/{nsn}, POST /v19/photos/batch |
Photos taken by NSN Lookup (Developer and above) |
Public endpoints (no key): GET /health, GET /health/ready, GET /versions, GET /docs, GET /llms.txt, GET /.well-known/mcp.json.
Returns the identification data for one NSN.
| Parameter | In | Required | Description |
|---|---|---|---|
nsn |
path | yes | 13-character NSN with or without dashes, or a 9-character NIIN |
include |
query | no | Comma-separated sections to add. Default references. Use all for everything, none for identification only |
Sections for include:
| Section | FLIS segment | Contents |
|---|---|---|
references |
C | Manufacturer part numbers and CAGE codes |
management |
H | Per-service management data: unit price, unit of issue, source of supply, AAC |
moeRules |
B | Which services and agencies use and manage the item |
standardization |
E | Item standardization decisions and replacement NSNs |
cancellations |
K | Cancelled or replaced NIINs |
freight |
G | Freight classification (NMFC, UFC, handling) |
characteristics |
M | Decoded item characteristics (material, dimensions, and so on) |
packaging |
W | Packaging requirements |
Responses: 200 with an NSN record, 400 invalid_nsn, 400 invalid_include, 404 not_found.
Ask only for the sections you need. Smaller requests are faster.
| Parameter | Required | Description |
|---|---|---|
q |
yes | 2 to 200 characters. Item name words (every word must match), an NSN or NIIN, or an exact part number |
fsc |
no | 4-digit Federal Supply Class to limit results |
page |
no | Page number, starting at 1. Default 1 |
pageSize |
no | 1 to 25. Default 10 |
Returns a page of NSN summaries. Wildcards and fuzzy matching are not supported. Only the first 100 results of a search can be paged through. Each search (and each /v19/parts call) uses one of your plan's daily searches; search results do not count against the daily NSN limit.
| Parameter | Required | Description |
|---|---|---|
partNumber |
yes | Manufacturer part number, up to 64 characters. Dashes, slashes, spaces and letter case are ignored when matching |
cage |
no | 5-character CAGE code to limit to one manufacturer |
page, pageSize |
no | As for search |
Returns a page of part matches: the NSN summary plus the reference rows that matched.
The part number is a query parameter because part numbers often contain /. URL-encode it: MS35338/44 becomes partNumber=MS35338%2F44.
Returns one company. 400 invalid_cage if the code is not 5 letters or digits, 404 not_found if unknown.
| Parameter | Required | Description |
|---|---|---|
q |
yes | Company name, or the start of it. 2 to 200 characters |
page, pageSize |
no | As for search |
Returns one FSC. The code is 4 digits.
Returns one INC. The code is 5 characters.
{section} is export, weight-dims, trade-codes, repairable or photos.
GET /v19/{section}/{nsn} returns one section item: the NSN, its links and dataAsOf, and the section. 404 not_found if the NSN is unknown.POST /v19/{section}/batch with body {"nsns": ["5305-00-123-4567", "015554232"]} returns items, notFound, invalid and meta. Duplicates are answered once. Batch sizes: anonymous 1, Free 5, Developer 25, Business 100, Enterprise 250.Fields NSN Lookup does not hold are left out and named in the section's notHeld list. Export screening is a screening aid, not a license determination.
| Header | Meaning |
|---|---|
X-Api-Version |
The version that answered, for example 19 |
Cache-Control: private, no-store |
Responses are specific to your key. Do not store them in shared caches |
Retry-After |
On 429 and 503: seconds to wait |
Deprecation, Sunset |
Only on versions that are being retired. See Versioning |