The Normify API allows you to check for updates of versions and changes for laws and standards. This API serves to update the version dates of standards and laws in your database.
https://app.normify.me/research/api/ultimate
Content-Type: "application/json"
The API uses API keys for authentication. Include your API key in the header of each request:
Authorization: Bearer YOUR_API_KEY
Send a post request to:
Endpoint https://app.normify.me/api/token/
Content-Type application/json
Body (raw json)
{
"email": "YOUREMAIL",
"password": "YOURPASSWORD"
}This returns a JSON with a refresh token and an access token. Use the access token for authorization as the bearer token. It has a limited lifetime so it should be fetched once you start a new API request process.
POST https://app.normify.me/research/api/ultimate
Checks the current version dates and changes for a law or standard.
{
"id": "int",
"identifier": "string",
"type": "string",
"short_title": "string",
"version_date": "YYYY-MM-DD",
"last_change": "YYYY-MM-DD",
"summarize": "boolean",
"customer_name": "string",
"customer_description": "string",
"return_standardtexts": "boolean",
}Parameters:
id: Unique ID of the law or standard (required)identifier: Unique identifier of the law or standard (required)short_title: Title of the law or standard (not required but improves response quality) (required)version_date: Current version date in your systemlast_change: Date of last change in your systemsummarize: If true, the summary dataset is returned.customer_name: Send the customer name if you would like to get results catered to this specific customer.customer_description: Send the customer description to improve the summary results for the customer.return_standardtexts: If true then the full text and the texts of the paragraphs, sections, etc. of the requested law or standard is returned.
One of version_date and last_change have to be submitted. If both the version_date and last_change are sent the new version date is compared to both dates and the has_newer_version boolean is set accordingly:
if current_version_date > last_change OR current_version_date > version_date
has_newer_version = True
else
has_newer_version = False
{
"success": "boolean",
"standard_found": "boolean",
"matched_by_similarity": "boolean",
"similarity_score": "Float",
"data": {
"id": "number/null",
"identifier": "string",
"normify_identifier": "string",
"normify_link": "string",
"short_title": "string",
"current_version_date": "YYYY-MM-DD",
"created_by_ai": "boolean",
"retracted": "boolean",
"source": "string",
"has_newer_version": "boolean",
"changes": [
{
"change_note": "string",
"retraction_note": "string",
"effective_date": "YYYY-MM-DD",
"link": "string"
}
],
"summary": [
{
"document_level_desc": "string",
"document_level": "string",
"summary": "string",
"recommendations": "List",
"legal_aspect": "string",
"customer_name": "string",
"customer_id": "id",
"custom_fields": [dict{}],
}
],
"standardtexts": [
{
"id": "int",
"text_orig_language": "string",
"text_orig": "string"
"text_de": "string"
"text_en": "string"
"text_orig_markdown": "string"
"text_de_markdown": "string"
"text_en_markdown": "string"
"document_level": "string"
"document_level_number": "int"
"document_level_description": "string"
"version_date": "string",
"comparison_url": "string",
}
],
}Response Fields:
standard_found: Indicates if the requested standard was found in the Nomrify databasematched_by_similarity: Indicator if the standard was found in the database but the identifier did not match 100% and the match was done by a similarity analysis (please check this result manually if the match was correct)similarity_score: Float between 0 and 1 that shows the similarity between the name_short of the request and the name/name_short in the database when the standard is matched via similarity matching. A value of 1 indicates perfect similarity.id: Unique ID of the law/standardidentifier: Identifier of the law/standardnormify_identifier: Unique normify identifier of the law/standard,normify_link: Link to the law/standard on Normify,title: Title of the law/standardcurrent_version_date: Current version date (Publishing date/Version date)created_by_ai: Indicator if the standard was created by AI in the databaseretracted: Indicator if this law/standard was rectracted (not in effect anymore).has_newer_version: Boolean indicating whether a newer version than the provided date is availablesource: Link to standard/law urlchanges: Array of changes implemented since the provided date. The fields here are the change_note, the retraction_note, the effective date and the link for that change.summary: List of dictionariesdocument_level_desc: Description of document level (Full text, paragraph, section, etc.)document_level: Document level (Full text, paragraph, section, etc.); i.e. 1 or A or IV, etc.summary: Summary of the documentrecommendations: List of dicts with recommendations. The dict is of the format {'customer': 'string', 'recommendation', : 'string'}legal_aspect: Legal aspectcustomer_name: Customer name for which a request was donecustomer_id: Customer database id for which the request was donecustom_fields: Please ask the admin for your custom fields.- standardtexts: List of dictionaries
text_orig_language: Language of the original text (i.e. AR, PR, etc.).text_orig: Text of the law or standard in the original language (if it is not German or English)text_orig_markdown: Markdowntext of the law or standard in the original language (if it is not German or English)text_de: Text of the law or standard in Germantext_de_markdown: Markdowntext of the law or standard in Germantext_en: Text of the law or standard in Englishtext_en_markdown: Markdowntext of the law or standard in Englishdocument_level_description: Description of document level (Full text, paragraph, section, etc.)document_level: Document level (Full text, paragraph, section, etc.); i.e. 1 or A or IV, etc.document_level_number: Document level number, which shows the order of the texts.version_date: Version date of the text in YYYY-MM-DD formatcomparison_url: If a previous version of this text is available, a comparison overview is shown at this url.
Further examples can be found in the Example folder.
Request:
curl -v -X POST https://app.normify.me/research/api/ultimate/ \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"identifier": "DIN_EN_ISO_9001_2015",
"version_date": "2023-01-15"
}'
200 OK: Request successful400 Bad Request: Invalid request (missing parameters, invalid date format)401 Unauthorized: Invalid or missing API key404 Not Found: Law or standard not found500 Internal Server Error: Server error
{
"success": false,
"error": {
"code": "string",
"message": "string",
"details": {}
}
}MISSING_PARAMETERS: At least one parameter is requiredINVALID_DATE_FORMAT: Invalid date formatSTANDARD_NOT_FOUND: Law or standard not found