{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ee8e34e3-0376-45fb-9b3b-68234c44cbc1","name":"avalex API Documentation","description":"## Background\n\n[avalex.de](https://avalex.de) is a german legaltech company. It provides legal texts for websites like imprint, data privacy statement, terms and conditions and cancellation notice. The legal texts are updated automatically over the internet via plugins provided by avalex and installed on the customer's website. avalex supports various popular content management systems like WordPress, TYPO3, Joomla etc.\n\n## Workflow\n\n*   avalex provides a free domain scanner on its homepage. Visitors can enter any domain and start the scan. The avalex scanner detects over 300 webservices running on the scanned domain (e.g. Google Analytics, Facebook Pixel, YouTube etc.). In case the visitor purchases our services, avalex will store the domain-specific webservices.\n*   After purchase, the customer is guided through a setup of questions. Based on the given answers, avalex generates individual legal texts specifically for each customer domain based on predefined text blocks, customer input and our scan results. The legal texts are delivered to the customer's website via api calls by the aforementioned plugins.\n*   Currently, avalex legal texts are only available in German language for the german market. With the `3.0` update, avalex legal texts will also be available in the following languages for the german market.  \n    • **English** (en)  \n    • **French** (fr)  \n    • **Italian** (it)  \n    • **Spanish** (es)  \n    • **Dutch** (nl).  \n    Thus, please update the avalex plugin / extension to comply with our new extended service.\n    \n\n**Note**: Legal text versions for other markets are on our roadmap, for example German/English/French legal texts for the English market.\n\n## Packages\n\navalex offers [two packages](https://avalex.de/pricing):\n\n*   **Non-shop package**: costs 119€ (plus VAT) per year, and includes the legal texts: Datenschutzerklärung and Impressum.\n*   **Onlineshop package**: costs 169€ (plus VAT) per year, and includes the legal texts: Datenschutzerklärung, Impressum, AGB and Widerruf.\n    \n\n## avalex API\n\nThe avalex api has five main endpoints: one for retrieving domain languages, and four others for the different types of legal texts we currently deliver:\n\n1.  **Get Domain Languages**: called prior to calling the below legal text endpoints\n2.  **Datenschutzerklärung**: data privacy policy\n3.  **Impressum**: imprint\n4.  **Allgemeine Geschäftsbedingungen**: terms and conditions\n5.  **Widerrufsbelehrung**: cancellation notice\n    \n\n#### *NOTE*\n\nTo handle possible server downtime scenarios, please implement two timeout settings in the plugin as follows:\n\n*   **10-second** connection to server timeout,\n*   **60-second** response timeout if no response is returned from the server within 60 seconds.\n    \n\nIf any of the timeouts above is exceeded, the plugin should keep the last successfully pulled text intact (= the legal text content should not be replaced by any error messages or shortcodes on the corresponding webpage.)\n\n#### *NOTE*\n\nOnce done with the plugin development, please change the URL(s) to the live domain **avalex.de** instead of **dev.avalex.de** before publishing.\n\n## Shortcodes for Multi Language avalex Legal Texts\n\nParallel with the extension of our legal texts to multi language, avalex shortcodes used by/with our plugins for the legal text output on the customer pages need to extend. Please use the following pattern (shortcode brackets will differ depending on the CMS):\n\n#### German legal texts for the german market\n\n`[avalex_de_impressum]`  \n`[avalex_de_widerrufsbelehrung]`  \n`[avalex_de_datenschutz]` **Note**: This is our inital product, so the shortcode `[avalex]` must continue to work here as well.  \n`[avalex_de_agb]`\n\n#### English legal texts for the german market\n\n`[avalex_en_impressum]`  \n`[avalex_en_widerrufsbelehrung]`  \n`[avalex_en_datenschutz]`  \n`[avalex_en_agb]`\n\n#### French legal texts for the german market\n\n`[avalex_fr_impressum]`  \n`[avalex_fr_widerrufsbelehrung]`  \n`[avalex_fr_datenschutz]`  \n`[avalex_fr_agb]`\n\n#### Italian legal texts for the german market\n\n`[avalex_it_impressum]`  \n`[avalex_it_widerrufsbelehrung]`  \n`[avalex_it_datenschutz]`  \n`[avalex_it_agb]`\n\n#### Spanish legal texts for the german market\n\n`[avalex_es_impressum]`  \n`[avalex_es_widerrufsbelehrung]`  \n`[avalex_es_datenschutz]`  \n`[avalex_es_agb]`\n\n#### Dutch legal texts for the german market\n\n`[avalex_nl_impressum]`  \n`[avalex_nl_widerrufsbelehrung]`  \n`[avalex_nl_datenschutz]`  \n`[avalex_nl_agb]`\n\n## Error Messages and Status Codes\n\nBelow is the list of possible error responses (with corresponding HTTP status codes) that may occur upon calling the API endpoints:\n\n| Error Message | Description | Status Code |\n| --- | --- | --- |\n| Unauthorized APIKey: {PASSED API KEY} | Wrong API key passed | 401 |\n| Domain must be upgraded to the onlineshop package. | Calling **AGB** or **Widerrufsbelehrung** endpoint (which require onlineshop package purchase) with a non-shop domain data | 400 |\n| Invalid domain passed. | Passed domain/host does not match any valid domain | 400 |\n| Passed key/domain do not match. | Sending an invalid combination of domain/API key | 400 |\n| Website has not been configured yet. | Calling API before configuring the domain in the avalex account under the \"Installation\" section | 400 |\n| Ihre Avalex-Lizenz ist am {DATE} abgelaufen. | Domain license has expired | 200 |\n| Form not found. | Issue with form | 400 |\n| Form data not found. | Issue with form data | 400 |\n| Submission for {FORM NAME} not found. | Missing submission for form data | 400 |\n| Placeholder form submission not found. | Missing submission for a dependency form data | 400 |\n\n## Technical Issue Tracking\n\nFor better tracking of the possibly emerging issues, we highly recommend setting up a log file containing the results of the past API calls (status code, error response text, datetime, etc.)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"19401492","collectionId":"ee8e34e3-0376-45fb-9b3b-68234c44cbc1","publishedId":"UVeDt7v5","public":true,"publicUrl":"https://documenter-api.postman.tech/view/19401492/UVeDt7v5","privateUrl":"https://go.postman.co/documentation/19401492-ee8e34e3-0376-45fb-9b3b-68234c44cbc1","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.12.0","publishDate":"2022-02-01T10:46:15.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/UVeDt7v5"}