API Client Documentation

The Axeptio APIClient is a RESTful JSON / HTTP API that allows you to automate configuration and management of Axeptio. It allows the following tasks : ‍ * Listing of projects and collection of their configuration * Creation and modification of projects * Creation of forms and consents registers * Collection of all tokens for a project * History and state of consents for a given token and project * Search of all tokens that accepted a specific consent

API Crawlability

The Axeptio APIClient is conceived to be easily browsed, by a developer or a machine. A "links" object is systematically here and shows links related to the consulted resource.

Authentification

Every request done on Axeptio API must be authentified by a Bearer Token obtained by a previous authentification To obtain your token, you'll have identify yourself by executing the following request :

HTTP POST https://api.axept.io/v1/auth/local/signin

By passing in payload the login informations :

{
"username": "the email address you associated to the account",
"password": "hopefully not 123456"
}

This method will then return a token that you can use to authenticate consecutive requests. Either by defining the header 'Authorization: Bearer ${token}', or by adding the parameter '?access_token=${token}' to called URLs.

cURL authentification example

curl -X POST -k -i --header 'Content-Type: application/json' 'https://api.axept.io/v1/auth/local/signin' --data '{"username":"username","password":"*******"}'

Project anatomy

An Axeptio project is composed of the following properties : * `active`: Boolean indicating if the project is active (no demo banner) * `configuration`: Object with details of the project * `name`: Name of the project (displayed to users in the consents details page) * `website`: website URL where the project is based * `dataProcessor`: Informations related to the person in charge of the personal data processing * `documents`: List of contractual documents under users approval. * `processingActivities`: List of data processes that requires a consent

Documents

A document is a file that you show to the user so that he will approve it. It can be TOS or any other document. The document object is made of the following properties : * `identifier`: Unique identifier of the document (for ex: tos, nda). * `name`: Name of document as displayed in the consent collection banner * `language`: language identifier ISO 638-1 of source file. * `file`: Details on uploaded file * `originalName`: Name of uploaded file * `uploadedAt`: Date and hour when the file was updated * `size`: Weight of the file in cctets.

Personal data processes (newsletter, …) Axeptio organizes personal data processes based on GDPR requirements. ‍ * `identifier`: Unique identifier of process (for ex: prospection ou newsletter). * `name`: Name of process as displayed in the consent collection banner * `language`: language identifier ISO 638-1 of consents detail * `personalDataTypes`: Types of processed personal datas * `dataTransferThirdParties`: List of third parties having access to personal datas * `consentWithdrawProcedure`: Consent withdrawal procedure (text) * `accept`: Unambiguous approval phrase submitted to final user

Projects recuperation

HTTP GET https://api.axept.io/v1/client/

Returns a table with all projects

Project recuparation

HTTP GET https://api.axept.io/v1/client/:id

Return details of the specified project

Project tokens recuperation

HTTP GET https://api.axept.io/v1/client/:id/tokens

* Paginated results * Return details of the specified project

Consents recuperation

HTTP GET https://api.axept.io/v1/client/:id/consents/:token

* Paginated results * Returns an object containing * `state` => state of the token consents for every processes and documents configured in the project * `history` => list of consents events

Liste of tokens that have given a specific consent

HTTP GET https://api.axept.io/v1/client/:id/tokens/accepted/:identifier

Allows to collect the list of all tokens that have given a specific consent. Usual case : before a newsletter is sent, allows to create an updated list of all emails to check that they must be included in the process