Skip to content
Seismic Orchestration

GET /industries

The NAICS industry catalog: every code accepted by the KYB business.industry field, each with its official Census title. Fetch it once and drive your industry picker from it. A KYB submission whose industry is outside this list is rejected as incomplete.

Unauthenticated. No Api-Key or Authorization header required.

Browsing rather than integrating? Industry codes lists all 311 accepted codes grouped by sector, for picking one by hand.

Where industry codes are used

The industry field appears on both KYB surfaces:

The catalog is the subset of six-digit NAICS industries Seismic can verify a business against — 311 codes, not the full Census list. There is no catch-all code: pick the closest listed industry. The set changes only when Seismic widens the industries it supports.

Response 200

A bare array, sorted ascending by code, 311 entries in total (truncated here — the full catalog is browsable):

[
  {
    "code": "111120",
    "title": "Oilseed (except Soybean) Farming"
  },
  {
    "code": "111219",
    "title": "Other Vegetable (except Potato) and Melon Farming"
  },
  {
    "code": "928110",
    "title": "National Security"
  }
]

GET /industries/account-holder

The industries an external bank account's account_holder.industry accepts: those usable as a payout destination on every route. A subset of the catalog above, in the same shape: a bare array sorted ascending by code. Today it lists every code in the catalog.

Bank account creates and holder updates reject any other code with 400 and a not_in_allowed_set violation on the industry field. If this list ever narrows, that includes a code the full catalog still lists. Drive your account holder industry picker from this list.

Unauthenticated. No Api-Key or Authorization header required.

Response 200

[
  {
    "code": "111998",
    "title": "All Other Miscellaneous Crop Farming"
  },
  {
    "code": "513210",
    "title": "Software Publishers"
  },
  {
    "code": "813211",
    "title": "Grantmaking Foundations"
  }
]

GET /industries/mappings

Already have an industry code from a Census table or another system? This endpoint translates it. One request answers both halves of the question:

  • supported — the accepted codes, no titles. If your code is in here, send it as-is.
  • mappings — every other 2022 NAICS code, plus the residential/nonresidential specialty-trade contractor codes (238111, 238112, …) that only Bridge's industry list carries, each paired with the accepted code closest to it.

Unauthenticated. No Api-Key or Authorization header required.

Response 200

{
  "supported": [
    "111120",
    "111219"
  ],
  "mappings": [
    {
      "from": "541511",
      "from_title": "Custom Computer Programming Services",
      "confidence": "high",
      "to": "541512",
      "to_title": "Computer Systems Design Services"
    },
    {
      "from": "999999",
      "from_title": "Nonclassifiable Establishments",
      "confidence": "low"
    }
  ]
}

NaicsIndustryMapping

FieldTypeNotes
fromstringThe unaccepted code.
from_titlestringIts industry title.
confidencestringhigh or low — see below.
tostringClosest accepted code. Absent when nothing in the catalog describes the industry.
to_titlestringTitle of to. Absent whenever to is.

A high mapping is the same kind of business under a neighbouring code in the same four-digit NAICS industry group. A low mapping is a related but materially different industry, chosen by hand because nothing accepted describes the business — a nonresidential contractor pointed at the residential code its group offers, say. Show a low suggestion to a human before applying it: verification is done against the code you send, so an industry that misdescribes the business is worth more than a saved click.

999999 ("Nonclassifiable Establishments") has no to at all. Nothing in the catalog means "unclassifiable", so pick a real industry.

How to use it

Fetch once, then for each code you hold:

  1. In supported? Send it unchanged.
  2. Has a high mapping? Substitute to and carry on.
  3. Has a low mapping? Show to_title to the business and get confirmation before substituting. The suggestion is a materially different industry, and we verify against the code you send.
  4. No mapping, or no to? The business picks from GET /industries. There is nothing to suggest.

Do this while the business is filling in its details, not at submit time — steps 3 and 4 both need someone who can answer for the business, and by submit time that person is gone.

Every code in the 2022 NAICS revision is covered — 303 of the 1,012 six-digit industries are accepted as-is, the other 709 carry a mapping, and 999999 is the only one that reaches step 4. Every code on Bridge's industry list is covered too, so a migration off it never hits step 4. Codes from another vintage may not be listed at all; treat those as step 4 too.

If you use the TypeScript client, api.resolveIndustry implements steps 1, 2 and 4 for you and hands you the low case to confirm — or applies it too, if you ask it to.

Example

curl "$SEISMIC_ORCHESTRATION_URL/v0/industries/mappings"

NaicsIndustry

FieldTypeNotes
codestringSix-digit NAICS code. Pass this as industry.
titlestringOfficial Census title: what your picker should display.

Example

curl "$SEISMIC_ORCHESTRATION_URL/v0/industries"

See also

  • Org KYB: business.industry on your own org's profile.
  • Customers: business.industry on a business customer's profile.
  • Errors: not_in_allowed_set violations omit allowed for this catalog. Consult this endpoint instead.
  • api.resolveIndustry: the TypeScript client translates a code for you and refuses to submit one the API won't take.
  • Industry codes: the full catalog, grouped by sector for browsing.