Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When next_cursor is not null, call again with cursor set to it for the next page.
{ "as_of": "2026-10-01T12:16:41.913Z", "summary": "2 active events, newest first. More are available: call again with `cursor` set to `next_cursor`.", "notice": "Informational only. Risk scores, stock levels, lead times and alternate-part suggestions may be incomplete, delayed or inaccurate. Independently verify before making procurement, engineering, compliance, safety or sourcing decisions.", "events": [ { "id": 1205, "title": "Ukraine Black Sea port attacks disrupt grain logistics in Odesa", "summary": "Military attacks on ports and logistics facilities in Ukraine's Odesa and Mykolaiv regions have crippled grain loading operations, bringing Black Sea grain shipments close to a standstill. The disruption creates immediate logistics bottlenecks and threatens shortages of Ukrainian grain commodities on global markets. Buyers of Ukrainian commodities should track port availability and explore alternative supply sources.", "severity": "high", "report_status": "confirmed", "country": "Ukraine", "country_code": "UA", "region": "Europe", "categories": [ "commodities", "logistics" ], "root_cause": "geopolitical_action", "supply_chain_impact": [ "logistics_disruption", "shortage" ], "sourcing_implication": "Attacks on Odesa and Mykolaiv ports hinder Ukrainian grain shipments, prompting buyers of Ukrainian commodities to monitor port availability and consider alternative sources.", "recommended_action": "monitor", "sourcing_urgency": "critical", "regions_exposed": [ "Europe", "North America", "Asia-Pacific", "Latin America", "Africa" ], "lead_time": { "text": "as much as 12 days", "source": { "sentence": "Özdemir said waiting times at the Sulina entrance to the Danube had increased from two or three days to as much as 12 days, adding demurrage costs and making delivery schedules harder to manage.", "url": "https://millermagazine.com/en/blog/black-sea-disruption-shifts-grain-trade-focus-from-price-to-reliable-delivery-7046" }, "interpretation": "Reported by millermagazine.com on September 30, 2026 for shipments affected by this event." }, "shipping_check": null, "source_urls": [ "http://rmb.reuters.com/rmd/rss/item/tag:reuters.com,2026:newsml_KBN3VD06W?channel=BEQ259", "https://www.livemint.com/market/wheat-falls-as-markets-monitor-black-sea-export-prospects/amp-11790558644308.html" ], "published_date": "2026-09-28T00:00:00.000Z", "first_seen": "2026-09-28T04:46:31.972Z" }, { "id": 1199, "title": "Russian shelling destroys Kärcher warehouse in Ukraine", "summary": "A warehouse storing Kärcher cleaning equipment in Ukraine was destroyed by Russian shelling, halting local distribution and delaying orders. The loss creates a short‑term shortage of cleaning products for regional customers and may increase logistics costs as alternative routes are arranged.", "severity": "medium", "report_status": "rumor", "country": "Ukraine", "country_code": "UA", "region": "Europe", "categories": [ "mechanical" ], "root_cause": "geopolitical_action", "supply_chain_impact": [ "logistics_disruption", "shortage" ], "sourcing_implication": "The destruction of the Kärcher warehouse in Ukraine disrupts distribution of cleaning equipment, requiring customers to source from other regional depots.", "recommended_action": "monitor", "sourcing_urgency": "medium", "regions_exposed": [ "Europe" ], "lead_time": { "text": "+3-7 days", "source": null, "interpretation": "An estimate from the event's description." }, "shipping_check": null, "source_urls": [ "https://antikor.info/en/articles/865669-rossijskij_obstrel_unichtohil_sklad_k228rcher_v_ukraine_tehnika_i_produktsija_polnostjju_sgoreli" ], "published_date": "2026-09-27T00:00:00.000Z", "first_seen": "2026-09-28T04:45:13.583Z" } ], "next_cursor": "MTE5OQ"}
{
"error": "credits_exhausted",
"summary": "Your organization's credits for this month are used up, so this request was not run. Upgrade your plan in the PartFinder console at https://console.partfinder.dev/settings/billing, then try again.",
"reason": "This request needs 1 credit and 0 are left.",
"billing_url": "https://console.partfinder.dev/settings/billing"
}
An API key created in the PartFinder console at https://console.partfinder.dev, or a customer key created with POST /v1/keys. Send as Authorization: Bearer <key>. Revocation takes effect within approximately one minute.
Only events in that region. Regions as supply-chain news is grouped, not the UN regions on distributors; to match a distributor or a part's origin, filter by country (an ISO 3166-1 alpha-2 code, as country_code on distributors and manufacturing_country_code on parts and BOM lines).
{ "as_of": "2026-10-01T12:16:41.913Z", "summary": "2 active events, newest first. More are available: call again with `cursor` set to `next_cursor`.", "notice": "Informational only. Risk scores, stock levels, lead times and alternate-part suggestions may be incomplete, delayed or inaccurate. Independently verify before making procurement, engineering, compliance, safety or sourcing decisions.", "events": [ { "id": 1205, "title": "Ukraine Black Sea port attacks disrupt grain logistics in Odesa", "summary": "Military attacks on ports and logistics facilities in Ukraine's Odesa and Mykolaiv regions have crippled grain loading operations, bringing Black Sea grain shipments close to a standstill. The disruption creates immediate logistics bottlenecks and threatens shortages of Ukrainian grain commodities on global markets. Buyers of Ukrainian commodities should track port availability and explore alternative supply sources.", "severity": "high", "report_status": "confirmed", "country": "Ukraine", "country_code": "UA", "region": "Europe", "categories": [ "commodities", "logistics" ], "root_cause": "geopolitical_action", "supply_chain_impact": [ "logistics_disruption", "shortage" ], "sourcing_implication": "Attacks on Odesa and Mykolaiv ports hinder Ukrainian grain shipments, prompting buyers of Ukrainian commodities to monitor port availability and consider alternative sources.", "recommended_action": "monitor", "sourcing_urgency": "critical", "regions_exposed": [ "Europe", "North America", "Asia-Pacific", "Latin America", "Africa" ], "lead_time": { "text": "as much as 12 days", "source": { "sentence": "Özdemir said waiting times at the Sulina entrance to the Danube had increased from two or three days to as much as 12 days, adding demurrage costs and making delivery schedules harder to manage.", "url": "https://millermagazine.com/en/blog/black-sea-disruption-shifts-grain-trade-focus-from-price-to-reliable-delivery-7046" }, "interpretation": "Reported by millermagazine.com on September 30, 2026 for shipments affected by this event." }, "shipping_check": null, "source_urls": [ "http://rmb.reuters.com/rmd/rss/item/tag:reuters.com,2026:newsml_KBN3VD06W?channel=BEQ259", "https://www.livemint.com/market/wheat-falls-as-markets-monitor-black-sea-export-prospects/amp-11790558644308.html" ], "published_date": "2026-09-28T00:00:00.000Z", "first_seen": "2026-09-28T04:46:31.972Z" }, { "id": 1199, "title": "Russian shelling destroys Kärcher warehouse in Ukraine", "summary": "A warehouse storing Kärcher cleaning equipment in Ukraine was destroyed by Russian shelling, halting local distribution and delaying orders. The loss creates a short‑term shortage of cleaning products for regional customers and may increase logistics costs as alternative routes are arranged.", "severity": "medium", "report_status": "rumor", "country": "Ukraine", "country_code": "UA", "region": "Europe", "categories": [ "mechanical" ], "root_cause": "geopolitical_action", "supply_chain_impact": [ "logistics_disruption", "shortage" ], "sourcing_implication": "The destruction of the Kärcher warehouse in Ukraine disrupts distribution of cleaning equipment, requiring customers to source from other regional depots.", "recommended_action": "monitor", "sourcing_urgency": "medium", "regions_exposed": [ "Europe" ], "lead_time": { "text": "+3-7 days", "source": null, "interpretation": "An estimate from the event's description." }, "shipping_check": null, "source_urls": [ "https://antikor.info/en/articles/865669-rossijskij_obstrel_unichtohil_sklad_k228rcher_v_ukraine_tehnika_i_produktsija_polnostjju_sgoreli" ], "published_date": "2026-09-27T00:00:00.000Z", "first_seen": "2026-09-28T04:45:13.583Z" } ], "next_cursor": "MTE5OQ"}
{
"error": "credits_exhausted",
"summary": "Your organization's credits for this month are used up, so this request was not run. Upgrade your plan in the PartFinder console at https://console.partfinder.dev/settings/billing, then try again.",
"reason": "This request needs 1 credit and 0 are left.",
"billing_url": "https://console.partfinder.dev/settings/billing"
}
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"PartFinder API","colors":{"primary":"#1D4ED8","light":"#3B82F6","dark":"#1E3A8A"},"favicon":"https://mintcdn.com/partfinder/hGeRCXFb-rSPxOJq/favicon.svg?fit=max\u0026auto=format\u0026n=hGeRCXFb-rSPxOJq\u0026q=85\u0026s=19d37d9d5ca86111d80fb254ae53e1e9","navbar":{"links":[{"href":"https://docs.partfinder.dev/llms.txt","label":"For AI agents: llms.txt"},{"href":"https://console.partfinder.dev","label":"Console"}],"primary":{"type":"button","label":"Get an API key","href":"https://console.partfinder.dev"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"markdown":{"instructions":["The PartFinder API is served at https://api.partfinder.dev. Authenticate with `Authorization: Bearer $PARTFINDER_API_KEY`; create an account at https://console.partfinder.dev/sign-up and pick pay as you go or a monthly or yearly plan (see https://partfinder.dev/pricing), then create a key. Pay as you go starts with 100 free credits, once per person and per company.","Install the PartFinder agent skill with `npx skills add https://docs.partfinder.dev` (skill file: https://docs.partfinder.dev/skill.md).","The OpenAPI document at https://api.partfinder.dev/v1/openapi.json is the source of truth for request and response schemas.","What each call costs and current plans: https://api.partfinder.dev/llms.txt."]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"partfinder","hasAudioNarration":false,"actualSubdomain":"partfinder","customDomains":["docs.partfinder.dev"],"gitSource":{"type":"github","owner":"nimbusopsconsulting","repo":"partfinder-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae714b2bfc5f43dec48d3f4","collectionId":"070dca16-beeb-47de-9652-5b4a8c343a6c","liveDeploymentHistoryId":"6ae714b2bfc5f43dec48d3f4","schemaVersion":"v3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae714b2bfc5f43dec48d3f4","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":36},{"language":"default","tag":"Endpoints","count":35},{"language":"default","tag":"Documentation","count":24},{"language":"default","tag":"Integrations","count":10},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Webhooks","count":7},{"language":"default","tag":"BOMs","count":5},{"language":"default","tag":"RFQs","count":5},{"language":"default","tag":"Core Concepts","count":4},{"language":"default","tag":"Compare","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"brand-icons.css","content":".dark img[src=\"/images/logos/openai-blossom-black.svg\"]{content:url(/images/logos/openai-blossom-white.svg)}.dark img[src=\"/images/logos/cursor-cube-2d-light.svg\"]{content:url(/images/logos/cursor-cube-2d-dark.svg)}.dark img[src=\"/images/logos/anthropic-symbol-slate.svg\"]{content:url(/images/logos/anthropic-symbol-ivory.svg)}.dark img[src=\"/images/logos/vercel-symbol-black.svg\"]{content:url(/images/logos/vercel-symbol-white.svg)}"}],"page":{"pagePath":"api-reference/events/list-disruption-events","slug":"/api-reference/events/list-disruption-events","pageMetadata":{"title":"List disruption events","description":"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When `next_cursor` is not null, call again with `cursor` set to it for the next page.","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/events","href":"/api-reference/events/list-disruption-events","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When \", _jsx(_components.code, {\n children: \"next_cursor\"\n }), \" is not null, call again with \", _jsx(_components.code, {\n children: \"cursor\"\n }), \" set to it for the next page.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List disruption events","description":"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When `next_cursor` is not null, call again with `cursor` set to it for the next page.","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/events","href":"/api-reference/events/list-disruption-events","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listEvents","tags":["Events"],"summary":"List disruption events","description":"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When `next_cursor` is not null, call again with `cursor` set to it for the next page.","parameters":["9240311e-4e46-47ff-a1c2-d20186e617e6","cdeb2bff-f390-44e3-8a7e-12565c5e3109","d0cf8516-5edf-43ac-93ee-e90ae01f93db","82b76b24-31ac-4300-b525-0c5555340dea","e9c4be7f-0609-463a-b644-e8e9960ac967","ae9e25b6-a310-4c53-bef9-e91d1320a923"],"responses":{"200":"1a81a30e-60e9-46f1-a2db-663ffb11075f","400":"f8a59b1c-d77e-429f-9492-5efe8ce075d4","401":"fe94acf3-261b-4afe-9683-d0409eab8ca4","402":"80a5d4c3-a989-45fe-a8e3-4089aea113b2","403":"9fefc2f5-f04f-4a98-a9a9-b8baab8f3ddd","429":"8310a08a-102f-4bfa-9f52-5bbd423982c8"},"method":"get","type":"path","servers":["0fd180cc-370f-4a5d-b567-97592ff7113e"],"security":["ff9e9b82-f90e-4a4b-b1b1-0a91012e4b98"],"path":"/v1/events","baseUrlOptions":["https://api.partfinder.dev"],"title":"List disruption events","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"9240311e-4e46-47ff-a1c2-d20186e617e6":{"name":"country","in":"query","required":false,"schema":{"type":"string","isRequired":false,"description":"ISO 3166-1 alpha-2 code. Only events in that country.","uniqueKey":"","typeLabel":"string"},"example":"CN","description":"ISO 3166-1 alpha-2 code. Only events in that country."},"cdeb2bff-f390-44e3-8a7e-12565c5e3109":{"name":"region","in":"query","required":false,"schema":{"type":"string","enum":["Asia-Pacific","Europe","North America","Middle East","Latin America","Africa","Global"],"isRequired":false,"description":"Only events in that region. Regions as supply-chain news is grouped, not the UN regions on distributors; to match a distributor or a part's origin, filter by `country` (an ISO 3166-1 alpha-2 code, as `country_code` on distributors and `manufacturing_country_code` on parts and BOM lines).","uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Only events in that region. Regions as supply-chain news is grouped, not the UN regions on distributors; to match a distributor or a part's origin, filter by `country` (an ISO 3166-1 alpha-2 code, as `country_code` on distributors and `manufacturing_country_code` on parts and BOM lines)."},"d0cf8516-5edf-43ac-93ee-e90ae01f93db":{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["semiconductors","electronics","pcb","connectors","sensors","motors","drives","power_supplies","batteries","cables_wire","rf_microwave","optics","bearings","mechanical","hydraulics","pneumatics","seals_gaskets","fluid_handling","thermal","industrial_automation","filtration","safety_equipment","metals","chemicals","petrochemicals","plastics","raw_materials","pharmaceuticals","active_ingredients","medical_devices","agriculture","fertilizers","commodities","automotive","energy","logistics"],"isRequired":false,"description":"Only events affecting that component category.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"example":"semiconductors","description":"Only events affecting that component category."},"82b76b24-31ac-4300-b525-0c5555340dea":{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":90,"isRequired":false,"description":"Only events first recorded in the last N days, 1 to 90. Omit it for every active event.","uniqueKey":"","typeLabel":"integer"},"description":"Only events first recorded in the last N days, 1 to 90. Omit it for every active event."},"e9c4be7f-0609-463a-b644-e8e9960ac967":{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"isRequired":false,"description":"Events per page, 1 to 100. Defaults to 50.","uniqueKey":"","typeLabel":"integer"},"description":"Events per page, 1 to 100. Defaults to 50."},"ae9e25b6-a310-4c53-bef9-e91d1320a923":{"name":"cursor","in":"query","required":false,"schema":{"type":"string","isRequired":false,"description":"`next_cursor` from the previous page, unchanged. Omit it for the first page.","uniqueKey":"","typeLabel":"string"},"description":"`next_cursor` from the previous page, unchanged. Omit it for the first page."}},"responses":{"1a81a30e-60e9-46f1-a2db-663ffb11075f":{"description":"The events. The list can be empty.","content":{"application/json":{"schema":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time","description":"ISO 8601. How current the data in this response is.","isRequired":true,"uniqueKey":"as_of","typeLabel":"string\u003cdate-time>"},"summary":{"type":"string","description":"Plain language an agent can relay without re-deriving it.","isRequired":true,"uniqueKey":"summary","typeLabel":"string"},"notice":{"type":"string","description":"Informational-use notice. Always present.","isRequired":true,"uniqueKey":"notice","typeLabel":"string"},"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"description":"The event id. The same id `/v1/parts` and `/v1/bom` return for this event.","isRequired":true,"uniqueKey":"events.items.[INDEX].id","typeLabel":"integer"},"title":{"type":"string","isRequired":true,"uniqueKey":"events.items.[INDEX].title","typeLabel":"string"},"summary":{"oneOf":[{"type":"string","description":"What happened, in a few sentences.","isRequired":true,"uniqueKey":"events.items.[INDEX].summary.oneOf.0","typeLabel":"string"},{"type":"null","description":"What happened, in a few sentences.","isRequired":true,"uniqueKey":"events.items.[INDEX].summary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].summary","typeLabel":"string | null"},"severity":{"oneOf":[{"type":"string","description":"How serious the event is in itself, not its effect on any one part.","enum":["low","medium","high","critical"],"isRequired":true,"uniqueKey":"events.items.[INDEX].severity.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"How serious the event is in itself, not its effect on any one part.","isRequired":true,"uniqueKey":"events.items.[INDEX].severity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].severity","typeLabel":"enum\u003cstring> | null"},"report_status":{"oneOf":[{"type":"string","description":"How firm the reporting is: `confirmed`, `developing`, `probable`, `rumor`, or `risk` (a warning about something that has not happened).","enum":["confirmed","developing","probable","rumor","risk"],"isRequired":true,"uniqueKey":"events.items.[INDEX].report_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"How firm the reporting is: `confirmed`, `developing`, `probable`, `rumor`, or `risk` (a warning about something that has not happened).","isRequired":true,"uniqueKey":"events.items.[INDEX].report_status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].report_status","typeLabel":"enum\u003cstring> | null"},"country":{"oneOf":[{"type":"string","description":"Where it happens. Null when it spans several countries.","isRequired":true,"uniqueKey":"events.items.[INDEX].country.oneOf.0","typeLabel":"string"},{"type":"null","description":"Where it happens. Null when it spans several countries.","isRequired":true,"uniqueKey":"events.items.[INDEX].country.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].country","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 code of `country`.","isRequired":true,"uniqueKey":"events.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 code of `country`.","isRequired":true,"uniqueKey":"events.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].country_code","typeLabel":"string | null"},"region":{"oneOf":[{"type":"string","description":"Regions as supply-chain news is grouped, not the UN regions on distributors; to match a distributor or a part's origin, filter by `country` (an ISO 3166-1 alpha-2 code, as `country_code` on distributors and `manufacturing_country_code` on parts and BOM lines).","enum":["Asia-Pacific","Europe","North America","Middle East","Latin America","Africa","Global"],"isRequired":true,"uniqueKey":"events.items.[INDEX].region.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Regions as supply-chain news is grouped, not the UN regions on distributors; to match a distributor or a part's origin, filter by `country` (an ISO 3166-1 alpha-2 code, as `country_code` on distributors and `manufacturing_country_code` on parts and BOM lines).","isRequired":true,"uniqueKey":"events.items.[INDEX].region.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].region","typeLabel":"enum\u003cstring> | null"},"categories":{"type":"array","items":{"type":"string","enum":["semiconductors","electronics","pcb","connectors","sensors","motors","drives","power_supplies","batteries","cables_wire","rf_microwave","optics","bearings","mechanical","hydraulics","pneumatics","seals_gaskets","fluid_handling","thermal","industrial_automation","filtration","safety_equipment","metals","chemicals","petrochemicals","plastics","raw_materials","pharmaceuticals","active_ingredients","medical_devices","agriculture","fertilizers","commodities","automotive","energy","logistics"],"uniqueKey":"events.items.[INDEX].categories.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Component categories the event affects.","isRequired":true,"uniqueKey":"events.items.[INDEX].categories","typeLabel":"enum\u003cstring>[]"},"root_cause":{"oneOf":[{"type":"string","description":"What kind of cause lies behind the event.","enum":["natural_disaster","geopolitical_action","regulatory_change","labor_disruption","industrial_incident","infrastructure_failure","cyber_attack"],"isRequired":true,"uniqueKey":"events.items.[INDEX].root_cause.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What kind of cause lies behind the event.","isRequired":true,"uniqueKey":"events.items.[INDEX].root_cause.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].root_cause","typeLabel":"enum\u003cstring> | null"},"supply_chain_impact":{"type":"array","items":{"type":"string","enum":["shortage","logistics_disruption","production_halt","capacity_reduction","cost_increase","demand_spike","trade_restriction","supplier_failure","quality_issue","allocation"],"uniqueKey":"events.items.[INDEX].supply_chain_impact.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Kinds of effect on supply.","isRequired":true,"uniqueKey":"events.items.[INDEX].supply_chain_impact","typeLabel":"enum\u003cstring>[]"},"sourcing_implication":{"oneOf":[{"type":"string","description":"What it means for a buyer of the affected categories.","isRequired":true,"uniqueKey":"events.items.[INDEX].sourcing_implication.oneOf.0","typeLabel":"string"},{"type":"null","description":"What it means for a buyer of the affected categories.","isRequired":true,"uniqueKey":"events.items.[INDEX].sourcing_implication.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].sourcing_implication","typeLabel":"string | null"},"recommended_action":{"oneOf":[{"type":"string","enum":["monitor","diversify","qualify_alternate","reroute","urgent"],"isRequired":true,"uniqueKey":"events.items.[INDEX].recommended_action.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"events.items.[INDEX].recommended_action.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].recommended_action","typeLabel":"enum\u003cstring> | null"},"sourcing_urgency":{"oneOf":[{"type":"string","description":"How soon a buyer should act.","enum":["low","medium","high","critical"],"isRequired":true,"uniqueKey":"events.items.[INDEX].sourcing_urgency.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"How soon a buyer should act.","isRequired":true,"uniqueKey":"events.items.[INDEX].sourcing_urgency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].sourcing_urgency","typeLabel":"enum\u003cstring> | null"},"regions_exposed":{"type":"array","items":{"type":"string","enum":["Asia-Pacific","Europe","North America","Middle East","Latin America","Africa","Global"],"uniqueKey":"events.items.[INDEX].regions_exposed.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Regions whose supply is exposed to it. Regions as supply-chain news is grouped, not the UN regions on distributors; to match a distributor or a part's origin, filter by `country` (an ISO 3166-1 alpha-2 code, as `country_code` on distributors and `manufacturing_country_code` on parts and BOM lines).","isRequired":true,"uniqueKey":"events.items.[INDEX].regions_exposed","typeLabel":"enum\u003cstring>[]"},"lead_time":{"oneOf":[{"type":"object","description":"Added lead time for affected parts. Null when none is available.","required":["text","source","interpretation"],"properties":{"text":{"type":"string","description":"The lead time or delay, as a range in words, for example \"+2-4 weeks\" or \"as much as 12 days\".","isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.text","typeLabel":"string"},"source":{"oneOf":[{"type":"object","description":"The report that states `text`, as written there. Null when `text` is an estimate.","required":["sentence","url"],"properties":{"sentence":{"type":"string","description":"The sentence in the report that states the lead time.","isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.source.oneOf.0.sentence","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"The report.","isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.source.oneOf.0.url","typeLabel":"string\u003curi>"}},"isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.source.oneOf.0","typeLabel":"object"},{"type":"null","description":"The report that states `text`, as written there. Null when `text` is an estimate.","isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.source.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.source","typeLabel":"object | null"},"interpretation":{"type":"string","description":"One line of plain language: who states this lead time, or that it is an estimate.","isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0.interpretation","typeLabel":"string"}},"isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.0","typeLabel":"object"},{"type":"null","description":"Added lead time for affected parts. Null when none is available.","isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].lead_time","typeLabel":"object | null"},"shipping_check":{"oneOf":[{"type":"object","description":"Port activity in the event's country during the event's week, for events about ports or shipping. Null when there is none.","required":["change_from_normal_percent","interpretation"],"properties":{"change_from_normal_percent":{"type":"integer","description":"Change in port calls in the event's country during the event's week, against their usual level for the same time of year, in percent. Negative is below usual, positive above.","isRequired":true,"uniqueKey":"events.items.[INDEX].shipping_check.oneOf.0.change_from_normal_percent","typeLabel":"integer"},"interpretation":{"type":"string","description":"One line of plain language.","isRequired":true,"uniqueKey":"events.items.[INDEX].shipping_check.oneOf.0.interpretation","typeLabel":"string"}},"isRequired":true,"uniqueKey":"events.items.[INDEX].shipping_check.oneOf.0","typeLabel":"object"},{"type":"null","description":"Port activity in the event's country during the event's week, for events about ports or shipping. Null when there is none.","isRequired":true,"uniqueKey":"events.items.[INDEX].shipping_check.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].shipping_check","typeLabel":"object | null"},"source_urls":{"type":"array","items":{"type":"string","format":"uri","uniqueKey":"events.items.[INDEX].source_urls.items.[INDEX]","typeLabel":"string\u003curi>"},"description":"News reports of this event.","isRequired":true,"uniqueKey":"events.items.[INDEX].source_urls","typeLabel":"string\u003curi>[]"},"published_date":{"oneOf":[{"type":"string","description":"When the event was first reported.","format":"date-time","isRequired":true,"uniqueKey":"events.items.[INDEX].published_date.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the event was first reported.","isRequired":true,"uniqueKey":"events.items.[INDEX].published_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"events.items.[INDEX].published_date","typeLabel":"string\u003cdate-time> | null"},"first_seen":{"type":"string","format":"date-time","description":"When PartFinder first recorded the event.","isRequired":true,"uniqueKey":"events.items.[INDEX].first_seen","typeLabel":"string\u003cdate-time>"}},"required":["id","title","summary","severity","report_status","country","country_code","region","categories","root_cause","supply_chain_impact","sourcing_implication","recommended_action","sourcing_urgency","regions_exposed","lead_time","shipping_check","source_urls","published_date","first_seen"],"uniqueKey":"events.items.[INDEX]","typeLabel":"object"},"description":"Newest first.","isRequired":true,"uniqueKey":"events","typeLabel":"object[]"},"next_cursor":{"oneOf":[{"type":"string","description":"Pass as `cursor` for the next page. Null on the last page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pass as `cursor` for the next page. Null on the last page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_cursor","typeLabel":"string | null"}},"required":["as_of","summary","notice","events","next_cursor"],"uniqueKey":"","typeLabel":"object"},"example":{"as_of":"2026-10-01T12:16:41.913Z","summary":"2 active events, newest first. More are available: call again with `cursor` set to `next_cursor`.","notice":"Informational only. Risk scores, stock levels, lead times and alternate-part suggestions may be incomplete, delayed or inaccurate. Independently verify before making procurement, engineering, compliance, safety or sourcing decisions.","events":[{"id":1205,"title":"Ukraine Black Sea port attacks disrupt grain logistics in Odesa","summary":"Military attacks on ports and logistics facilities in Ukraine's Odesa and Mykolaiv regions have crippled grain loading operations, bringing Black Sea grain shipments close to a standstill. The disruption creates immediate logistics bottlenecks and threatens shortages of Ukrainian grain commodities on global markets. Buyers of Ukrainian commodities should track port availability and explore alternative supply sources.","severity":"high","report_status":"confirmed","country":"Ukraine","country_code":"UA","region":"Europe","categories":["commodities","logistics"],"root_cause":"geopolitical_action","supply_chain_impact":["logistics_disruption","shortage"],"sourcing_implication":"Attacks on Odesa and Mykolaiv ports hinder Ukrainian grain shipments, prompting buyers of Ukrainian commodities to monitor port availability and consider alternative sources.","recommended_action":"monitor","sourcing_urgency":"critical","regions_exposed":["Europe","North America","Asia-Pacific","Latin America","Africa"],"lead_time":{"text":"as much as 12 days","source":{"sentence":"Özdemir said waiting times at the Sulina entrance to the Danube had increased from two or three days to as much as 12 days, adding demurrage costs and making delivery schedules harder to manage.","url":"https://millermagazine.com/en/blog/black-sea-disruption-shifts-grain-trade-focus-from-price-to-reliable-delivery-7046"},"interpretation":"Reported by millermagazine.com on September 30, 2026 for shipments affected by this event."},"shipping_check":null,"source_urls":["http://rmb.reuters.com/rmd/rss/item/tag:reuters.com,2026:newsml_KBN3VD06W?channel=BEQ259","https://www.livemint.com/market/wheat-falls-as-markets-monitor-black-sea-export-prospects/amp-11790558644308.html"],"published_date":"2026-09-28T00:00:00.000Z","first_seen":"2026-09-28T04:46:31.972Z"},{"id":1199,"title":"Russian shelling destroys Kärcher warehouse in Ukraine","summary":"A warehouse storing Kärcher cleaning equipment in Ukraine was destroyed by Russian shelling, halting local distribution and delaying orders. The loss creates a short‑term shortage of cleaning products for regional customers and may increase logistics costs as alternative routes are arranged.","severity":"medium","report_status":"rumor","country":"Ukraine","country_code":"UA","region":"Europe","categories":["mechanical"],"root_cause":"geopolitical_action","supply_chain_impact":["logistics_disruption","shortage"],"sourcing_implication":"The destruction of the Kärcher warehouse in Ukraine disrupts distribution of cleaning equipment, requiring customers to source from other regional depots.","recommended_action":"monitor","sourcing_urgency":"medium","regions_exposed":["Europe"],"lead_time":{"text":"+3-7 days","source":null,"interpretation":"An estimate from the event's description."},"shipping_check":null,"source_urls":["https://antikor.info/en/articles/865669-rossijskij_obstrel_unichtohil_sklad_k228rcher_v_ukraine_tehnika_i_produktsija_polnostjju_sgoreli"],"published_date":"2026-09-27T00:00:00.000Z","first_seen":"2026-09-28T04:45:13.583Z"}],"next_cursor":"MTE5OQ"},"examples":{"Example":{"title":"Example","value":{"as_of":"2026-10-01T12:16:41.913Z","summary":"2 active events, newest first. More are available: call again with `cursor` set to `next_cursor`.","notice":"Informational only. Risk scores, stock levels, lead times and alternate-part suggestions may be incomplete, delayed or inaccurate. Independently verify before making procurement, engineering, compliance, safety or sourcing decisions.","events":[{"id":1205,"title":"Ukraine Black Sea port attacks disrupt grain logistics in Odesa","summary":"Military attacks on ports and logistics facilities in Ukraine's Odesa and Mykolaiv regions have crippled grain loading operations, bringing Black Sea grain shipments close to a standstill. The disruption creates immediate logistics bottlenecks and threatens shortages of Ukrainian grain commodities on global markets. Buyers of Ukrainian commodities should track port availability and explore alternative supply sources.","severity":"high","report_status":"confirmed","country":"Ukraine","country_code":"UA","region":"Europe","categories":["commodities","logistics"],"root_cause":"geopolitical_action","supply_chain_impact":["logistics_disruption","shortage"],"sourcing_implication":"Attacks on Odesa and Mykolaiv ports hinder Ukrainian grain shipments, prompting buyers of Ukrainian commodities to monitor port availability and consider alternative sources.","recommended_action":"monitor","sourcing_urgency":"critical","regions_exposed":["Europe","North America","Asia-Pacific","Latin America","Africa"],"lead_time":{"text":"as much as 12 days","source":{"sentence":"Özdemir said waiting times at the Sulina entrance to the Danube had increased from two or three days to as much as 12 days, adding demurrage costs and making delivery schedules harder to manage.","url":"https://millermagazine.com/en/blog/black-sea-disruption-shifts-grain-trade-focus-from-price-to-reliable-delivery-7046"},"interpretation":"Reported by millermagazine.com on September 30, 2026 for shipments affected by this event."},"shipping_check":null,"source_urls":["http://rmb.reuters.com/rmd/rss/item/tag:reuters.com,2026:newsml_KBN3VD06W?channel=BEQ259","https://www.livemint.com/market/wheat-falls-as-markets-monitor-black-sea-export-prospects/amp-11790558644308.html"],"published_date":"2026-09-28T00:00:00.000Z","first_seen":"2026-09-28T04:46:31.972Z"},{"id":1199,"title":"Russian shelling destroys Kärcher warehouse in Ukraine","summary":"A warehouse storing Kärcher cleaning equipment in Ukraine was destroyed by Russian shelling, halting local distribution and delaying orders. The loss creates a short‑term shortage of cleaning products for regional customers and may increase logistics costs as alternative routes are arranged.","severity":"medium","report_status":"rumor","country":"Ukraine","country_code":"UA","region":"Europe","categories":["mechanical"],"root_cause":"geopolitical_action","supply_chain_impact":["logistics_disruption","shortage"],"sourcing_implication":"The destruction of the Kärcher warehouse in Ukraine disrupts distribution of cleaning equipment, requiring customers to source from other regional depots.","recommended_action":"monitor","sourcing_urgency":"medium","regions_exposed":["Europe"],"lead_time":{"text":"+3-7 days","source":null,"interpretation":"An estimate from the event's description."},"shipping_check":null,"source_urls":["https://antikor.info/en/articles/865669-rossijskij_obstrel_unichtohil_sklad_k228rcher_v_ukraine_tehnika_i_produktsija_polnostjju_sgoreli"],"published_date":"2026-09-27T00:00:00.000Z","first_seen":"2026-09-28T04:45:13.583Z"}],"next_cursor":"MTE5OQ"}}},"exampleType":"examples"}},"headers":{"X-RateLimit-Limit":{"description":"Calls allowed in the current window: the minute or the day, whichever has fewer calls left.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Remaining":{"description":"Calls left in that window.","schema":{"type":"integer","minimum":0}},"X-RateLimit-Reset":{"description":"Seconds until that window resets.","schema":{"type":"integer","minimum":1}}},"exampleType":"examples"},"f8a59b1c-d77e-429f-9492-5efe8ce075d4":{"description":"A parameter is outside its allowed values, or `cursor` is not one we issued.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["authentication_required","invalid_key","invalid_request","not_a_specific_part","part_not_found","verification_unavailable","generation_failed","bom_too_large","bom_not_found","bom_columns_not_found","event_not_found","rate_limited","supplier_opted_out","send_failed","rfq_not_found","rfq_bounced","message_refused","key_not_allowed","insufficient_scope","app_disconnected","key_not_found","key_name_taken","webhook_endpoint_not_found","not_a_parts_query","search_not_found","compare_not_found","credits_exhausted","payment_method_required","payment_failed","usage_limit_reached"],"description":"`authentication_required` when no bearer token was sent. `invalid_key` when the key or sign-in is unknown, revoked or expired — deliberately indistinguishable — or the sign-in names no organization you belong to (the `summary` says what to do). `invalid_request` when a required parameter is missing. `not_a_specific_part` when the input does not identify one specific part. `part_not_found` when no supplier lists that part number exactly — usually a typo or a partial number. `verification_unavailable` when we could not check whether the part is real, and so declined to describe it; temporary, safe to retry. `generation_failed` when the report could not be produced, or a search or a comparison could not be started. `bom_too_large` when one call carries more lines than the limit; `reason` states both numbers. `bom_not_found` when no BOM with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `bom_columns_not_found` when an uploaded file has no column we can identify as part numbers; `reason` lists the headers seen. `event_not_found` when no active event has that id. `rate_limited` when your organization has used its calls for this minute or this day; wait the seconds in the `Retry-After` header, then retry. `supplier_opted_out` when the supplier asked not to receive requests for quote from you, or from anyone through PartFinder. `send_failed` when the email could not be sent; nothing was stored, safe to retry. `rfq_not_found` when no request for quote with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `rfq_bounced` when the supplier's address could not receive the request; send a new request for quote to a working address. `message_refused` when the text was not sent; `summary` says what to change before sending again. `key_not_allowed` when a key that belongs to one of your customers calls an endpoint only your organization's own keys may call, or a caller signed in through an AI app manages keys or webhooks. `insufficient_scope` when an AI app signed in without the permission the call needs (`partfinder:read` to read, which includes looking up parts, alternates and events and uses credits for those; `partfinder:write` to change anything); the `summary` names it, and connecting the app again with it allowed fixes it. `app_disconnected` when the AI app the caller signed in through was disconnected in the console; signing in again does not help, allowing the app again in the console does. `key_not_found` when no live end-customer key with that id belongs to your organization. `key_name_taken` when a key with that name already exists in your organization, revoked keys included. `webhook_endpoint_not_found` when no webhook endpoint with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `not_a_parts_query` when a search query is not about a part; send a part number or describe the part. `search_not_found` when no search with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `compare_not_found` when no comparison with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `credits_exhausted` when your plan's credits for this month are used up; this request was not run and nothing was charged. Upgrade the plan at `billing_url`, then retry. `payment_method_required` when your organization is on pay as you go with no payment method; this request was not run and nothing was charged. Add a payment method or choose a plan at `billing_url`, then retry. `payment_failed` when pay as you go is paused because the last payment failed; this request was not run and nothing was charged. Update the payment method at `billing_url`, then retry. `usage_limit_reached` when your organization, on pay as you go, has reached its limit for unpaid usage; this request was not run and nothing was charged. Calls resume once the current payment goes through; follow it at `billing_url`. With a key made with `POST /v1/keys`, these four carry no `billing_url`: the `summary` asks your customer to contact your organization.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"summary":{"description":"One sentence you can relay to a user as-is, the same as `summary` on a successful response. Present whenever there is something useful to say about what went wrong.","type":"string","uniqueKey":"summary","typeLabel":"string"},"reason":{"description":"The specific detail behind the error.","type":"string","uniqueKey":"reason","typeLabel":"string"},"billing_url":{"description":"On `credits_exhausted`, `payment_method_required`, `payment_failed` and `usage_limit_reached`: the PartFinder console Billing page, where your organization manages its plan and payment method. Absent for a key made with `POST /v1/keys`, and for an organization whose plan is set by its contract.","type":"string","format":"uri","uniqueKey":"billing_url","typeLabel":"string\u003curi>"},"did_you_mean":{"description":"Real part numbers to retry with. On `not_a_specific_part` they are parts of the kind you described; on `part_not_found` they are the listed part numbers your input is a prefix of, so `TPS5433` returns TPS54331, TPS54332 and so on. Absent when there is nothing to suggest. Every entry is a real part number, never a guess.","type":"array","items":{"type":"string","uniqueKey":"did_you_mean.items.[INDEX]","typeLabel":"string"},"uniqueKey":"did_you_mean","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"authentication_required","summary":"\u003cstring>","reason":"\u003cstring>","billing_url":"\u003cstring>","did_you_mean":["\u003cstring>"]}}},"exampleType":"generated"}},"headers":{"X-RateLimit-Limit":{"description":"Calls allowed in the current window: the minute or the day, whichever has fewer calls left.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Remaining":{"description":"Calls left in that window.","schema":{"type":"integer","minimum":0}},"X-RateLimit-Reset":{"description":"Seconds until that window resets.","schema":{"type":"integer","minimum":1}}},"exampleType":"generated"},"fe94acf3-261b-4afe-9683-d0409eab8ca4":{"description":"Missing, unknown, revoked or expired key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["authentication_required","invalid_key","invalid_request","not_a_specific_part","part_not_found","verification_unavailable","generation_failed","bom_too_large","bom_not_found","bom_columns_not_found","event_not_found","rate_limited","supplier_opted_out","send_failed","rfq_not_found","rfq_bounced","message_refused","key_not_allowed","insufficient_scope","app_disconnected","key_not_found","key_name_taken","webhook_endpoint_not_found","not_a_parts_query","search_not_found","compare_not_found","credits_exhausted","payment_method_required","payment_failed","usage_limit_reached"],"description":"`authentication_required` when no bearer token was sent. `invalid_key` when the key or sign-in is unknown, revoked or expired — deliberately indistinguishable — or the sign-in names no organization you belong to (the `summary` says what to do). `invalid_request` when a required parameter is missing. `not_a_specific_part` when the input does not identify one specific part. `part_not_found` when no supplier lists that part number exactly — usually a typo or a partial number. `verification_unavailable` when we could not check whether the part is real, and so declined to describe it; temporary, safe to retry. `generation_failed` when the report could not be produced, or a search or a comparison could not be started. `bom_too_large` when one call carries more lines than the limit; `reason` states both numbers. `bom_not_found` when no BOM with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `bom_columns_not_found` when an uploaded file has no column we can identify as part numbers; `reason` lists the headers seen. `event_not_found` when no active event has that id. `rate_limited` when your organization has used its calls for this minute or this day; wait the seconds in the `Retry-After` header, then retry. `supplier_opted_out` when the supplier asked not to receive requests for quote from you, or from anyone through PartFinder. `send_failed` when the email could not be sent; nothing was stored, safe to retry. `rfq_not_found` when no request for quote with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `rfq_bounced` when the supplier's address could not receive the request; send a new request for quote to a working address. `message_refused` when the text was not sent; `summary` says what to change before sending again. `key_not_allowed` when a key that belongs to one of your customers calls an endpoint only your organization's own keys may call, or a caller signed in through an AI app manages keys or webhooks. `insufficient_scope` when an AI app signed in without the permission the call needs (`partfinder:read` to read, which includes looking up parts, alternates and events and uses credits for those; `partfinder:write` to change anything); the `summary` names it, and connecting the app again with it allowed fixes it. `app_disconnected` when the AI app the caller signed in through was disconnected in the console; signing in again does not help, allowing the app again in the console does. `key_not_found` when no live end-customer key with that id belongs to your organization. `key_name_taken` when a key with that name already exists in your organization, revoked keys included. `webhook_endpoint_not_found` when no webhook endpoint with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `not_a_parts_query` when a search query is not about a part; send a part number or describe the part. `search_not_found` when no search with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `compare_not_found` when no comparison with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `credits_exhausted` when your plan's credits for this month are used up; this request was not run and nothing was charged. Upgrade the plan at `billing_url`, then retry. `payment_method_required` when your organization is on pay as you go with no payment method; this request was not run and nothing was charged. Add a payment method or choose a plan at `billing_url`, then retry. `payment_failed` when pay as you go is paused because the last payment failed; this request was not run and nothing was charged. Update the payment method at `billing_url`, then retry. `usage_limit_reached` when your organization, on pay as you go, has reached its limit for unpaid usage; this request was not run and nothing was charged. Calls resume once the current payment goes through; follow it at `billing_url`. With a key made with `POST /v1/keys`, these four carry no `billing_url`: the `summary` asks your customer to contact your organization.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"summary":{"description":"One sentence you can relay to a user as-is, the same as `summary` on a successful response. Present whenever there is something useful to say about what went wrong.","type":"string","uniqueKey":"summary","typeLabel":"string"},"reason":{"description":"The specific detail behind the error.","type":"string","uniqueKey":"reason","typeLabel":"string"},"billing_url":{"description":"On `credits_exhausted`, `payment_method_required`, `payment_failed` and `usage_limit_reached`: the PartFinder console Billing page, where your organization manages its plan and payment method. Absent for a key made with `POST /v1/keys`, and for an organization whose plan is set by its contract.","type":"string","format":"uri","uniqueKey":"billing_url","typeLabel":"string\u003curi>"},"did_you_mean":{"description":"Real part numbers to retry with. On `not_a_specific_part` they are parts of the kind you described; on `part_not_found` they are the listed part numbers your input is a prefix of, so `TPS5433` returns TPS54331, TPS54332 and so on. Absent when there is nothing to suggest. Every entry is a real part number, never a guess.","type":"array","items":{"type":"string","uniqueKey":"did_you_mean.items.[INDEX]","typeLabel":"string"},"uniqueKey":"did_you_mean","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"authentication_required","summary":"\u003cstring>","reason":"\u003cstring>","billing_url":"\u003cstring>","did_you_mean":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"80a5d4c3-a989-45fe-a8e3-4089aea113b2":{"description":"This request was not run and nothing was charged. The error code names the case. `credits_exhausted`: your plan's credits for this month are used up; upgrade the plan in the PartFinder console. `payment_method_required`: your organization is on pay as you go with no payment method; add one in the console, or choose a plan. `payment_failed`: pay as you go is paused because the last payment failed; update the payment method in the console. `usage_limit_reached`: your organization, on pay as you go, has reached its limit for unpaid usage; calls resume once the current payment goes through. With a key made with `POST /v1/keys`, the `summary` tells your customer to contact your organization, and the answer carries no `billing_url`. The `summary` can be relayed as is; retry once the case is resolved.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["authentication_required","invalid_key","invalid_request","not_a_specific_part","part_not_found","verification_unavailable","generation_failed","bom_too_large","bom_not_found","bom_columns_not_found","event_not_found","rate_limited","supplier_opted_out","send_failed","rfq_not_found","rfq_bounced","message_refused","key_not_allowed","insufficient_scope","app_disconnected","key_not_found","key_name_taken","webhook_endpoint_not_found","not_a_parts_query","search_not_found","compare_not_found","credits_exhausted","payment_method_required","payment_failed","usage_limit_reached"],"description":"`authentication_required` when no bearer token was sent. `invalid_key` when the key or sign-in is unknown, revoked or expired — deliberately indistinguishable — or the sign-in names no organization you belong to (the `summary` says what to do). `invalid_request` when a required parameter is missing. `not_a_specific_part` when the input does not identify one specific part. `part_not_found` when no supplier lists that part number exactly — usually a typo or a partial number. `verification_unavailable` when we could not check whether the part is real, and so declined to describe it; temporary, safe to retry. `generation_failed` when the report could not be produced, or a search or a comparison could not be started. `bom_too_large` when one call carries more lines than the limit; `reason` states both numbers. `bom_not_found` when no BOM with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `bom_columns_not_found` when an uploaded file has no column we can identify as part numbers; `reason` lists the headers seen. `event_not_found` when no active event has that id. `rate_limited` when your organization has used its calls for this minute or this day; wait the seconds in the `Retry-After` header, then retry. `supplier_opted_out` when the supplier asked not to receive requests for quote from you, or from anyone through PartFinder. `send_failed` when the email could not be sent; nothing was stored, safe to retry. `rfq_not_found` when no request for quote with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `rfq_bounced` when the supplier's address could not receive the request; send a new request for quote to a working address. `message_refused` when the text was not sent; `summary` says what to change before sending again. `key_not_allowed` when a key that belongs to one of your customers calls an endpoint only your organization's own keys may call, or a caller signed in through an AI app manages keys or webhooks. `insufficient_scope` when an AI app signed in without the permission the call needs (`partfinder:read` to read, which includes looking up parts, alternates and events and uses credits for those; `partfinder:write` to change anything); the `summary` names it, and connecting the app again with it allowed fixes it. `app_disconnected` when the AI app the caller signed in through was disconnected in the console; signing in again does not help, allowing the app again in the console does. `key_not_found` when no live end-customer key with that id belongs to your organization. `key_name_taken` when a key with that name already exists in your organization, revoked keys included. `webhook_endpoint_not_found` when no webhook endpoint with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `not_a_parts_query` when a search query is not about a part; send a part number or describe the part. `search_not_found` when no search with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `compare_not_found` when no comparison with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `credits_exhausted` when your plan's credits for this month are used up; this request was not run and nothing was charged. Upgrade the plan at `billing_url`, then retry. `payment_method_required` when your organization is on pay as you go with no payment method; this request was not run and nothing was charged. Add a payment method or choose a plan at `billing_url`, then retry. `payment_failed` when pay as you go is paused because the last payment failed; this request was not run and nothing was charged. Update the payment method at `billing_url`, then retry. `usage_limit_reached` when your organization, on pay as you go, has reached its limit for unpaid usage; this request was not run and nothing was charged. Calls resume once the current payment goes through; follow it at `billing_url`. With a key made with `POST /v1/keys`, these four carry no `billing_url`: the `summary` asks your customer to contact your organization.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"summary":{"description":"One sentence you can relay to a user as-is, the same as `summary` on a successful response. Present whenever there is something useful to say about what went wrong.","type":"string","uniqueKey":"summary","typeLabel":"string"},"reason":{"description":"The specific detail behind the error.","type":"string","uniqueKey":"reason","typeLabel":"string"},"billing_url":{"description":"On `credits_exhausted`, `payment_method_required`, `payment_failed` and `usage_limit_reached`: the PartFinder console Billing page, where your organization manages its plan and payment method. Absent for a key made with `POST /v1/keys`, and for an organization whose plan is set by its contract.","type":"string","format":"uri","uniqueKey":"billing_url","typeLabel":"string\u003curi>"},"did_you_mean":{"description":"Real part numbers to retry with. On `not_a_specific_part` they are parts of the kind you described; on `part_not_found` they are the listed part numbers your input is a prefix of, so `TPS5433` returns TPS54331, TPS54332 and so on. Absent when there is nothing to suggest. Every entry is a real part number, never a guess.","type":"array","items":{"type":"string","uniqueKey":"did_you_mean.items.[INDEX]","typeLabel":"string"},"uniqueKey":"did_you_mean","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"credits_exhausted","summary":"Your organization's credits for this month are used up, so this request was not run. Upgrade your plan in the PartFinder console at https://console.partfinder.dev/settings/billing, then try again.","reason":"This request needs 1 credit and 0 are left.","billing_url":"https://console.partfinder.dev/settings/billing"},"examples":{"Example":{"title":"Example","value":{"error":"credits_exhausted","summary":"Your organization's credits for this month are used up, so this request was not run. Upgrade your plan in the PartFinder console at https://console.partfinder.dev/settings/billing, then try again.","reason":"This request needs 1 credit and 0 are left.","billing_url":"https://console.partfinder.dev/settings/billing"}}},"exampleType":"examples"}},"headers":{"X-RateLimit-Limit":{"description":"Calls allowed in the current window: the minute or the day, whichever has fewer calls left.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Remaining":{"description":"Calls left in that window.","schema":{"type":"integer","minimum":0}},"X-RateLimit-Reset":{"description":"Seconds until that window resets.","schema":{"type":"integer","minimum":1}}},"exampleType":"examples"},"9fefc2f5-f04f-4a98-a9a9-b8baab8f3ddd":{"description":"The caller signed in through an AI app without the permission this call needs (`partfinder:read` to read, which includes looking up parts, alternates and events and uses credits for those; `partfinder:write` to change anything); the error is `insufficient_scope`. Or the AI app was disconnected in the console; the error is `app_disconnected`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["authentication_required","invalid_key","invalid_request","not_a_specific_part","part_not_found","verification_unavailable","generation_failed","bom_too_large","bom_not_found","bom_columns_not_found","event_not_found","rate_limited","supplier_opted_out","send_failed","rfq_not_found","rfq_bounced","message_refused","key_not_allowed","insufficient_scope","app_disconnected","key_not_found","key_name_taken","webhook_endpoint_not_found","not_a_parts_query","search_not_found","compare_not_found","credits_exhausted","payment_method_required","payment_failed","usage_limit_reached"],"description":"`authentication_required` when no bearer token was sent. `invalid_key` when the key or sign-in is unknown, revoked or expired — deliberately indistinguishable — or the sign-in names no organization you belong to (the `summary` says what to do). `invalid_request` when a required parameter is missing. `not_a_specific_part` when the input does not identify one specific part. `part_not_found` when no supplier lists that part number exactly — usually a typo or a partial number. `verification_unavailable` when we could not check whether the part is real, and so declined to describe it; temporary, safe to retry. `generation_failed` when the report could not be produced, or a search or a comparison could not be started. `bom_too_large` when one call carries more lines than the limit; `reason` states both numbers. `bom_not_found` when no BOM with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `bom_columns_not_found` when an uploaded file has no column we can identify as part numbers; `reason` lists the headers seen. `event_not_found` when no active event has that id. `rate_limited` when your organization has used its calls for this minute or this day; wait the seconds in the `Retry-After` header, then retry. `supplier_opted_out` when the supplier asked not to receive requests for quote from you, or from anyone through PartFinder. `send_failed` when the email could not be sent; nothing was stored, safe to retry. `rfq_not_found` when no request for quote with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `rfq_bounced` when the supplier's address could not receive the request; send a new request for quote to a working address. `message_refused` when the text was not sent; `summary` says what to change before sending again. `key_not_allowed` when a key that belongs to one of your customers calls an endpoint only your organization's own keys may call, or a caller signed in through an AI app manages keys or webhooks. `insufficient_scope` when an AI app signed in without the permission the call needs (`partfinder:read` to read, which includes looking up parts, alternates and events and uses credits for those; `partfinder:write` to change anything); the `summary` names it, and connecting the app again with it allowed fixes it. `app_disconnected` when the AI app the caller signed in through was disconnected in the console; signing in again does not help, allowing the app again in the console does. `key_not_found` when no live end-customer key with that id belongs to your organization. `key_name_taken` when a key with that name already exists in your organization, revoked keys included. `webhook_endpoint_not_found` when no webhook endpoint with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `not_a_parts_query` when a search query is not about a part; send a part number or describe the part. `search_not_found` when no search with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `compare_not_found` when no comparison with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `credits_exhausted` when your plan's credits for this month are used up; this request was not run and nothing was charged. Upgrade the plan at `billing_url`, then retry. `payment_method_required` when your organization is on pay as you go with no payment method; this request was not run and nothing was charged. Add a payment method or choose a plan at `billing_url`, then retry. `payment_failed` when pay as you go is paused because the last payment failed; this request was not run and nothing was charged. Update the payment method at `billing_url`, then retry. `usage_limit_reached` when your organization, on pay as you go, has reached its limit for unpaid usage; this request was not run and nothing was charged. Calls resume once the current payment goes through; follow it at `billing_url`. With a key made with `POST /v1/keys`, these four carry no `billing_url`: the `summary` asks your customer to contact your organization.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"summary":{"description":"One sentence you can relay to a user as-is, the same as `summary` on a successful response. Present whenever there is something useful to say about what went wrong.","type":"string","uniqueKey":"summary","typeLabel":"string"},"reason":{"description":"The specific detail behind the error.","type":"string","uniqueKey":"reason","typeLabel":"string"},"billing_url":{"description":"On `credits_exhausted`, `payment_method_required`, `payment_failed` and `usage_limit_reached`: the PartFinder console Billing page, where your organization manages its plan and payment method. Absent for a key made with `POST /v1/keys`, and for an organization whose plan is set by its contract.","type":"string","format":"uri","uniqueKey":"billing_url","typeLabel":"string\u003curi>"},"did_you_mean":{"description":"Real part numbers to retry with. On `not_a_specific_part` they are parts of the kind you described; on `part_not_found` they are the listed part numbers your input is a prefix of, so `TPS5433` returns TPS54331, TPS54332 and so on. Absent when there is nothing to suggest. Every entry is a real part number, never a guess.","type":"array","items":{"type":"string","uniqueKey":"did_you_mean.items.[INDEX]","typeLabel":"string"},"uniqueKey":"did_you_mean","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"authentication_required","summary":"\u003cstring>","reason":"\u003cstring>","billing_url":"\u003cstring>","did_you_mean":["\u003cstring>"]}}},"exampleType":"generated"}},"headers":{"X-RateLimit-Limit":{"description":"Calls allowed in the current window: the minute or the day, whichever has fewer calls left.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Remaining":{"description":"Calls left in that window.","schema":{"type":"integer","minimum":0}},"X-RateLimit-Reset":{"description":"Seconds until that window resets.","schema":{"type":"integer","minimum":1}}},"exampleType":"generated"},"8310a08a-102f-4bfa-9f52-5bbd423982c8":{"description":"Your organization has used its calls for this minute or this day. Wait the number of seconds in `Retry-After`, then retry.","headers":{"Retry-After":{"description":"Seconds until the limit resets.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"Calls allowed in the current window: the minute or the day, whichever has fewer calls left.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Remaining":{"description":"Calls left in that window.","schema":{"type":"integer","minimum":0}},"X-RateLimit-Reset":{"description":"Seconds until that window resets.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["authentication_required","invalid_key","invalid_request","not_a_specific_part","part_not_found","verification_unavailable","generation_failed","bom_too_large","bom_not_found","bom_columns_not_found","event_not_found","rate_limited","supplier_opted_out","send_failed","rfq_not_found","rfq_bounced","message_refused","key_not_allowed","insufficient_scope","app_disconnected","key_not_found","key_name_taken","webhook_endpoint_not_found","not_a_parts_query","search_not_found","compare_not_found","credits_exhausted","payment_method_required","payment_failed","usage_limit_reached"],"description":"`authentication_required` when no bearer token was sent. `invalid_key` when the key or sign-in is unknown, revoked or expired — deliberately indistinguishable — or the sign-in names no organization you belong to (the `summary` says what to do). `invalid_request` when a required parameter is missing. `not_a_specific_part` when the input does not identify one specific part. `part_not_found` when no supplier lists that part number exactly — usually a typo or a partial number. `verification_unavailable` when we could not check whether the part is real, and so declined to describe it; temporary, safe to retry. `generation_failed` when the report could not be produced, or a search or a comparison could not be started. `bom_too_large` when one call carries more lines than the limit; `reason` states both numbers. `bom_not_found` when no BOM with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `bom_columns_not_found` when an uploaded file has no column we can identify as part numbers; `reason` lists the headers seen. `event_not_found` when no active event has that id. `rate_limited` when your organization has used its calls for this minute or this day; wait the seconds in the `Retry-After` header, then retry. `supplier_opted_out` when the supplier asked not to receive requests for quote from you, or from anyone through PartFinder. `send_failed` when the email could not be sent; nothing was stored, safe to retry. `rfq_not_found` when no request for quote with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `rfq_bounced` when the supplier's address could not receive the request; send a new request for quote to a working address. `message_refused` when the text was not sent; `summary` says what to change before sending again. `key_not_allowed` when a key that belongs to one of your customers calls an endpoint only your organization's own keys may call, or a caller signed in through an AI app manages keys or webhooks. `insufficient_scope` when an AI app signed in without the permission the call needs (`partfinder:read` to read, which includes looking up parts, alternates and events and uses credits for those; `partfinder:write` to change anything); the `summary` names it, and connecting the app again with it allowed fixes it. `app_disconnected` when the AI app the caller signed in through was disconnected in the console; signing in again does not help, allowing the app again in the console does. `key_not_found` when no live end-customer key with that id belongs to your organization. `key_name_taken` when a key with that name already exists in your organization, revoked keys included. `webhook_endpoint_not_found` when no webhook endpoint with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `not_a_parts_query` when a search query is not about a part; send a part number or describe the part. `search_not_found` when no search with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `compare_not_found` when no comparison with that id belongs to your organization (with a key made with `POST /v1/keys`, to that customer). `credits_exhausted` when your plan's credits for this month are used up; this request was not run and nothing was charged. Upgrade the plan at `billing_url`, then retry. `payment_method_required` when your organization is on pay as you go with no payment method; this request was not run and nothing was charged. Add a payment method or choose a plan at `billing_url`, then retry. `payment_failed` when pay as you go is paused because the last payment failed; this request was not run and nothing was charged. Update the payment method at `billing_url`, then retry. `usage_limit_reached` when your organization, on pay as you go, has reached its limit for unpaid usage; this request was not run and nothing was charged. Calls resume once the current payment goes through; follow it at `billing_url`. With a key made with `POST /v1/keys`, these four carry no `billing_url`: the `summary` asks your customer to contact your organization.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"summary":{"description":"One sentence you can relay to a user as-is, the same as `summary` on a successful response. Present whenever there is something useful to say about what went wrong.","type":"string","uniqueKey":"summary","typeLabel":"string"},"reason":{"description":"The specific detail behind the error.","type":"string","uniqueKey":"reason","typeLabel":"string"},"billing_url":{"description":"On `credits_exhausted`, `payment_method_required`, `payment_failed` and `usage_limit_reached`: the PartFinder console Billing page, where your organization manages its plan and payment method. Absent for a key made with `POST /v1/keys`, and for an organization whose plan is set by its contract.","type":"string","format":"uri","uniqueKey":"billing_url","typeLabel":"string\u003curi>"},"did_you_mean":{"description":"Real part numbers to retry with. On `not_a_specific_part` they are parts of the kind you described; on `part_not_found` they are the listed part numbers your input is a prefix of, so `TPS5433` returns TPS54331, TPS54332 and so on. Absent when there is nothing to suggest. Every entry is a real part number, never a guess.","type":"array","items":{"type":"string","uniqueKey":"did_you_mean.items.[INDEX]","typeLabel":"string"},"uniqueKey":"did_you_mean","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"authentication_required","summary":"\u003cstring>","reason":"\u003cstring>","billing_url":"\u003cstring>","did_you_mean":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ff9e9b82-f90e-4a4b-b1b1-0a91012e4b98":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key created in the PartFinder console at https://console.partfinder.dev, or a customer key created with `POST /v1/keys`. Send as `Authorization: Bearer \u003ckey>`. Revocation takes effect within approximately one minute.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"0fd180cc-370f-4a5d-b567-97592ff7113e":{"url":"https://api.partfinder.dev"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key created in the PartFinder console at https://console.partfinder.dev, or a customer key created with `POST /v1/keys`. Send as `Authorization: Bearer \u003ckey>`. Revocation takes effect within approximately one minute.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key created in the PartFinder console at https://console.partfinder.dev, or a customer key created with `POST /v1/keys`. Send as `Authorization: Bearer \u003ckey>`. Revocation takes effect within approximately one minute.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"https://api.partfinder.dev/v1/openapi.json"},"subdomain":"partfinder","siteName":"PartFinder API","title":"List disruption events - PartFinder API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-01T08:04:57.870Z","originalFileLocation":"api-reference/events/list-disruption-events.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When next_cursor is not null, call again with cursor set to it for the next page.\">\u003cmeta data-mint-head name=\"application-name\" content=\"PartFinder API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List disruption events - PartFinder API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When next_cursor is not null, call again with cursor set to it for the next page.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PartFinder API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.partfinder.dev/api-reference/events/list-disruption-events\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://partfinder.mintlify.app/_mintlify/api/og/v2?division=Events\u0026amp;title=List+disruption+events\u0026amp;description=Active+supply-chain+disruption+events%2C+newest+first%2C+one+page+at+a+time%3A+what+happened%2C+where%2C+how+serious%2C+which+component+categories+it+affects%2C+what+it+means\u0026amp;theme=2915c8e57862f94fe512378b\u0026amp;signature=a8e0c8e6d17b6c8e11df684ec7523957dc511f00fa8f7ea825c5037ba6261abe\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List disruption events - PartFinder API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When next_cursor is not null, call again with cursor set to it for the next page.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://partfinder.mintlify.app/_mintlify/api/og/v2?division=Events\u0026amp;title=List+disruption+events\u0026amp;description=Active+supply-chain+disruption+events%2C+newest+first%2C+one+page+at+a+time%3A+what+happened%2C+where%2C+how+serious%2C+which+component+categories+it+affects%2C+what+it+means\u0026amp;theme=2915c8e57862f94fe512378b\u0026amp;signature=a8e0c8e6d17b6c8e11df684ec7523957dc511f00fa8f7ea825c5037ba6261abe\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/partfinder/EFtN-rIWwyuXX5BE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PartFinder API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1D4ED8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.partfinder.dev/api-reference/events/list-disruption-events\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/events/list-disruption-events.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.partfinder.dev/#organization\",\"name\":\"PartFinder API\",\"url\":\"https://docs.partfinder.dev\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.partfinder.dev#website\",\"name\":\"PartFinder API\",\"url\":\"https://docs.partfinder.dev\",\"publisher\":{\"@id\":\"https://docs.partfinder.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events#webpage\",\"url\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events\",\"name\":\"List disruption events\",\"description\":\"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When next_cursor is not null, call again with cursor set to it for the next page.\",\"dateModified\":\"2026-11-01T08:04:57.870Z\",\"isPartOf\":{\"@id\":\"https://docs.partfinder.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.partfinder.dev/api-reference/authentication/verify-an-api-key\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List disruption events\",\"item\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events#apireference\",\"headline\":\"List disruption events\",\"name\":\"List disruption events\",\"description\":\"Active supply-chain disruption events, newest first, one page at a time: what happened, where, how serious, which component categories it affects, what it means for a buyer, and the news reports of it. Filter by country, region, category or how recently it was first recorded. When next_cursor is not null, call again with cursor set to it for the next page.\",\"url\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events\",\"mainEntityOfPage\":{\"@id\":\"https://docs.partfinder.dev/api-reference/events/list-disruption-events#webpage\"},\"dateModified\":\"2026-11-01T08:04:57.870Z\",\"publisher\":{\"@id\":\"https://docs.partfinder.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.partfinder.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PartFinder API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PartFinder API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"PartFinder REST API: reference overview and endpoints","sidebarTitle":"Overview","href":"/api-reference/overview"}]},{"group":"Endpoints","pages":[{"group":"Authentication","pages":[{"title":"Verify an API key","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/ping","href":"/api-reference/authentication/verify-an-api-key"}]},{"group":"Parts","pages":[{"title":"Research a part","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/parts","href":"/api-reference/parts/research-a-part"},{"title":"Find alternate parts","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/alternates","href":"/api-reference/parts/find-alternate-parts"}]},{"group":"BOMs","pages":[{"title":"List your BOMs","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/bom","href":"/api-reference/boms/list-your-boms"},{"title":"Analyze a BOM","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/bom","href":"/api-reference/boms/analyze-a-bom"},{"title":"Upload a BOM file","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/bom/upload","href":"/api-reference/boms/upload-a-bom-file"},{"title":"Get a BOM report","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/bom/{id}","href":"/api-reference/boms/get-a-bom-report"},{"title":"Delete a BOM","description":"Removes the BOM and every line. Irreversible.","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json delete /v1/bom/{id}","href":"/api-reference/boms/delete-a-bom"}]},{"group":"Events","pages":[{"title":"List disruption events","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/events","href":"/api-reference/events/list-disruption-events"},{"title":"Get a disruption event","description":"One event in full. The `id` is the one `GET /v1/events`, `/v1/parts` and `/v1/bom` return.","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/events/{id}","href":"/api-reference/events/get-a-disruption-event"},{"title":"Disruptions by country","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/events/countries","href":"/api-reference/events/disruptions-by-country"},{"title":"Port and sea-route activity","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/events/shipping","href":"/api-reference/events/port-and-sea-route-activity"}]},{"group":"Search","pages":[{"title":"List your searches","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/search","href":"/api-reference/search/list-your-searches"},{"title":"Search for parts","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/search","href":"/api-reference/search/search-for-parts"},{"title":"Get a search","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/search/{id}","href":"/api-reference/search/get-a-search"},{"title":"Delete a search","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json delete /v1/search/{id}","href":"/api-reference/search/delete-a-search"}]},{"group":"Compare","pages":[{"title":"List your comparisons","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/compare","href":"/api-reference/compare/list-your-comparisons"},{"title":"Compare parts","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/compare","href":"/api-reference/compare/compare-parts"},{"title":"Get a comparison","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/compare/{id}","href":"/api-reference/compare/get-a-comparison"},{"title":"Delete a comparison","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json delete /v1/compare/{id}","href":"/api-reference/compare/delete-a-comparison"}]},{"group":"RFQs","pages":[{"title":"List your requests for quote","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/rfq","href":"/api-reference/rfqs/list-your-requests-for-quote"},{"title":"Send a request for quote","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/rfq","href":"/api-reference/rfqs/send-a-request-for-quote"},{"title":"Get a request for quote","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/rfq/{id}","href":"/api-reference/rfqs/get-a-request-for-quote"},{"title":"Delete a request for quote","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json delete /v1/rfq/{id}","href":"/api-reference/rfqs/delete-a-request-for-quote"},{"title":"Send a message in a request for quote","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/rfq/{id}/messages","href":"/api-reference/rfqs/send-a-message-in-a-request-for-quote"}]},{"group":"Keys","pages":[{"title":"List customer keys","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/keys","href":"/api-reference/keys/list-customer-keys"},{"title":"Create a key for a customer","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/keys","href":"/api-reference/keys/create-a-key-for-a-customer"},{"title":"Revoke a customer key","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json delete /v1/keys/{id}","href":"/api-reference/keys/revoke-a-customer-key"}]},{"group":"Webhooks","pages":[{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json get /v1/webhooks","href":"/api-reference/webhooks/list-webhook-endpoints"},{"title":"Register a webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json post /v1/webhooks","href":"/api-reference/webhooks/register-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.partfinder.dev/v1/openapi.json delete /v1/webhooks/{id}","href":"/api-reference/webhooks/delete-a-webhook-endpoint"},{"title":"A supplier replied","version":null,"deprecated":null,"openapi":"https://api.partfinder.dev/v1/openapi.json webhook rfq.reply_received","href":"/api-reference/webhooks/a-supplier-replied"},{"title":"A request for quote bounced","version":null,"deprecated":null,"openapi":"https://api.partfinder.dev/v1/openapi.json webhook rfq.bounced","href":"/api-reference/webhooks/a-request-for-quote-bounced"},{"title":"A search ended","version":null,"deprecated":null,"openapi":"https://api.partfinder.dev/v1/openapi.json webhook search.completed","href":"/api-reference/webhooks/a-search-ended"},{"title":"A comparison ended","version":null,"deprecated":null,"openapi":"https://api.partfinder.dev/v1/openapi.json webhook compare.completed","href":"/api-reference/webhooks/a-comparison-ended"}]}]}]}]},"basePath":"","title":"List disruption events - PartFinder API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Bevw23-4.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}