Appearance
Retrieving Standards
This guide shows how to retrieve standards from the API. The API follows a linked data approach, where resources are identified by URLs that can be dereferenced to retrieve their full representation.
Before making these calls, you'll need an access token. For an overview of how standards, editions, and documents are organized, see Understanding the Data Model.
Understanding Partitions
The API organizes content into logical partitions, which appear in the URL path. The industrial partition contains industrial and technical standards:
https://preprod.accuris.io/industrial/...TODO: improve the documentation around partitions
Different partitions may be available depending on your access. The partition is included directly in the URL path for all requests.
Listing Standards
The typical workflow starts by listing standards to discover available resources. List responses return URLs that can be used directly to retrieve each standard's full details:
js
const axios = require("axios");
const BASE_URL = "https://preprod.accuris.io";
const ACCESS_TOKEN = "your-access-token";
async function listRecentStandards() {
const filterDate = "2024-11-01";
const pageSize = 20;
const url = `${BASE_URL}/industrial/content/standard?filter=dateModified gt ${filterDate}&pageSize=${pageSize}&expand=value`;
const response = await axios.get(url, {
headers: {
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
});
// response.data.value contains array of full standard objects
for (const standard of response.data.value) {
console.log(standard.documentNumber, standard.title.en);
}
// Check for next page
const nextLink = response.data.link?.find((l) => l.rel === "next");
if (nextLink) {
console.log("Next page available:", nextLink.ref);
}
return response.data;
}cs
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.Web;
public class StandardsApi
{
private static readonly string BaseUrl = "https://preprod.accuris.io";
private static readonly string AccessToken = "your-access-token";
public static async Task<string> ListRecentStandards()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", AccessToken);
var filterDate = "2024-11-01";
var pageSize = 20;
var url = $"{BaseUrl}/industrial/content/standard?filter=dateModified gt {filterDate}&pageSize={pageSize}&expand=value";
var response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class StandardsApi {
private static final String BASE_URL = "https://preprod.accuris.io";
private static final String ACCESS_TOKEN = "your-access-token";
public static String listRecentStandards() throws Exception {
HttpClient client = HttpClient.newHttpClient();
String filterDate = "2024-11-01";
int pageSize = 20;
String filter = URLEncoder.encode("dateModified gt " + filterDate, StandardCharsets.UTF_8);
String url = BASE_URL + "/industrial/content/standard?filter=" + filter +
"&pageSize=" + pageSize + "&expand=value";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer " + ACCESS_TOKEN)
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return response.body();
}
}Filtering
Use the filter query parameter to narrow results. The API supports OData-style filter expressions:
filter=dateModified gt 2024-11-01Common operators: eq (equals), gt (greater than), lt (less than), ge (greater or equal), le (less or equal).
The Expand Parameter
By default, list responses return only URLs for each standard:
json
{
"@type": "PagedCollection",
"value": [
"https://preprod.accuris.io/industrial/document/standard/aurn:industrial:content:doc:123",
"https://preprod.accuris.io/industrial/document/standard/aurn:industrial:content:doc:456"
]
}These URLs follow the linked data approach—each one can be used directly as an HTTP GET endpoint to retrieve the complete standard details (see Retrieving a Single Standard below). This same pattern applies to editions and documents: any URL returned by the API is dereferenceable.
Add expand=value to get full standard objects inline instead:
json
{
"@type": "PagedCollection",
"value": [
{
"@id": "https://preprod.accuris.io/industrial/document/standard/aurn:industrial:content:doc:123",
"@type": "Standard",
"title": { "en-US": "Example Standard" },
...
}
]
}Use URL-only responses when you just need identifiers or plan to fetch details selectively. Use expanded responses to avoid additional round trips.
Pagination
List responses are paginated. Each response includes:
value: Array of results (current page)link: Array of navigation links
To get the next page, look for a link with rel="next":
json
{
"link": [
{
"rel": "next",
"ref": "https://preprod.accuris.io/industrial/content/standard?cursor=abc123&pageSize=20"
}
]
}The cursor parameter is opaque—don't try to construct it yourself. Always use the complete URL from the ref property. When there's no next link, you've reached the end.
Control page size with the pageSize parameter (default and maximum vary by endpoint). Smaller pages return faster but require more requests for large result sets.
Retrieving a Single Standard
Once you have a standard's URL from a list operation (or any other source), you can retrieve its complete details by making a GET request to that URL. The API follows a linked data approach where each resource's @id property is a dereferenceable URL:
js
const axios = require("axios");
const BASE_URL = "https://preprod.accuris.io";
const ACCESS_TOKEN = "your-access-token";
async function getStandardById(standardId) {
const url = `${BASE_URL}/industrial/document/standard/${standardId}`;
const response = await axios.get(url, {
headers: {
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
});
return response.data;
}
// Example: Get a specific standard
const standard = await getStandardById("ABRUHIAAAAAAAAAA");
console.log(standard.documentNumber); // e.g., "ISO 9001"
console.log(standard.title.en); // e.g., "Quality management systems"cs
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
public class StandardsApi
{
private static readonly string BaseUrl = "https://preprod.accuris.io";
private static readonly string AccessToken = "your-access-token";
public static async Task<string> GetStandardById(string standardId)
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", AccessToken);
var url = $"{BaseUrl}/industrial/document/standard/{standardId}";
var response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
// Example: Get a specific standard
var standardJson = await StandardsApi.GetStandardById("ABRUHIAAAAAAAAAA");java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class StandardsApi {
private static final String BASE_URL = "https://preprod.accuris.io";
private static final String ACCESS_TOKEN = "your-access-token";
public static String getStandardById(String standardId) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String url = BASE_URL + "/industrial/document/standard/" + standardId;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer " + ACCESS_TOKEN)
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return response.body();
}
}
// Example: Get a specific standard
String standardJson = StandardsApi.getStandardById("ABRUHIAAAAAAAAAA");The response is a complete Standard object with all metadata, including references to its editions and documents. Each of these nested references (like activeEdition or items in the documents array) is also a URL that can be dereferenced to get full details about that specific resource.