How to Retrieve Specific Sections of an IEC Standard via the Smart API
IEC Smart API allows users to retrieve content at a granular level, including specific standard sections such as the Foreword, Introduction, Scope, Normative references, and Terms and definitions. This article explains how to access them step by step.
Python notebook for this article - Example 1.
Prerequisites
Access to the IEC Smart API (https://sim-apim.azure-api.net/preprod)
A valid standard identifier (e.g., urn:iec:std:iec:63391:2024-10)
Authentication headers (if required by your API key/subscription)
Step-by-Step Guide
Step 1: Get the list of clauses
Use the following endpoint to retrieve the list of all clauses for a given standard:
GET /v1/standards/{standardURN}/clauses Example:
GET https://sim-apim.azure-api.net/preprod/v1/standards/urn:iec:std:iec:63391:2024-10/clauses This returns a list of clause metadata in JSON-LD format.
Step 2: Identify the clause types you need
In the response, look for objects with the following "@type" values to identify the sections of interest:
corext:Forewordcorext:Scopecorext:NormativeReferencescorext:TermsAndDefinitions
Example of a clause metadata block:
{
"@id": "http://smart.iec.ch/clause/50a91882-d9be-4f50-b8f2-75ee44ec2b3d",
"@type": "corext:Foreword",
"dcterms:title": "FOREWORD",
...
}
Step 3: Extract the clause ID
From the matched section, copy the value of "@id" (this is the full clause URI). You'll need only the last segment as the clause ID.
Example:
Clause ID: 50a91882-d9be-4f50-b8f2-75ee44ec2b3dStep 4: Retrieve the clause content
Use the clause ID with the following endpoint to get the full content:
GET /v1/standards/{standardURN}/clauses/{clauseID} Example:
GET https://sim-apim.azure-api.net/preprod/v1/standards/urn:iec:std:iec:63391:2024-10/clauses/50a91882-d9be-4f50-b8f2-75ee44ec2b3d The response will contain the full structured content of the section.
Tips
All sections are returned in a structured, machine-readable JSON format.
You can programmatically loop through all clauses to extract the ones matching your desired
@typevalues.Titles may be empty in some clauses – rely on the
@typefield to identify them reliably.