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
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 -X POST -k -i --header 'Content-Type: application/json' 'https://api.axept.io/v1/auth/local/signin' --data '{"username":"username","password":"*******"}'
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