POST /api/sae/standards/search
Price: 10 credits
Search the SAE International standards catalogue — the aerospace AS, AMS, ARP and AIR series and the ground-vehicle J series. Narrows by free text, industry sector, revision status, document class, editorial topic, issuing committee, subject taxonomy, offered format, exact or root document number and origin date range, and orders by relevance, document number, title or origin date. Each result carries title, abstract, committee, industries, topics, the six-level taxonomy, revision status and the superseded revisions of the same document as full records.
Results are grouped by root document number, so one row is one document family: the row itself is the newest revision and `revisions` holds the superseded ones. That is why the result total counts families rather than documents, and why `revision_status` Historical returns families whose newest revision is itself superseded rather than every old revision ever issued. `committees` and `taxonomy` take the source's own wording and reject nothing, so a term SAE does not use returns an empty result rather than an error — take the spelling from a `committees` or `taxonomy` value on a result you already have. `sub_groups` is the most useful axis for narrowing a materials question: the AMS series is Material Specification while AIR is Information Report. Pass a document number you already know to /sae/standards instead, which adds price, DOI, page count and the full revision ladder.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)query string nullable — Free text matched against document number, title and abstract (examples: "brake fluid", "additive manufacturing", "AS9100"; minLength: 1)industries array nullable — Industry sector the document is classified under (one of: "Aerospace", "Automotive", "Commercial Vehicle", "Govt/Defense")revision_status string nullable — Current keeps only documents whose newest revision is in force, Historical keeps only superseded ones. Left unset both are returned (one of: "Current", "Historical")sub_groups array nullable — Document class: Technical Standard, Material Specification (the AMS series), Recommended Practice, Information Report (the AIR series), Specification or Supplement (one of: "Technical Standard", "Material Specification", "Recommended Practice", "Information Report", "Supplement", "Specification")topics array nullable — SAE's ten editorial topics (one of: "Automated and Autonomous Systems", "Connectivity and Software", "Digital Transformation", "Electrical Systems and Electronics", "Materials and Manufacturing", "Military and Defense", "Power and Propulsion", "Quality, Testing and Safety", "Sustainability", "Vehicle Systems and Performance")committees array nullable — Issuing committee, spelled exactly as SAE names it (examples: ["AE-2 Lightning Committee"], ["AMS D Nonferrous Alloys Committee"])taxonomy array nullable — Subject-taxonomy terms at any depth of SAE's six-level tree (examples: ["Alloys"], ["Oxygen equipment","Chassis"])full_text_formats array nullable — Restrict to documents offered in at least one of these formats (one of: "PDF", "HTML", "Excel", "print")product_codes array nullable — Exact document numbers, revision suffix included (examples: ["AS9015A"], ["J824_202206","AIR1059G"])root_product_codes array nullable — Root document numbers without a revision suffix, which match the whole revision family (examples: ["J824"], ["AIR1059"])published_from string nullable — Earliest origin date, ISO format YYYY-MM-DD (examples: "2020-01-01")published_to string nullable — Latest origin date, ISO format YYYY-MM-DD (examples: "2026-01-01")sort string — Result ordering (default: "relevance"; one of: "relevance", "product_code_asc", "product_code_desc", "origin_date_asc", "origin_date_desc", "title_asc", "title_desc")count integer required — Max number of results to return (min: 1; max: 1000)@type string (default: "SaeStandardCard")product_code string requiredroot_product_code string nullablepublication_id string nullablecontent_id string nullabledocument_title string nullableabstract string nullableurl string nullableseo_uri string nullablecommittees array (default: [])industries array (default: [])topics array (default: [])taxonomy array (default: [])taxonomy_level_1 array (default: [])taxonomy_level_2 array (default: [])taxonomy_level_3 array (default: [])taxonomy_level_4 array (default: [])taxonomy_level_5 array (default: [])taxonomy_level_6 array (default: [])revision_status string nullableorigin_date string nullabledocument_group string nullabledocument_sub_group string nullablelanguage string nullablefull_text_formats array (default: [])is_featured boolean nullablerevisions array (default: [])422 — A date is malformed or published_from is later than published_to Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — No SAE standard matched the filter combination Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.