Fetches one plant by its Emidat UUID. 404 if no active plant carries
the id; 403 if the plant exists but the key’s plant restriction does
not include it.
GET
/
v2
/
plants
/
{id}
Get plant
curl --request GET \ --url https://api.emidat.com/v2/plants/{id} \ --header 'X-API-Key: <api-key>'
Per-manufacturer API key in the X-API-Key header, format
emidat-{key_id}-{secret} where key_id is a random public handle.
Issued by an owner in the Emidat
dashboard; carries its own permission scopes, optional plant
restrictions, and optional expiry. A revoked, expired, or unknown key
returns 401. See the Authentication guide for details.
A postal address. country is the only field always present; the rest
are null when they were never captured. This object holds the country
— the resources carrying an address do not repeat it alongside.
Show child attributes
⌘I
{"docsConfig":{"theme":"willow","$schema":"https://mintlify.com/docs.json","name":"Emidat API","colors":{"primary":"#2929CC","light":"#7A9EFF","dark":"#3A41FF"},"logo":{"light":"https://mintcdn.com/emidat/KhjEpdL-EUrz1H4P/logo/dark.svg?fit=max\u0026auto=format\u0026n=KhjEpdL-EUrz1H4P\u0026q=85\u0026s=35ce6850a5591a143fb8936475924122","dark":"https://mintcdn.com/emidat/KhjEpdL-EUrz1H4P/logo/light.svg?fit=max\u0026auto=format\u0026n=KhjEpdL-EUrz1H4P\u0026q=85\u0026s=baa6adbdb91f8c15483fb851ef7340f0"},"favicon":"https://mintcdn.com/emidat/YjmcwD6G99MPB3DL/favicon.svg?fit=max\u0026auto=format\u0026n=YjmcwD6G99MPB3DL\u0026q=85\u0026s=a385fe226f3bef5e55f05bc1451a416f","appearance":{"default":"light","strict":true},"fonts":{"heading":{"family":"CircularStd","weight":700,"source":"fonts/CircularStd-Bold.woff2","format":"woff2"},"body":{"family":"CircularStd","weight":400,"source":"fonts/CircularStd-Book.woff2","format":"woff2"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","codeblocks":"dark","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"emidat","hasAudioNarration":false,"actualSubdomain":"emidat","customDomains":["docs.emidat.com"],"gitSource":{"type":"github","owner":"emidat","repo":"emidat-api","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae375abcedd4bb159cb270d","collectionId":"5195b532-a277-486d-9bcf-94deaf8e2e3c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae375abcedd4bb159cb270d"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae375abcedd4bb159cb270d","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Product Instances","count":9},{"language":"default","tag":"Composites","count":5},{"language":"default","tag":"Prechain Products","count":5},{"language":"default","tag":"Projects","count":5},{"language":"default","tag":"Silos","count":5},{"language":"default","tag":"Supplier Companies","count":5},{"language":"default","tag":"Supplier Plants","count":5},{"language":"default","tag":"Supplier Products","count":5},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"Plants","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--emidat-surface-primary:#ffffff;--emidat-stroke-primary:#e0e0e0;--emidat-state-hover:rgb(0 0 0 / 4%);--emidat-state-info-active:rgb(58 65 255 / 8%);--emidat-surface-neutral:#f2f0e9;--emidat-content-neutral:#665d56;--emidat-surface-accent:#dcff1d;--emidat-surface-accent-soft:#f7ffc2;--emidat-stroke-accent:#72a300;--emidat-content-accent:#243300;--emidat-surface-info:#d9e8ff;--emidat-content-info:#2929cc;--emidat-surface-warn:#ffeac9;--emidat-content-warn:#b85300;--emidat-surface-alt:#ede0ff;--emidat-content-alt:#601fc2;--emidat-shadow-sm:0 2px 10px 0 rgb(88 107 86 / 8%), 0 1px 2px 0 rgb(88 107 86 / 8%);--emidat-page-width:92rem}#navbar>div:last-child,div:has(>#content-area){max-width:var(--emidat-page-width);margin-inline:auto}@media (min-width:1024px){#sidebar{left:max(0px,calc((100% - var(--emidat-page-width))/2))}}#navbar .nav-logo{height:1.75rem}#background-color{background-color:var(--emidat-surface-primary)}#header,#header *,#table-of-contents,#table-of-contents *{text-align:left}#table-of-contents{align-items:flex-start}#sidebar a:hover{background-color:var(--emidat-state-hover)}#sidebar a[aria-current=page]{background-color:var(--emidat-state-info-active)}@font-face{font-family:\"CircularStd\";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/CircularStd-Medium.woff2) format(\"woff2\")}[class*=rounded]:not([class*=rounded-full]){border-radius:0!important}#content-area :is(h1, h2, h3, h4, h5),#page-title h1{font-weight:700}.accordion,.callout,.card,.field,.frame,.tile{border-color:var(--emidat-stroke-primary);box-shadow:none}.card:hover{box-shadow:var(--emidat-shadow-sm)}#topbar-cta-button,.tryit-button{background-color:var(--emidat-surface-accent);border:1px solid var(--emidat-stroke-accent);color:var(--emidat-content-accent);font-weight:700}.tryit-button .icon{background-color:currentColor}.card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.card-header-title{display:inline-flex;align-items:center;gap:.5rem;font-weight:700}.badge{flex-shrink:0;padding:.1rem .55rem;font-size:.7rem;font-weight:700;white-space:nowrap}.badge-neutral{background:var(--emidat-surface-neutral);color:var(--emidat-content-neutral)}.badge-accent{background:var(--emidat-surface-accent-soft);color:var(--emidat-content-accent)}.badge-warn{background:var(--emidat-surface-warn);color:var(--emidat-content-warn)}.badge-info{background:var(--emidat-surface-info);color:var(--emidat-content-info)}.badge-alt{background:var(--emidat-surface-alt);color:var(--emidat-content-alt)}.nav-tag-pill-text[data-nav-tag=Preview]{color:var(--emidat-content-warn)!important;background-color:var(--emidat-surface-warn)!important}"}],"page":{"pagePath":"api-reference/plants/get","slug":"/api-reference/plants/get","pageMetadata":{"title":"Get plant","openapi":"GET /v2/plants/{id}","description":"Fetches one plant by its Emidat UUID. `404` if no active plant carries\nthe id; `403` if the plant exists but the key's plant restriction does\nnot include it.\n","href":"/api-reference/plants/get"},"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: [\"Fetches one plant by its Emidat UUID. \", _jsx(_components.code, {\n children: \"404\"\n }), \" if no active plant carries\\nthe id; \", _jsx(_components.code, {\n children: \"403\"\n }), \" if the plant exists but the key’s plant restriction does\\nnot include it.\"]\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":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Get plant","openapi":"GET /v2/plants/{id}","description":"Fetches one plant by its Emidat UUID. `404` if no active plant carries\nthe id; `403` if the plant exists but the key's plant restriction does\nnot include it.\n","href":"/api-reference/plants/get"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"v2_plants_get","summary":"Get plant","description":"Fetches one plant by its Emidat UUID. `404` if no active plant carries\nthe id; `403` if the plant exists but the key's plant restriction does\nnot include it.\n","tags":["Plants"],"parameters":["f446a538-0672-4b57-85d5-e612a4b885ee"],"responses":{"200":"f1202094-9e8b-433b-ad9f-1224f49e2766","401":"f164b39e-1090-4e73-bd47-b40addd04f6d","403":"3b51e852-a5ea-4edf-932d-46b40a84ac4c","404":"d23e467b-cbca-461f-a03c-37563163cda7","422":"a1375a1d-b3fa-4230-88ab-17fc0236e3ee","500":"7e28e890-ab7a-4883-aaec-31396c9446f1"},"method":"get","type":"path","servers":["6809999f-d857-4eb4-b661-af63bf125552"],"security":["651b8ccf-c117-4c26-b67b-5c3cdf3d2832"],"path":"/v2/plants/{id}","baseUrlOptions":["https://api.emidat.com"],"title":"Get plant","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f446a538-0672-4b57-85d5-e612a4b885ee":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"UUID of the plant.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"UUID of the plant."}},"responses":{"f1202094-9e8b-433b-ad9f-1224f49e2766":{"description":"Plant.","content":{"application/json":{"schema":{"type":"object","required":["id","external_id","name","address"],"properties":{"id":{"type":"string","format":"uuid","description":"Emidat UUID of the plant. Use this as `plant_id` in request bodies.","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"external_id":{"oneOf":[{"type":"string","description":"Your own code for this plant, set on the Emidat UI. `null` when none is set.","isRequired":true,"uniqueKey":"external_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own code for this plant, set on the Emidat UI. `null` when none is set.","isRequired":true,"uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"external_id","typeLabel":"string | null"},"name":{"type":"string","example":"TestPlant Munich","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"address":{"type":"object","description":"A postal address. `country` is the only field always present; the rest\nare `null` when they were never captured. This object holds the country\n— the resources carrying an address do not repeat it alongside.\n","required":["country","city","latitude","longitude","street","house_number","postal_code","state","formatted_address"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"DE","isRequired":true,"uniqueKey":"address.country","typeLabel":"string"},"city":{"oneOf":[{"type":"string","example":"Munich","isRequired":true,"uniqueKey":"address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Munich","isRequired":true,"uniqueKey":"address.city.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.city","typeLabel":"string | null"},"latitude":{"oneOf":[{"type":"number","example":48.1351,"isRequired":true,"uniqueKey":"address.latitude.oneOf.0","typeLabel":"number"},{"type":"null","example":48.1351,"isRequired":true,"uniqueKey":"address.latitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.latitude","typeLabel":"number | null"},"longitude":{"oneOf":[{"type":"number","example":11.575,"isRequired":true,"uniqueKey":"address.longitude.oneOf.0","typeLabel":"number"},{"type":"null","example":11.575,"isRequired":true,"uniqueKey":"address.longitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.longitude","typeLabel":"number | null"},"street":{"oneOf":[{"type":"string","example":"Musterstraße","isRequired":true,"uniqueKey":"address.street.oneOf.0","typeLabel":"string"},{"type":"null","example":"Musterstraße","isRequired":true,"uniqueKey":"address.street.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.street","typeLabel":"string | null"},"house_number":{"oneOf":[{"type":"string","example":"12","isRequired":true,"uniqueKey":"address.house_number.oneOf.0","typeLabel":"string"},{"type":"null","example":"12","isRequired":true,"uniqueKey":"address.house_number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.house_number","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"80331","isRequired":true,"uniqueKey":"address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"80331","isRequired":true,"uniqueKey":"address.postal_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.postal_code","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","example":"Bavaria","isRequired":true,"uniqueKey":"address.state.oneOf.0","typeLabel":"string"},{"type":"null","example":"Bavaria","isRequired":true,"uniqueKey":"address.state.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.state","typeLabel":"string | null"},"formatted_address":{"oneOf":[{"type":"string","description":"Human-readable one-line rendering of the address.","example":"Musterstraße 12, 80331 Munich, Germany","isRequired":true,"uniqueKey":"address.formatted_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable one-line rendering of the address.","example":"Musterstraße 12, 80331 Munich, Germany","isRequired":true,"uniqueKey":"address.formatted_address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"address.formatted_address","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"address","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","external_id":"\u003cstring>","name":"TestPlant Munich","address":{"country":"DE","city":"Munich","latitude":48.1351,"longitude":11.575,"street":"Musterstraße","house_number":"12","postal_code":"80331","state":"Bavaria","formatted_address":"Musterstraße 12, 80331 Munich, Germany"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f164b39e-1090-4e73-bd47-b40addd04f6d":{"description":"No credentials; or the key is malformed, unknown, revoked, or expired. The\nresponse is uniform and does not reveal which check failed.\n","content":{"application/json":{"schema":{"type":"object","required":["msg","err_code"],"properties":{"msg":{"type":"string","description":"Human-readable explanation, for logs and operators. Do not parse it.","example":"supplier product requires a supplier plant","isRequired":true,"uniqueKey":"msg","typeLabel":"string"},"err_code":{"type":"string","description":"Stable, machine-readable error code — branch on this, never on `msg`.\nThe set may grow over time; treat an unrecognized code as\nnon-retryable and surface it to an operator. The enum lists every\ncode the platform can emit; only a subset is reachable per\nendpoint — see [Errors](/errors) for the actionable catalog.\n\n`LcaRecomputeJob.err_code` reports failures from this same `err_*`\nnamespace. `LcaBlocker.err_code` does not — those values are a\nseparate, disjoint set.\n","example":"err_supplier_product_missing_supplier_plant","enum":["err_invalid_query","err_invalid_cursor","err_stale_cursor","err_history_temporarily_unavailable","err_emigo_daily_limit_reached","err_not_defined","err_not_found","err_not_valid","err_not_authenticated","err_permission_denied","err_account_frozen","err_declaration_not_completed","err_declaration_not_regenerable","err_epd_document_already_exists","err_invalid_product_ids","err_generate_products_limit","err_plant_missing_product_category","err_plant_incomplete_address","err_plant_incomplete_company_fields","err_plant_categories_not_covering_processes","err_plant_categories_not_covering_active_products","err_plant_invalid_category_id","err_plant_invalid_balancing_authority","err_plant_balancing_authority_non_us","err_plant_custom_electricity_mix_not_allowed","err_plant_electricity_mix_mismatch","err_plant_negative_electricity_values","err_plant_electricity_without_mix","err_electricity_plant_production_mismatch","err_lca_mass_balance","err_lca_allocation_data_incomplete","err_lca_production_output_mismatch","err_process_output_below_linked_output","err_product_mass_larger_than_recipe_mass","err_product_category_not_allowed_at_plant","err_water_not_scoped_but_wastewater_is_scoped","err_more_wastewater_than_water","err_project_no_products","err_invalid_product_quantity","err_duplicate_product","err_product_missing_gwp_total","err_elementary_deactivated","err_product_missing_supplier","err_epd_unusable","err_epd_service","err_lca_update_not_queued","err_lca_export_not_ready","err_not_ready_for_epd","err_material_not_hazardous","err_material_no_limited_lifetime","err_invalid_lifetime_years","err_invalid_secondary_percentage_range","err_secondary_percentage_not_customizable","err_moisture_content_not_bio_based","err_invalid_moisture_content_range","err_declaration_not_exists","err_declaration_not_under_review","err_no_manufacturer","err_company_setup_required","err_account_setup_complete","err_wrong_email_domain","err_user_exists","err_inviter_email_not_found","err_composite_used_in_supplier_products","err_composite_name_exists","err_plant_io_invalid_field","err_plant_io_field_not_switchable","err_plant_io_value_not_scoped","err_field_is_plant_level","err_negative_io_value","err_invalid_packaging_material","err_plant_io_mixed_allocation_groups","err_inies_sworn_statement_exists","err_supplier_in_use","err_supplier_name_exists","err_supplier_plant_in_use","err_supplier_plant_name_exists","err_supplier_product_in_recipe","err_supplier_product_in_silo","err_supplier_product_scoped_as_packaging","err_supplier_product_declared_on_a_product","err_packaging_scoped_by_the_process","err_packaging_declared_on_a_product","err_packaging_on_a_byproduct","err_supplier_product_missing_supplier_plant","err_silo_in_use","err_silo_name_exists","err_elementary_unknown_matching","err_product_document_not_deletable","err_product_has_declarations","err_product_instance_in_recipe","err_product_instance_has_declarations","err_prechain_product_in_recipe","err_prechain_product_exists","err_prechain_product_not_main_product","err_ccf_exists","err_ccf_not_completed","err_external_id_exists","err_external_owner_invitation_epd_taken","err_external_owner_invitation_exists","err_external_owner_invitation_not_editable","err_external_owner_invitation_not_withdrawable","err_idempotency_key_reused","err_idempotency_in_progress","err_address_not_found","err_customer_not_found","err_geocoding_unavailable","err_bulk_upload_invalid_file","err_bulk_upload_duplicate_headers","err_bulk_upload_ambiguous_headers","err_bulk_upload_ambiguous_values","err_bulk_upload_ambiguous_header_language","err_bulk_upload_mixed_header_languages","err_bulk_upload_language_mismatch","err_bulk_upload_value_language_mismatch","err_bulk_upload_obsolete_template","err_bulk_upload_missing_translation","err_material_type_not_found","err_material_type_unvalidated","err_unvalidated_material_type_not_found","err_material_type_not_configured","err_unit_not_allowed_for_material","err_production_process_not_found","err_multiple_production_processes","err_process_plant_mismatch","err_material_process_incompatible","err_process_output_kind_change","err_production_process_required","err_composite_not_allowed_in_recipe","err_elementary_not_allowed_in_recipe","err_elementary_already_allowed_for_product","err_elementary_request_idempotency_conflict","err_prechain_circular_reference","err_product_type_no_recipe","err_product_mass_not_set","err_required_cell_empty","err_plant_not_found","err_plant_no_access","err_multiple_plants","err_product_already_exists","err_multiple_products","err_instance_material_type_mismatch","err_instance_unit_mismatch","err_instance_id_belongs_to_other","err_instance_id_differs_from_stored","err_duplicate_instance_id","err_instance_updated","err_bulk_change","err_bulk_unchanged","err_bulk_skipped_existing","err_instance_years_removed","err_annual_year_outside_stored_period","err_linked_product_type_mismatch","err_tech_spec_not_recognized","err_recipe_incomplete","err_annual_output_invalid","err_annual_economic_value_invalid","err_annual_output_year_required","err_annual_output_year_invalid","err_annual_output_year_duplicate","err_annual_output_year_outside_period","err_orphan_row","err_duplicate_tech_spec","err_empty_sheet","err_no_products","err_tech_spec_invalid_value","err_dtp_service","err_data_translation_wrong_step","err_data_translation_invalid_plant_mapping","err_data_translation_unresolved_reference","err_data_translation_incomplete","err_data_translation_material_not_available","err_data_translation_duplicate_supplier_name","err_recycled_content_proof_missing","err_ppwr_declaration_exists","err_ppwr_declaration_editable_exists","err_ppwr_declaration_frozen","err_ppwr_doc_number_unavailable","err_ppwr_variant_mass_invalid","err_ppwr_variant_dimension_invalid","err_ppwr_variant_material_repeated","err_ppwr_variant_material_type","err_ppwr_invalid_field_key","err_ppwr_supplier_request_not_packaging_manufacturer","err_ppwr_supplier_request_pending","err_ppwr_supplier_request_not_pending","err_ppwr_field_not_requested","err_ppwr_document_limit_reached","err_ppwr_generation_not_packaging_manufacturer","err_ppwr_trial_document_limit_reached","err_ppwr_declaration_incomplete","err_ppwr_invalid_signatory","err_ppwr_invitation_send_failed","err_ppwr_supplier_link_placeholder_missing","err_ppwr_supplier_subject_missing","err_ppwr_supplier_email_missing","err_ppwr_verification_code_limit","err_ppwr_verification_code_send_failed","err_ppwr_email_not_verified","err_ppwr_attestation_required","err_ppwr_document_not_deletable","err_proof_document_limit","err_proof_size_limit","err_supplier_address_country_only","err_supplier_address_ignored","err_supplier_address_not_found","err_transport_distance_unresolved","err_transport_modality_duplicate","err_transport_modality_invalid","err_transport_route_unavailable","err_transport_missing_coordinates","err_transport_no_route","err_transport_same_address","err_transport_route_in_use","err_transport_route_name_exists","err_transport_route_invalid_polyline","err_transport_route_source_ambiguous","err_transport_route_no_materials_selected","err_transport_route_wrong_lane","err_transport_route_missing_source","err_reauthentication_required","err_two_factor_required","err_entitlement_limit_reached","err_program_operator_not_entitled","err_product_category_not_entitled","err_product_category_paused","err_translation_package_required","err_epd_tier_required","err_prechain_category_not_publishable","err_self_upgrade_not_offered","err_self_upgrade_request_required","err_self_upgrade_limit_changed","err_self_upgrade_unavailable","err_self_upgrade_in_progress","err_self_upgrade_already_requested","err_self_upgrade_offer_changed","err_upgrade_approval_not_pending","err_translation_unavailable"],"isRequired":true,"uniqueKey":"err_code","typeLabel":"enum\u003cstring>"},"entitlement_limit":{"oneOf":[{"type":"object","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","required":["dimension","usage","limit"],"properties":{"dimension":{"type":"string","description":"The set may grow as more dimensions become enforced — treat an\nunrecognized value like the generic limit error.\n","enum":["users","plants","product_instances","published_epds"],"isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.dimension","typeLabel":"enum\u003cstring>"},"usage":{"type":"integer","description":"What the account currently uses in this dimension.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.usage","typeLabel":"integer"},"limit":{"type":"integer","description":"What the license allows.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.limit","typeLabel":"integer"}},"uniqueKey":"entitlement_limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","uniqueKey":"entitlement_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"entitlement_limit","typeLabel":"object | null"},"product_categories":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"product_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"product_categories","typeLabel":"string[] | null"},"epd_category":{"oneOf":[{"type":"integer","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.0","typeLabel":"integer"},{"type":"null","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"epd_category","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"msg":"supplier product requires a supplier plant","err_code":"err_supplier_product_missing_supplier_plant","entitlement_limit":{"dimension":"users","usage":123,"limit":123},"product_categories":["\u003cstring>"],"epd_category":123}}},"exampleType":"generated"}},"exampleType":"generated"},"3b51e852-a5ea-4edf-932d-46b40a84ac4c":{"description":"A valid key lacked the required permission, or targeted a resource outside\nits access.\n","content":{"application/json":{"schema":{"type":"object","required":["msg","err_code"],"properties":{"msg":{"type":"string","description":"Human-readable explanation, for logs and operators. Do not parse it.","example":"supplier product requires a supplier plant","isRequired":true,"uniqueKey":"msg","typeLabel":"string"},"err_code":{"type":"string","description":"Stable, machine-readable error code — branch on this, never on `msg`.\nThe set may grow over time; treat an unrecognized code as\nnon-retryable and surface it to an operator. The enum lists every\ncode the platform can emit; only a subset is reachable per\nendpoint — see [Errors](/errors) for the actionable catalog.\n\n`LcaRecomputeJob.err_code` reports failures from this same `err_*`\nnamespace. `LcaBlocker.err_code` does not — those values are a\nseparate, disjoint set.\n","example":"err_supplier_product_missing_supplier_plant","enum":["err_invalid_query","err_invalid_cursor","err_stale_cursor","err_history_temporarily_unavailable","err_emigo_daily_limit_reached","err_not_defined","err_not_found","err_not_valid","err_not_authenticated","err_permission_denied","err_account_frozen","err_declaration_not_completed","err_declaration_not_regenerable","err_epd_document_already_exists","err_invalid_product_ids","err_generate_products_limit","err_plant_missing_product_category","err_plant_incomplete_address","err_plant_incomplete_company_fields","err_plant_categories_not_covering_processes","err_plant_categories_not_covering_active_products","err_plant_invalid_category_id","err_plant_invalid_balancing_authority","err_plant_balancing_authority_non_us","err_plant_custom_electricity_mix_not_allowed","err_plant_electricity_mix_mismatch","err_plant_negative_electricity_values","err_plant_electricity_without_mix","err_electricity_plant_production_mismatch","err_lca_mass_balance","err_lca_allocation_data_incomplete","err_lca_production_output_mismatch","err_process_output_below_linked_output","err_product_mass_larger_than_recipe_mass","err_product_category_not_allowed_at_plant","err_water_not_scoped_but_wastewater_is_scoped","err_more_wastewater_than_water","err_project_no_products","err_invalid_product_quantity","err_duplicate_product","err_product_missing_gwp_total","err_elementary_deactivated","err_product_missing_supplier","err_epd_unusable","err_epd_service","err_lca_update_not_queued","err_lca_export_not_ready","err_not_ready_for_epd","err_material_not_hazardous","err_material_no_limited_lifetime","err_invalid_lifetime_years","err_invalid_secondary_percentage_range","err_secondary_percentage_not_customizable","err_moisture_content_not_bio_based","err_invalid_moisture_content_range","err_declaration_not_exists","err_declaration_not_under_review","err_no_manufacturer","err_company_setup_required","err_account_setup_complete","err_wrong_email_domain","err_user_exists","err_inviter_email_not_found","err_composite_used_in_supplier_products","err_composite_name_exists","err_plant_io_invalid_field","err_plant_io_field_not_switchable","err_plant_io_value_not_scoped","err_field_is_plant_level","err_negative_io_value","err_invalid_packaging_material","err_plant_io_mixed_allocation_groups","err_inies_sworn_statement_exists","err_supplier_in_use","err_supplier_name_exists","err_supplier_plant_in_use","err_supplier_plant_name_exists","err_supplier_product_in_recipe","err_supplier_product_in_silo","err_supplier_product_scoped_as_packaging","err_supplier_product_declared_on_a_product","err_packaging_scoped_by_the_process","err_packaging_declared_on_a_product","err_packaging_on_a_byproduct","err_supplier_product_missing_supplier_plant","err_silo_in_use","err_silo_name_exists","err_elementary_unknown_matching","err_product_document_not_deletable","err_product_has_declarations","err_product_instance_in_recipe","err_product_instance_has_declarations","err_prechain_product_in_recipe","err_prechain_product_exists","err_prechain_product_not_main_product","err_ccf_exists","err_ccf_not_completed","err_external_id_exists","err_external_owner_invitation_epd_taken","err_external_owner_invitation_exists","err_external_owner_invitation_not_editable","err_external_owner_invitation_not_withdrawable","err_idempotency_key_reused","err_idempotency_in_progress","err_address_not_found","err_customer_not_found","err_geocoding_unavailable","err_bulk_upload_invalid_file","err_bulk_upload_duplicate_headers","err_bulk_upload_ambiguous_headers","err_bulk_upload_ambiguous_values","err_bulk_upload_ambiguous_header_language","err_bulk_upload_mixed_header_languages","err_bulk_upload_language_mismatch","err_bulk_upload_value_language_mismatch","err_bulk_upload_obsolete_template","err_bulk_upload_missing_translation","err_material_type_not_found","err_material_type_unvalidated","err_unvalidated_material_type_not_found","err_material_type_not_configured","err_unit_not_allowed_for_material","err_production_process_not_found","err_multiple_production_processes","err_process_plant_mismatch","err_material_process_incompatible","err_process_output_kind_change","err_production_process_required","err_composite_not_allowed_in_recipe","err_elementary_not_allowed_in_recipe","err_elementary_already_allowed_for_product","err_elementary_request_idempotency_conflict","err_prechain_circular_reference","err_product_type_no_recipe","err_product_mass_not_set","err_required_cell_empty","err_plant_not_found","err_plant_no_access","err_multiple_plants","err_product_already_exists","err_multiple_products","err_instance_material_type_mismatch","err_instance_unit_mismatch","err_instance_id_belongs_to_other","err_instance_id_differs_from_stored","err_duplicate_instance_id","err_instance_updated","err_bulk_change","err_bulk_unchanged","err_bulk_skipped_existing","err_instance_years_removed","err_annual_year_outside_stored_period","err_linked_product_type_mismatch","err_tech_spec_not_recognized","err_recipe_incomplete","err_annual_output_invalid","err_annual_economic_value_invalid","err_annual_output_year_required","err_annual_output_year_invalid","err_annual_output_year_duplicate","err_annual_output_year_outside_period","err_orphan_row","err_duplicate_tech_spec","err_empty_sheet","err_no_products","err_tech_spec_invalid_value","err_dtp_service","err_data_translation_wrong_step","err_data_translation_invalid_plant_mapping","err_data_translation_unresolved_reference","err_data_translation_incomplete","err_data_translation_material_not_available","err_data_translation_duplicate_supplier_name","err_recycled_content_proof_missing","err_ppwr_declaration_exists","err_ppwr_declaration_editable_exists","err_ppwr_declaration_frozen","err_ppwr_doc_number_unavailable","err_ppwr_variant_mass_invalid","err_ppwr_variant_dimension_invalid","err_ppwr_variant_material_repeated","err_ppwr_variant_material_type","err_ppwr_invalid_field_key","err_ppwr_supplier_request_not_packaging_manufacturer","err_ppwr_supplier_request_pending","err_ppwr_supplier_request_not_pending","err_ppwr_field_not_requested","err_ppwr_document_limit_reached","err_ppwr_generation_not_packaging_manufacturer","err_ppwr_trial_document_limit_reached","err_ppwr_declaration_incomplete","err_ppwr_invalid_signatory","err_ppwr_invitation_send_failed","err_ppwr_supplier_link_placeholder_missing","err_ppwr_supplier_subject_missing","err_ppwr_supplier_email_missing","err_ppwr_verification_code_limit","err_ppwr_verification_code_send_failed","err_ppwr_email_not_verified","err_ppwr_attestation_required","err_ppwr_document_not_deletable","err_proof_document_limit","err_proof_size_limit","err_supplier_address_country_only","err_supplier_address_ignored","err_supplier_address_not_found","err_transport_distance_unresolved","err_transport_modality_duplicate","err_transport_modality_invalid","err_transport_route_unavailable","err_transport_missing_coordinates","err_transport_no_route","err_transport_same_address","err_transport_route_in_use","err_transport_route_name_exists","err_transport_route_invalid_polyline","err_transport_route_source_ambiguous","err_transport_route_no_materials_selected","err_transport_route_wrong_lane","err_transport_route_missing_source","err_reauthentication_required","err_two_factor_required","err_entitlement_limit_reached","err_program_operator_not_entitled","err_product_category_not_entitled","err_product_category_paused","err_translation_package_required","err_epd_tier_required","err_prechain_category_not_publishable","err_self_upgrade_not_offered","err_self_upgrade_request_required","err_self_upgrade_limit_changed","err_self_upgrade_unavailable","err_self_upgrade_in_progress","err_self_upgrade_already_requested","err_self_upgrade_offer_changed","err_upgrade_approval_not_pending","err_translation_unavailable"],"isRequired":true,"uniqueKey":"err_code","typeLabel":"enum\u003cstring>"},"entitlement_limit":{"oneOf":[{"type":"object","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","required":["dimension","usage","limit"],"properties":{"dimension":{"type":"string","description":"The set may grow as more dimensions become enforced — treat an\nunrecognized value like the generic limit error.\n","enum":["users","plants","product_instances","published_epds"],"isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.dimension","typeLabel":"enum\u003cstring>"},"usage":{"type":"integer","description":"What the account currently uses in this dimension.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.usage","typeLabel":"integer"},"limit":{"type":"integer","description":"What the license allows.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.limit","typeLabel":"integer"}},"uniqueKey":"entitlement_limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","uniqueKey":"entitlement_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"entitlement_limit","typeLabel":"object | null"},"product_categories":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"product_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"product_categories","typeLabel":"string[] | null"},"epd_category":{"oneOf":[{"type":"integer","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.0","typeLabel":"integer"},{"type":"null","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"epd_category","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"msg":"supplier product requires a supplier plant","err_code":"err_supplier_product_missing_supplier_plant","entitlement_limit":{"dimension":"users","usage":123,"limit":123},"product_categories":["\u003cstring>"],"epd_category":123}}},"exampleType":"generated"}},"exampleType":"generated"},"d23e467b-cbca-461f-a03c-37563163cda7":{"description":"Plant not found.","content":{"application/json":{"schema":{"type":"object","required":["msg","err_code"],"properties":{"msg":{"type":"string","description":"Human-readable explanation, for logs and operators. Do not parse it.","example":"supplier product requires a supplier plant","isRequired":true,"uniqueKey":"msg","typeLabel":"string"},"err_code":{"type":"string","description":"Stable, machine-readable error code — branch on this, never on `msg`.\nThe set may grow over time; treat an unrecognized code as\nnon-retryable and surface it to an operator. The enum lists every\ncode the platform can emit; only a subset is reachable per\nendpoint — see [Errors](/errors) for the actionable catalog.\n\n`LcaRecomputeJob.err_code` reports failures from this same `err_*`\nnamespace. `LcaBlocker.err_code` does not — those values are a\nseparate, disjoint set.\n","example":"err_supplier_product_missing_supplier_plant","enum":["err_invalid_query","err_invalid_cursor","err_stale_cursor","err_history_temporarily_unavailable","err_emigo_daily_limit_reached","err_not_defined","err_not_found","err_not_valid","err_not_authenticated","err_permission_denied","err_account_frozen","err_declaration_not_completed","err_declaration_not_regenerable","err_epd_document_already_exists","err_invalid_product_ids","err_generate_products_limit","err_plant_missing_product_category","err_plant_incomplete_address","err_plant_incomplete_company_fields","err_plant_categories_not_covering_processes","err_plant_categories_not_covering_active_products","err_plant_invalid_category_id","err_plant_invalid_balancing_authority","err_plant_balancing_authority_non_us","err_plant_custom_electricity_mix_not_allowed","err_plant_electricity_mix_mismatch","err_plant_negative_electricity_values","err_plant_electricity_without_mix","err_electricity_plant_production_mismatch","err_lca_mass_balance","err_lca_allocation_data_incomplete","err_lca_production_output_mismatch","err_process_output_below_linked_output","err_product_mass_larger_than_recipe_mass","err_product_category_not_allowed_at_plant","err_water_not_scoped_but_wastewater_is_scoped","err_more_wastewater_than_water","err_project_no_products","err_invalid_product_quantity","err_duplicate_product","err_product_missing_gwp_total","err_elementary_deactivated","err_product_missing_supplier","err_epd_unusable","err_epd_service","err_lca_update_not_queued","err_lca_export_not_ready","err_not_ready_for_epd","err_material_not_hazardous","err_material_no_limited_lifetime","err_invalid_lifetime_years","err_invalid_secondary_percentage_range","err_secondary_percentage_not_customizable","err_moisture_content_not_bio_based","err_invalid_moisture_content_range","err_declaration_not_exists","err_declaration_not_under_review","err_no_manufacturer","err_company_setup_required","err_account_setup_complete","err_wrong_email_domain","err_user_exists","err_inviter_email_not_found","err_composite_used_in_supplier_products","err_composite_name_exists","err_plant_io_invalid_field","err_plant_io_field_not_switchable","err_plant_io_value_not_scoped","err_field_is_plant_level","err_negative_io_value","err_invalid_packaging_material","err_plant_io_mixed_allocation_groups","err_inies_sworn_statement_exists","err_supplier_in_use","err_supplier_name_exists","err_supplier_plant_in_use","err_supplier_plant_name_exists","err_supplier_product_in_recipe","err_supplier_product_in_silo","err_supplier_product_scoped_as_packaging","err_supplier_product_declared_on_a_product","err_packaging_scoped_by_the_process","err_packaging_declared_on_a_product","err_packaging_on_a_byproduct","err_supplier_product_missing_supplier_plant","err_silo_in_use","err_silo_name_exists","err_elementary_unknown_matching","err_product_document_not_deletable","err_product_has_declarations","err_product_instance_in_recipe","err_product_instance_has_declarations","err_prechain_product_in_recipe","err_prechain_product_exists","err_prechain_product_not_main_product","err_ccf_exists","err_ccf_not_completed","err_external_id_exists","err_external_owner_invitation_epd_taken","err_external_owner_invitation_exists","err_external_owner_invitation_not_editable","err_external_owner_invitation_not_withdrawable","err_idempotency_key_reused","err_idempotency_in_progress","err_address_not_found","err_customer_not_found","err_geocoding_unavailable","err_bulk_upload_invalid_file","err_bulk_upload_duplicate_headers","err_bulk_upload_ambiguous_headers","err_bulk_upload_ambiguous_values","err_bulk_upload_ambiguous_header_language","err_bulk_upload_mixed_header_languages","err_bulk_upload_language_mismatch","err_bulk_upload_value_language_mismatch","err_bulk_upload_obsolete_template","err_bulk_upload_missing_translation","err_material_type_not_found","err_material_type_unvalidated","err_unvalidated_material_type_not_found","err_material_type_not_configured","err_unit_not_allowed_for_material","err_production_process_not_found","err_multiple_production_processes","err_process_plant_mismatch","err_material_process_incompatible","err_process_output_kind_change","err_production_process_required","err_composite_not_allowed_in_recipe","err_elementary_not_allowed_in_recipe","err_elementary_already_allowed_for_product","err_elementary_request_idempotency_conflict","err_prechain_circular_reference","err_product_type_no_recipe","err_product_mass_not_set","err_required_cell_empty","err_plant_not_found","err_plant_no_access","err_multiple_plants","err_product_already_exists","err_multiple_products","err_instance_material_type_mismatch","err_instance_unit_mismatch","err_instance_id_belongs_to_other","err_instance_id_differs_from_stored","err_duplicate_instance_id","err_instance_updated","err_bulk_change","err_bulk_unchanged","err_bulk_skipped_existing","err_instance_years_removed","err_annual_year_outside_stored_period","err_linked_product_type_mismatch","err_tech_spec_not_recognized","err_recipe_incomplete","err_annual_output_invalid","err_annual_economic_value_invalid","err_annual_output_year_required","err_annual_output_year_invalid","err_annual_output_year_duplicate","err_annual_output_year_outside_period","err_orphan_row","err_duplicate_tech_spec","err_empty_sheet","err_no_products","err_tech_spec_invalid_value","err_dtp_service","err_data_translation_wrong_step","err_data_translation_invalid_plant_mapping","err_data_translation_unresolved_reference","err_data_translation_incomplete","err_data_translation_material_not_available","err_data_translation_duplicate_supplier_name","err_recycled_content_proof_missing","err_ppwr_declaration_exists","err_ppwr_declaration_editable_exists","err_ppwr_declaration_frozen","err_ppwr_doc_number_unavailable","err_ppwr_variant_mass_invalid","err_ppwr_variant_dimension_invalid","err_ppwr_variant_material_repeated","err_ppwr_variant_material_type","err_ppwr_invalid_field_key","err_ppwr_supplier_request_not_packaging_manufacturer","err_ppwr_supplier_request_pending","err_ppwr_supplier_request_not_pending","err_ppwr_field_not_requested","err_ppwr_document_limit_reached","err_ppwr_generation_not_packaging_manufacturer","err_ppwr_trial_document_limit_reached","err_ppwr_declaration_incomplete","err_ppwr_invalid_signatory","err_ppwr_invitation_send_failed","err_ppwr_supplier_link_placeholder_missing","err_ppwr_supplier_subject_missing","err_ppwr_supplier_email_missing","err_ppwr_verification_code_limit","err_ppwr_verification_code_send_failed","err_ppwr_email_not_verified","err_ppwr_attestation_required","err_ppwr_document_not_deletable","err_proof_document_limit","err_proof_size_limit","err_supplier_address_country_only","err_supplier_address_ignored","err_supplier_address_not_found","err_transport_distance_unresolved","err_transport_modality_duplicate","err_transport_modality_invalid","err_transport_route_unavailable","err_transport_missing_coordinates","err_transport_no_route","err_transport_same_address","err_transport_route_in_use","err_transport_route_name_exists","err_transport_route_invalid_polyline","err_transport_route_source_ambiguous","err_transport_route_no_materials_selected","err_transport_route_wrong_lane","err_transport_route_missing_source","err_reauthentication_required","err_two_factor_required","err_entitlement_limit_reached","err_program_operator_not_entitled","err_product_category_not_entitled","err_product_category_paused","err_translation_package_required","err_epd_tier_required","err_prechain_category_not_publishable","err_self_upgrade_not_offered","err_self_upgrade_request_required","err_self_upgrade_limit_changed","err_self_upgrade_unavailable","err_self_upgrade_in_progress","err_self_upgrade_already_requested","err_self_upgrade_offer_changed","err_upgrade_approval_not_pending","err_translation_unavailable"],"isRequired":true,"uniqueKey":"err_code","typeLabel":"enum\u003cstring>"},"entitlement_limit":{"oneOf":[{"type":"object","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","required":["dimension","usage","limit"],"properties":{"dimension":{"type":"string","description":"The set may grow as more dimensions become enforced — treat an\nunrecognized value like the generic limit error.\n","enum":["users","plants","product_instances","published_epds"],"isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.dimension","typeLabel":"enum\u003cstring>"},"usage":{"type":"integer","description":"What the account currently uses in this dimension.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.usage","typeLabel":"integer"},"limit":{"type":"integer","description":"What the license allows.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.limit","typeLabel":"integer"}},"uniqueKey":"entitlement_limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","uniqueKey":"entitlement_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"entitlement_limit","typeLabel":"object | null"},"product_categories":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"product_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"product_categories","typeLabel":"string[] | null"},"epd_category":{"oneOf":[{"type":"integer","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.0","typeLabel":"integer"},{"type":"null","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"epd_category","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"msg":"supplier product requires a supplier plant","err_code":"err_supplier_product_missing_supplier_plant","entitlement_limit":{"dimension":"users","usage":123,"limit":123},"product_categories":["\u003cstring>"],"epd_category":123}}},"exampleType":"generated"}},"exampleType":"generated"},"a1375a1d-b3fa-4230-88ab-17fc0236e3ee":{"description":"Malformed `id` — not a UUID.","content":{"application/json":{"schema":{"type":"object","required":["msg","err_code"],"properties":{"msg":{"type":"string","description":"Human-readable explanation, for logs and operators. Do not parse it.","example":"supplier product requires a supplier plant","isRequired":true,"uniqueKey":"msg","typeLabel":"string"},"err_code":{"type":"string","description":"Stable, machine-readable error code — branch on this, never on `msg`.\nThe set may grow over time; treat an unrecognized code as\nnon-retryable and surface it to an operator. The enum lists every\ncode the platform can emit; only a subset is reachable per\nendpoint — see [Errors](/errors) for the actionable catalog.\n\n`LcaRecomputeJob.err_code` reports failures from this same `err_*`\nnamespace. `LcaBlocker.err_code` does not — those values are a\nseparate, disjoint set.\n","example":"err_supplier_product_missing_supplier_plant","enum":["err_invalid_query","err_invalid_cursor","err_stale_cursor","err_history_temporarily_unavailable","err_emigo_daily_limit_reached","err_not_defined","err_not_found","err_not_valid","err_not_authenticated","err_permission_denied","err_account_frozen","err_declaration_not_completed","err_declaration_not_regenerable","err_epd_document_already_exists","err_invalid_product_ids","err_generate_products_limit","err_plant_missing_product_category","err_plant_incomplete_address","err_plant_incomplete_company_fields","err_plant_categories_not_covering_processes","err_plant_categories_not_covering_active_products","err_plant_invalid_category_id","err_plant_invalid_balancing_authority","err_plant_balancing_authority_non_us","err_plant_custom_electricity_mix_not_allowed","err_plant_electricity_mix_mismatch","err_plant_negative_electricity_values","err_plant_electricity_without_mix","err_electricity_plant_production_mismatch","err_lca_mass_balance","err_lca_allocation_data_incomplete","err_lca_production_output_mismatch","err_process_output_below_linked_output","err_product_mass_larger_than_recipe_mass","err_product_category_not_allowed_at_plant","err_water_not_scoped_but_wastewater_is_scoped","err_more_wastewater_than_water","err_project_no_products","err_invalid_product_quantity","err_duplicate_product","err_product_missing_gwp_total","err_elementary_deactivated","err_product_missing_supplier","err_epd_unusable","err_epd_service","err_lca_update_not_queued","err_lca_export_not_ready","err_not_ready_for_epd","err_material_not_hazardous","err_material_no_limited_lifetime","err_invalid_lifetime_years","err_invalid_secondary_percentage_range","err_secondary_percentage_not_customizable","err_moisture_content_not_bio_based","err_invalid_moisture_content_range","err_declaration_not_exists","err_declaration_not_under_review","err_no_manufacturer","err_company_setup_required","err_account_setup_complete","err_wrong_email_domain","err_user_exists","err_inviter_email_not_found","err_composite_used_in_supplier_products","err_composite_name_exists","err_plant_io_invalid_field","err_plant_io_field_not_switchable","err_plant_io_value_not_scoped","err_field_is_plant_level","err_negative_io_value","err_invalid_packaging_material","err_plant_io_mixed_allocation_groups","err_inies_sworn_statement_exists","err_supplier_in_use","err_supplier_name_exists","err_supplier_plant_in_use","err_supplier_plant_name_exists","err_supplier_product_in_recipe","err_supplier_product_in_silo","err_supplier_product_scoped_as_packaging","err_supplier_product_declared_on_a_product","err_packaging_scoped_by_the_process","err_packaging_declared_on_a_product","err_packaging_on_a_byproduct","err_supplier_product_missing_supplier_plant","err_silo_in_use","err_silo_name_exists","err_elementary_unknown_matching","err_product_document_not_deletable","err_product_has_declarations","err_product_instance_in_recipe","err_product_instance_has_declarations","err_prechain_product_in_recipe","err_prechain_product_exists","err_prechain_product_not_main_product","err_ccf_exists","err_ccf_not_completed","err_external_id_exists","err_external_owner_invitation_epd_taken","err_external_owner_invitation_exists","err_external_owner_invitation_not_editable","err_external_owner_invitation_not_withdrawable","err_idempotency_key_reused","err_idempotency_in_progress","err_address_not_found","err_customer_not_found","err_geocoding_unavailable","err_bulk_upload_invalid_file","err_bulk_upload_duplicate_headers","err_bulk_upload_ambiguous_headers","err_bulk_upload_ambiguous_values","err_bulk_upload_ambiguous_header_language","err_bulk_upload_mixed_header_languages","err_bulk_upload_language_mismatch","err_bulk_upload_value_language_mismatch","err_bulk_upload_obsolete_template","err_bulk_upload_missing_translation","err_material_type_not_found","err_material_type_unvalidated","err_unvalidated_material_type_not_found","err_material_type_not_configured","err_unit_not_allowed_for_material","err_production_process_not_found","err_multiple_production_processes","err_process_plant_mismatch","err_material_process_incompatible","err_process_output_kind_change","err_production_process_required","err_composite_not_allowed_in_recipe","err_elementary_not_allowed_in_recipe","err_elementary_already_allowed_for_product","err_elementary_request_idempotency_conflict","err_prechain_circular_reference","err_product_type_no_recipe","err_product_mass_not_set","err_required_cell_empty","err_plant_not_found","err_plant_no_access","err_multiple_plants","err_product_already_exists","err_multiple_products","err_instance_material_type_mismatch","err_instance_unit_mismatch","err_instance_id_belongs_to_other","err_instance_id_differs_from_stored","err_duplicate_instance_id","err_instance_updated","err_bulk_change","err_bulk_unchanged","err_bulk_skipped_existing","err_instance_years_removed","err_annual_year_outside_stored_period","err_linked_product_type_mismatch","err_tech_spec_not_recognized","err_recipe_incomplete","err_annual_output_invalid","err_annual_economic_value_invalid","err_annual_output_year_required","err_annual_output_year_invalid","err_annual_output_year_duplicate","err_annual_output_year_outside_period","err_orphan_row","err_duplicate_tech_spec","err_empty_sheet","err_no_products","err_tech_spec_invalid_value","err_dtp_service","err_data_translation_wrong_step","err_data_translation_invalid_plant_mapping","err_data_translation_unresolved_reference","err_data_translation_incomplete","err_data_translation_material_not_available","err_data_translation_duplicate_supplier_name","err_recycled_content_proof_missing","err_ppwr_declaration_exists","err_ppwr_declaration_editable_exists","err_ppwr_declaration_frozen","err_ppwr_doc_number_unavailable","err_ppwr_variant_mass_invalid","err_ppwr_variant_dimension_invalid","err_ppwr_variant_material_repeated","err_ppwr_variant_material_type","err_ppwr_invalid_field_key","err_ppwr_supplier_request_not_packaging_manufacturer","err_ppwr_supplier_request_pending","err_ppwr_supplier_request_not_pending","err_ppwr_field_not_requested","err_ppwr_document_limit_reached","err_ppwr_generation_not_packaging_manufacturer","err_ppwr_trial_document_limit_reached","err_ppwr_declaration_incomplete","err_ppwr_invalid_signatory","err_ppwr_invitation_send_failed","err_ppwr_supplier_link_placeholder_missing","err_ppwr_supplier_subject_missing","err_ppwr_supplier_email_missing","err_ppwr_verification_code_limit","err_ppwr_verification_code_send_failed","err_ppwr_email_not_verified","err_ppwr_attestation_required","err_ppwr_document_not_deletable","err_proof_document_limit","err_proof_size_limit","err_supplier_address_country_only","err_supplier_address_ignored","err_supplier_address_not_found","err_transport_distance_unresolved","err_transport_modality_duplicate","err_transport_modality_invalid","err_transport_route_unavailable","err_transport_missing_coordinates","err_transport_no_route","err_transport_same_address","err_transport_route_in_use","err_transport_route_name_exists","err_transport_route_invalid_polyline","err_transport_route_source_ambiguous","err_transport_route_no_materials_selected","err_transport_route_wrong_lane","err_transport_route_missing_source","err_reauthentication_required","err_two_factor_required","err_entitlement_limit_reached","err_program_operator_not_entitled","err_product_category_not_entitled","err_product_category_paused","err_translation_package_required","err_epd_tier_required","err_prechain_category_not_publishable","err_self_upgrade_not_offered","err_self_upgrade_request_required","err_self_upgrade_limit_changed","err_self_upgrade_unavailable","err_self_upgrade_in_progress","err_self_upgrade_already_requested","err_self_upgrade_offer_changed","err_upgrade_approval_not_pending","err_translation_unavailable"],"isRequired":true,"uniqueKey":"err_code","typeLabel":"enum\u003cstring>"},"entitlement_limit":{"oneOf":[{"type":"object","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","required":["dimension","usage","limit"],"properties":{"dimension":{"type":"string","description":"The set may grow as more dimensions become enforced — treat an\nunrecognized value like the generic limit error.\n","enum":["users","plants","product_instances","published_epds"],"isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.dimension","typeLabel":"enum\u003cstring>"},"usage":{"type":"integer","description":"What the account currently uses in this dimension.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.usage","typeLabel":"integer"},"limit":{"type":"integer","description":"What the license allows.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.limit","typeLabel":"integer"}},"uniqueKey":"entitlement_limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","uniqueKey":"entitlement_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"entitlement_limit","typeLabel":"object | null"},"product_categories":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"product_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"product_categories","typeLabel":"string[] | null"},"epd_category":{"oneOf":[{"type":"integer","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.0","typeLabel":"integer"},{"type":"null","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"epd_category","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"msg":"supplier product requires a supplier plant","err_code":"err_supplier_product_missing_supplier_plant","entitlement_limit":{"dimension":"users","usage":123,"limit":123},"product_categories":["\u003cstring>"],"epd_category":123}}},"exampleType":"generated"}},"exampleType":"generated"},"7e28e890-ab7a-4883-aaec-31396c9446f1":{"description":"An unexpected server error occurred. Surface it to an operator.","content":{"application/json":{"schema":{"type":"object","required":["msg","err_code"],"properties":{"msg":{"type":"string","description":"Human-readable explanation, for logs and operators. Do not parse it.","example":"supplier product requires a supplier plant","isRequired":true,"uniqueKey":"msg","typeLabel":"string"},"err_code":{"type":"string","description":"Stable, machine-readable error code — branch on this, never on `msg`.\nThe set may grow over time; treat an unrecognized code as\nnon-retryable and surface it to an operator. The enum lists every\ncode the platform can emit; only a subset is reachable per\nendpoint — see [Errors](/errors) for the actionable catalog.\n\n`LcaRecomputeJob.err_code` reports failures from this same `err_*`\nnamespace. `LcaBlocker.err_code` does not — those values are a\nseparate, disjoint set.\n","example":"err_supplier_product_missing_supplier_plant","enum":["err_invalid_query","err_invalid_cursor","err_stale_cursor","err_history_temporarily_unavailable","err_emigo_daily_limit_reached","err_not_defined","err_not_found","err_not_valid","err_not_authenticated","err_permission_denied","err_account_frozen","err_declaration_not_completed","err_declaration_not_regenerable","err_epd_document_already_exists","err_invalid_product_ids","err_generate_products_limit","err_plant_missing_product_category","err_plant_incomplete_address","err_plant_incomplete_company_fields","err_plant_categories_not_covering_processes","err_plant_categories_not_covering_active_products","err_plant_invalid_category_id","err_plant_invalid_balancing_authority","err_plant_balancing_authority_non_us","err_plant_custom_electricity_mix_not_allowed","err_plant_electricity_mix_mismatch","err_plant_negative_electricity_values","err_plant_electricity_without_mix","err_electricity_plant_production_mismatch","err_lca_mass_balance","err_lca_allocation_data_incomplete","err_lca_production_output_mismatch","err_process_output_below_linked_output","err_product_mass_larger_than_recipe_mass","err_product_category_not_allowed_at_plant","err_water_not_scoped_but_wastewater_is_scoped","err_more_wastewater_than_water","err_project_no_products","err_invalid_product_quantity","err_duplicate_product","err_product_missing_gwp_total","err_elementary_deactivated","err_product_missing_supplier","err_epd_unusable","err_epd_service","err_lca_update_not_queued","err_lca_export_not_ready","err_not_ready_for_epd","err_material_not_hazardous","err_material_no_limited_lifetime","err_invalid_lifetime_years","err_invalid_secondary_percentage_range","err_secondary_percentage_not_customizable","err_moisture_content_not_bio_based","err_invalid_moisture_content_range","err_declaration_not_exists","err_declaration_not_under_review","err_no_manufacturer","err_company_setup_required","err_account_setup_complete","err_wrong_email_domain","err_user_exists","err_inviter_email_not_found","err_composite_used_in_supplier_products","err_composite_name_exists","err_plant_io_invalid_field","err_plant_io_field_not_switchable","err_plant_io_value_not_scoped","err_field_is_plant_level","err_negative_io_value","err_invalid_packaging_material","err_plant_io_mixed_allocation_groups","err_inies_sworn_statement_exists","err_supplier_in_use","err_supplier_name_exists","err_supplier_plant_in_use","err_supplier_plant_name_exists","err_supplier_product_in_recipe","err_supplier_product_in_silo","err_supplier_product_scoped_as_packaging","err_supplier_product_declared_on_a_product","err_packaging_scoped_by_the_process","err_packaging_declared_on_a_product","err_packaging_on_a_byproduct","err_supplier_product_missing_supplier_plant","err_silo_in_use","err_silo_name_exists","err_elementary_unknown_matching","err_product_document_not_deletable","err_product_has_declarations","err_product_instance_in_recipe","err_product_instance_has_declarations","err_prechain_product_in_recipe","err_prechain_product_exists","err_prechain_product_not_main_product","err_ccf_exists","err_ccf_not_completed","err_external_id_exists","err_external_owner_invitation_epd_taken","err_external_owner_invitation_exists","err_external_owner_invitation_not_editable","err_external_owner_invitation_not_withdrawable","err_idempotency_key_reused","err_idempotency_in_progress","err_address_not_found","err_customer_not_found","err_geocoding_unavailable","err_bulk_upload_invalid_file","err_bulk_upload_duplicate_headers","err_bulk_upload_ambiguous_headers","err_bulk_upload_ambiguous_values","err_bulk_upload_ambiguous_header_language","err_bulk_upload_mixed_header_languages","err_bulk_upload_language_mismatch","err_bulk_upload_value_language_mismatch","err_bulk_upload_obsolete_template","err_bulk_upload_missing_translation","err_material_type_not_found","err_material_type_unvalidated","err_unvalidated_material_type_not_found","err_material_type_not_configured","err_unit_not_allowed_for_material","err_production_process_not_found","err_multiple_production_processes","err_process_plant_mismatch","err_material_process_incompatible","err_process_output_kind_change","err_production_process_required","err_composite_not_allowed_in_recipe","err_elementary_not_allowed_in_recipe","err_elementary_already_allowed_for_product","err_elementary_request_idempotency_conflict","err_prechain_circular_reference","err_product_type_no_recipe","err_product_mass_not_set","err_required_cell_empty","err_plant_not_found","err_plant_no_access","err_multiple_plants","err_product_already_exists","err_multiple_products","err_instance_material_type_mismatch","err_instance_unit_mismatch","err_instance_id_belongs_to_other","err_instance_id_differs_from_stored","err_duplicate_instance_id","err_instance_updated","err_bulk_change","err_bulk_unchanged","err_bulk_skipped_existing","err_instance_years_removed","err_annual_year_outside_stored_period","err_linked_product_type_mismatch","err_tech_spec_not_recognized","err_recipe_incomplete","err_annual_output_invalid","err_annual_economic_value_invalid","err_annual_output_year_required","err_annual_output_year_invalid","err_annual_output_year_duplicate","err_annual_output_year_outside_period","err_orphan_row","err_duplicate_tech_spec","err_empty_sheet","err_no_products","err_tech_spec_invalid_value","err_dtp_service","err_data_translation_wrong_step","err_data_translation_invalid_plant_mapping","err_data_translation_unresolved_reference","err_data_translation_incomplete","err_data_translation_material_not_available","err_data_translation_duplicate_supplier_name","err_recycled_content_proof_missing","err_ppwr_declaration_exists","err_ppwr_declaration_editable_exists","err_ppwr_declaration_frozen","err_ppwr_doc_number_unavailable","err_ppwr_variant_mass_invalid","err_ppwr_variant_dimension_invalid","err_ppwr_variant_material_repeated","err_ppwr_variant_material_type","err_ppwr_invalid_field_key","err_ppwr_supplier_request_not_packaging_manufacturer","err_ppwr_supplier_request_pending","err_ppwr_supplier_request_not_pending","err_ppwr_field_not_requested","err_ppwr_document_limit_reached","err_ppwr_generation_not_packaging_manufacturer","err_ppwr_trial_document_limit_reached","err_ppwr_declaration_incomplete","err_ppwr_invalid_signatory","err_ppwr_invitation_send_failed","err_ppwr_supplier_link_placeholder_missing","err_ppwr_supplier_subject_missing","err_ppwr_supplier_email_missing","err_ppwr_verification_code_limit","err_ppwr_verification_code_send_failed","err_ppwr_email_not_verified","err_ppwr_attestation_required","err_ppwr_document_not_deletable","err_proof_document_limit","err_proof_size_limit","err_supplier_address_country_only","err_supplier_address_ignored","err_supplier_address_not_found","err_transport_distance_unresolved","err_transport_modality_duplicate","err_transport_modality_invalid","err_transport_route_unavailable","err_transport_missing_coordinates","err_transport_no_route","err_transport_same_address","err_transport_route_in_use","err_transport_route_name_exists","err_transport_route_invalid_polyline","err_transport_route_source_ambiguous","err_transport_route_no_materials_selected","err_transport_route_wrong_lane","err_transport_route_missing_source","err_reauthentication_required","err_two_factor_required","err_entitlement_limit_reached","err_program_operator_not_entitled","err_product_category_not_entitled","err_product_category_paused","err_translation_package_required","err_epd_tier_required","err_prechain_category_not_publishable","err_self_upgrade_not_offered","err_self_upgrade_request_required","err_self_upgrade_limit_changed","err_self_upgrade_unavailable","err_self_upgrade_in_progress","err_self_upgrade_already_requested","err_self_upgrade_offer_changed","err_upgrade_approval_not_pending","err_translation_unavailable"],"isRequired":true,"uniqueKey":"err_code","typeLabel":"enum\u003cstring>"},"entitlement_limit":{"oneOf":[{"type":"object","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","required":["dimension","usage","limit"],"properties":{"dimension":{"type":"string","description":"The set may grow as more dimensions become enforced — treat an\nunrecognized value like the generic limit error.\n","enum":["users","plants","product_instances","published_epds"],"isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.dimension","typeLabel":"enum\u003cstring>"},"usage":{"type":"integer","description":"What the account currently uses in this dimension.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.usage","typeLabel":"integer"},"limit":{"type":"integer","description":"What the license allows.","isRequired":true,"uniqueKey":"entitlement_limit.oneOf.0.limit","typeLabel":"integer"}},"uniqueKey":"entitlement_limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"Structured context for `err_entitlement_limit_reached` — which\nlicensed dimension is exhausted and the numbers behind it.\nOmitted on every other error, so check for presence rather than\ncomparing against `null`.\n","uniqueKey":"entitlement_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"entitlement_limit","typeLabel":"object | null"},"product_categories":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"product_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"For `err_product_category_not_entitled` and\n`err_product_category_paused`: the names of the product\ncategories the license doesn't include, so a client can show\nthem. Omitted on every other error, so check for presence rather\nthan comparing against `null`.\n","uniqueKey":"product_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"product_categories","typeLabel":"string[] | null"},"epd_category":{"oneOf":[{"type":"integer","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.0","typeLabel":"integer"},{"type":"null","description":"For `err_epd_tier_required`: the pricing category (1-3) the EPD\nbelongs to, which has no EPD tier booked. Omitted on every other\nerror, so check for presence rather than comparing against `null`.\n","uniqueKey":"epd_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"epd_category","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"msg":"supplier product requires a supplier plant","err_code":"err_supplier_product_missing_supplier_plant","entitlement_limit":{"dimension":"users","usage":123,"limit":123},"product_categories":["\u003cstring>"],"epd_category":123}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"651b8ccf-c117-4c26-b67b-5c3cdf3d2832":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Per-manufacturer API key in the `X-API-Key` header, format\n`emidat-{key_id}-{secret}` where `key_id` is a random public handle.\nIssued by an owner in the Emidat\ndashboard; carries its own permission scopes, optional plant\nrestrictions, and optional expiry. A revoked, expired, or unknown key\nreturns 401. See the Authentication guide for details.\n","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"6809999f-d857-4eb4-b661-af63bf125552":{"url":"https://api.emidat.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Per-manufacturer API key in the `X-API-Key` header, format\n`emidat-{key_id}-{secret}` where `key_id` is a random public handle.\nIssued by an owner in the Emidat\ndashboard; carries its own permission scopes, optional plant\nrestrictions, and optional expiry. A revoked, expired, or unknown key\nreturns 401. See the Authentication guide for details.\n","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"Per-manufacturer API key in the `X-API-Key` header, format\n`emidat-{key_id}-{secret}` where `key_id` is a random public handle.\nIssued by an owner in the Emidat\ndashboard; carries its own permission scopes, optional plant\nrestrictions, and optional expiry. A revoked, expired, or unknown key\nreturns 401. See the Authentication guide for details.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"emidat","siteName":"Emidat API","title":"Get plant - Emidat API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-30T12:37:21.494Z","originalFileLocation":"api-reference/plants/get.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Fetches one plant by its Emidat UUID. 404 if no active plant carries the id; 403 if the plant exists but the key\u0026#x27;s plant restriction does not include it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Emidat 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/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_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/emidat/vlF3Kpxi6ZOBtvHL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get plant - Emidat API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fetches one plant by its Emidat UUID. 404 if no active plant carries the id; 403 if the plant exists but the key\u0026#x27;s plant restriction does not include it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Emidat API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.emidat.com/api-reference/plants/get\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://emidat.mintlify.app/_mintlify/api/og/v2?division=Plants\u0026amp;title=Get+plant\u0026amp;description=Fetches+one+plant+by+its+Emidat+UUID.+%60404%60+if+no+active+plant+carries%0Athe+id%3B+%60403%60+if+the+plant+exists+but+the+key%27s+plant+restriction+does%0Anot+include+it.%0A\u0026amp;theme=df6acf5ffa3b5355e046b553\u0026amp;signature=83924cd87dfc0e6e88baa17c1d8a33c5881954231165f6af25bf78c211adf769\">\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=\"Get plant - Emidat API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fetches one plant by its Emidat UUID. 404 if no active plant carries the id; 403 if the plant exists but the key\u0026#x27;s plant restriction does not include it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://emidat.mintlify.app/_mintlify/api/og/v2?division=Plants\u0026amp;title=Get+plant\u0026amp;description=Fetches+one+plant+by+its+Emidat+UUID.+%60404%60+if+no+active+plant+carries%0Athe+id%3B+%60403%60+if+the+plant+exists+but+the+key%27s+plant+restriction+does%0Anot+include+it.%0A\u0026amp;theme=df6acf5ffa3b5355e046b553\u0026amp;signature=83924cd87dfc0e6e88baa17c1d8a33c5881954231165f6af25bf78c211adf769\">\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/emidat/vlF3Kpxi6ZOBtvHL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Emidat API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2929CC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.emidat.com/api-reference/plants/get\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/plants/get.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.emidat.com/#organization\",\"name\":\"Emidat API\",\"url\":\"https://docs.emidat.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/emidat/KhjEpdL-EUrz1H4P/logo/dark.svg?fit=max\u0026auto=format\u0026n=KhjEpdL-EUrz1H4P\u0026q=85\u0026s=35ce6850a5591a143fb8936475924122\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.emidat.com#website\",\"name\":\"Emidat API\",\"url\":\"https://docs.emidat.com\",\"publisher\":{\"@id\":\"https://docs.emidat.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.emidat.com/api-reference/plants/get#webpage\",\"url\":\"https://docs.emidat.com/api-reference/plants/get\",\"name\":\"Get plant\",\"description\":\"Fetches one plant by its Emidat UUID. 404 if no active plant carries the id; 403 if the plant exists but the key's plant restriction does not include it.\",\"dateModified\":\"2026-07-30T12:37:21.494Z\",\"isPartOf\":{\"@id\":\"https://docs.emidat.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.emidat.com/api-reference/plants/get#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.emidat.com/api-reference/plants/get#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Plants\",\"item\":\"https://docs.emidat.com/api-reference/plants/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get plant\",\"item\":\"https://docs.emidat.com/api-reference/plants/get\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.emidat.com/api-reference/plants/get#apireference\",\"headline\":\"Get plant\",\"name\":\"Get plant\",\"description\":\"Fetches one plant by its Emidat UUID. 404 if no active plant carries the id; 403 if the plant exists but the key's plant restriction does not include it.\",\"url\":\"https://docs.emidat.com/api-reference/plants/get\",\"mainEntityOfPage\":{\"@id\":\"https://docs.emidat.com/api-reference/plants/get#webpage\"},\"dateModified\":\"2026-07-30T12:37:21.494Z\",\"publisher\":{\"@id\":\"https://docs.emidat.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.emidat.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Emidat API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Emidat API","nav":{"global":null,"groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Authentication","href":"/authentication"},{"title":"Errors","href":"/errors"},{"title":"External IDs","href":"/external-ids"},{"title":"Pagination","href":"/pagination"}]},{"group":"Guides","pages":[{"title":"Using AI Agents","href":"/using-ai-agents"}]},{"group":"API Key","pages":[{"title":"Introspect API key","openapi":"GET /v2/me","href":"/api-reference/me/get"}]},{"group":"Plants","pages":[{"title":"List plants","openapi":"GET /v2/plants","description":"Lists the plants your key can access. Plants are created and managed on the\nEmidat UI, not via the API — listing them is how your integration maps your\nown plant codes to the Emidat `plant_id` it references.\n\nFilter by `external_id` to resolve one of your codes to a single plant.\nPaginated — see [Pagination](/pagination).\n","href":"/api-reference/plants/list"},{"title":"Get plant","openapi":"GET /v2/plants/{id}","href":"/api-reference/plants/get"}]},{"group":"Production Processes","pages":[{"title":"List production processes","openapi":"GET /v2/production-processes","description":"Lists the production processes at the plants your key can access. Production\nprocesses are created and managed on the Emidat UI, not via the API —\nlisting them is how your integration maps your own process codes to the\nEmidat `production_process_id` it references.\n\nFilter by `external_id` to resolve one of your codes to a single process.\nPaginated — see [Pagination](/pagination).\n","href":"/api-reference/production-processes/list"},{"title":"Get production process","openapi":"GET /v2/production-processes/{id}","href":"/api-reference/production-processes/get"}]},{"group":"Products","pages":[{"title":"List products","openapi":"GET /v2/products","href":"/api-reference/products/list"},{"title":"Get product","openapi":"GET /v2/products/{id}","href":"/api-reference/products/get"}]},{"group":"Projects","pages":[{"title":"List projects","openapi":"GET /v2/projects","tag":"Preview","href":"/api-reference/projects/list"},{"title":"Create project","openapi":"POST /v2/projects","tag":"Preview","href":"/api-reference/projects/create"},{"title":"Get project","openapi":"GET /v2/projects/{id}","tag":"Preview","href":"/api-reference/projects/get"},{"title":"Update project","openapi":"PUT /v2/projects/{id}","tag":"Preview","href":"/api-reference/projects/update"},{"title":"Delete project","openapi":"DELETE /v2/projects/{id}","tag":"Preview","href":"/api-reference/projects/delete"}]},{"group":"Product Instances","pages":[{"title":"List product instances","openapi":"GET /v2/product-instances","tag":"Preview","href":"/api-reference/product-instances/list"},{"title":"Create product instance","openapi":"POST /v2/product-instances","tag":"Preview","href":"/api-reference/product-instances/create"},{"title":"Get product instance","openapi":"GET /v2/product-instances/{id}","tag":"Preview","href":"/api-reference/product-instances/get"},{"title":"Update product instance","openapi":"PUT /v2/product-instances/{id}","tag":"Preview","href":"/api-reference/product-instances/update"},{"title":"Delete product instance","openapi":"DELETE /v2/product-instances/{id}","tag":"Preview","href":"/api-reference/product-instances/delete"},{"title":"Get BOM","openapi":"GET /v2/product-instances/{id}/bom","tag":"Preview","href":"/api-reference/product-instances/get-bom"},{"title":"Replace BOM","openapi":"PUT /v2/product-instances/{id}/bom","tag":"Preview","href":"/api-reference/product-instances/bom"},{"title":"Recompute LCA","openapi":"POST /v2/product-instances/{id}/lca-update","tag":"Preview","href":"/api-reference/product-instances/lca-update"},{"title":"Get LCA results","openapi":"GET /v2/product-instances/{id}/lca-results","tag":"Preview","href":"/api-reference/product-instances/lca-results"}]},{"group":"Prechain Products","pages":[{"title":"List prechain products","openapi":"GET /v2/prechain-products","tag":"Preview","href":"/api-reference/prechain-products/list"},{"title":"Create prechain product","openapi":"POST /v2/prechain-products","tag":"Preview","href":"/api-reference/prechain-products/create"},{"title":"Get prechain product","openapi":"GET /v2/prechain-products/{id}","tag":"Preview","href":"/api-reference/prechain-products/get"},{"title":"Update prechain product","openapi":"PUT /v2/prechain-products/{id}","tag":"Preview","href":"/api-reference/prechain-products/update"},{"title":"Delete prechain product","openapi":"DELETE /v2/prechain-products/{id}","tag":"Preview","href":"/api-reference/prechain-products/delete"}]},{"group":"Supplier Companies","pages":[{"title":"List supplier companies","openapi":"GET /v2/supplier-companies","href":"/api-reference/supplier-companies/list"},{"title":"Create supplier company","openapi":"POST /v2/supplier-companies","href":"/api-reference/supplier-companies/create"},{"title":"Get supplier company","openapi":"GET /v2/supplier-companies/{id}","href":"/api-reference/supplier-companies/get"},{"title":"Update supplier company","openapi":"PUT /v2/supplier-companies/{id}","href":"/api-reference/supplier-companies/update"},{"title":"Delete supplier company","openapi":"DELETE /v2/supplier-companies/{id}","href":"/api-reference/supplier-companies/delete"}]},{"group":"Supplier Plants","pages":[{"title":"List supplier plants","openapi":"GET /v2/supplier-plants","href":"/api-reference/supplier-plants/list"},{"title":"Create supplier plant","openapi":"POST /v2/supplier-plants","href":"/api-reference/supplier-plants/create"},{"title":"Get supplier plant","openapi":"GET /v2/supplier-plants/{id}","href":"/api-reference/supplier-plants/get"},{"title":"Update supplier plant","openapi":"PUT /v2/supplier-plants/{id}","href":"/api-reference/supplier-plants/update"},{"title":"Delete supplier plant","openapi":"DELETE /v2/supplier-plants/{id}","href":"/api-reference/supplier-plants/delete"}]},{"group":"Supplier Products","pages":[{"title":"List supplier products","openapi":"GET /v2/supplier-products","href":"/api-reference/supplier-products/list"},{"title":"Create supplier product","openapi":"POST /v2/supplier-products","href":"/api-reference/supplier-products/create"},{"title":"Get supplier product","openapi":"GET /v2/supplier-products/{id}","href":"/api-reference/supplier-products/get"},{"title":"Update supplier product","openapi":"PUT /v2/supplier-products/{id}","href":"/api-reference/supplier-products/update"},{"title":"Delete supplier product","openapi":"DELETE /v2/supplier-products/{id}","href":"/api-reference/supplier-products/delete"}]},{"group":"Silos","pages":[{"title":"List silos","openapi":"GET /v2/silos","href":"/api-reference/silos/list"},{"title":"Create silo","openapi":"POST /v2/silos","href":"/api-reference/silos/create"},{"title":"Get silo","openapi":"GET /v2/silos/{id}","href":"/api-reference/silos/get"},{"title":"Update silo","openapi":"PUT /v2/silos/{id}","href":"/api-reference/silos/update"},{"title":"Delete silo","openapi":"DELETE /v2/silos/{id}","href":"/api-reference/silos/delete"}]},{"group":"Composites","pages":[{"title":"List composites","openapi":"GET /v2/composites","href":"/api-reference/composites/list"},{"title":"Create composite","openapi":"POST /v2/composites","href":"/api-reference/composites/create"},{"title":"Get composite","openapi":"GET /v2/composites/{id}","href":"/api-reference/composites/get"},{"title":"Update composite","openapi":"PUT /v2/composites/{id}","href":"/api-reference/composites/update"},{"title":"Delete composite","openapi":"DELETE /v2/composites/{id}","href":"/api-reference/composites/delete"}]}]},"title":"Get plant - Emidat API","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}