MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

This API is not authenticated.

AltaCall

Get transformation presets

Retrieves transformation presets available for the provided license.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/presets" \
    --header "X-License: string required License ID. Example: 1234-5678-9012-3456" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/presets"
);

const headers = {
    "X-License": "string required License ID. Example: 1234-5678-9012-3456",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "results": [
        {
            "id": 1,
            "name": "Preset 1"
        }
    ]
}
 

Request      

GET api/it/presets

Headers

X-License      

Example: string required License ID. Example: 1234-5678-9012-3456

Content-Type      

Example: application/json

Accept      

Example: application/json

License

Get license status

Validates a license key and returns its status along with the associated user. Results are cached (30min if valid, 5min if invalid) to limit upstream calls.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/altacall/license" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"license_id\": \"1234-5678-9012-3456\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/license"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "license_id": "1234-5678-9012-3456"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Valid license):


{
    "license_status": "valid",
    "user": "john_doe"
}
 

Example response (200, Invalid license):


{
    "license_status": "invalid",
    "user": "unknown"
}
 

Example response (422):


{
    "error": "Missing license ID"
}
 

Request      

GET api/altacall/license

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

license_id   string   

The license key to validate. Example: 1234-5678-9012-3456

Get license status

Validates a license key and returns its status along with the associated user. Results are cached (30min if valid, 5min if invalid) to limit upstream calls.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/license" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"license_id\": \"1234-5678-9012-3456\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/license"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "license_id": "1234-5678-9012-3456"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Valid license):


{
    "license_status": "valid",
    "user": "john_doe"
}
 

Example response (200, Invalid license):


{
    "license_status": "invalid",
    "user": "unknown"
}
 

Example response (422):


{
    "error": "Missing license ID"
}
 

Request      

POST api/altacall/license

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

license_id   string   

The license key to validate. Example: 1234-5678-9012-3456

Events

Store a new event

Creates and processes a plugin event (e.g., device capture added/removed). The user is resolved from the authentication middleware token.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/event" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": \"{\\\"device_id\\\": \\\"abc123\\\"}\",
    \"type\": \"device.capture.added\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/event"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "data": "{\"device_id\": \"abc123\"}",
    "type": "device.capture.added"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (201, Event processed):


{
    "actions": [
        "config.update"
    ]
}
 

Example response (400, Missing fields):


{
    "error": "Missing required fields"
}
 

Example response (400, Unknown event type):


{
    "error": "Unknown event device.capture.added"
}
 

Example response (400, Invalid event data):


{
    "error": "Validation error details"
}
 

Example response (404):


{
    "error": "User not found"
}
 

Request      

POST api/altacall/event

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

data   object   

Event payload specific to the event type. Example: {"device_id": "abc123"}

type   string   

Event type. Supported: noop, device.capture.added, device.capture.removed, device.capture.none, audio.state.changed. Example: device.capture.added

Configuration

Update entity configuration

Updates a configuration key for a user, machine, or process entity. The license is validated (cached 1h) before any update is applied. Certain keys (transfo_preset_id, ap_*, transfo_mode, neutral params) are silently blocked if option_manual is not set in the entity's config.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/config_autopost" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"l\": \"1234-5678-9012-3456\",
    \"id_type\": \"user_id\",
    \"id\": \"user456\",
    \"key\": \"transfo_preset_id\",
    \"value\": \"-1\",
    \"user_id\": \"user456\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/config_autopost"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "l": "1234-5678-9012-3456",
    "id_type": "user_id",
    "id": "user456",
    "key": "transfo_preset_id",
    "value": "-1",
    "user_id": "user456"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Update successful):


[]
 

Example response (200, Silently blocked (option_manual not set)):


[]
 

Example response (200, Entity not found):


{
    "error": "no entity matching this id"
}
 

Example response (400):


{
    "error": "Missing required parameters"
}
 

Example response (403):


{
    "error": "Invalid or non-existing license"
}
 

Request      

POST api/altacall/config_autopost

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

l   string   

License ID (dashes allowed). Can also be passed via X-License header. Example: 1234-5678-9012-3456

id_type   string   

Entity type to update. Accepted: user_id, machine_id, process_id. Example: user_id

id   string   

Public ID of the entity to update. Example: user456

key   string   

Configuration key to update. Example: transfo_preset_id

value   mixed   

New value for the configuration key. Example: -1

user_id   string  optional  

optional Required when id_type is machine_id — resolves the user instead of the machine. Example: user456

Get dynamic configuration

Returns the merged configuration for the Alta Call plugin. Config is built by layering general, app-specific, version-specific, license, and user/machine settings. Transfo preset parameters are resolved and injected automatically.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/altacall/config?a=alta-call&v=1.0.0&license_id=1234-5678-9012-3456&user_id=user456&process_id=proc789" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/config"
);

const params = {
    "a": "alta-call",
    "v": "1.0.0",
    "license_id": "1234-5678-9012-3456",
    "user_id": "user456",
    "process_id": "proc789",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, Full config resolved):


{
    "appname": "alta-call",
    "version": "1.0.0",
    "transfo_preset_id": 1,
    "transfo_mode": "AUTO",
    "device_capture": "Microphone (Jabra BIZ 2400 II)",
    "device_playback": "VoiceMeeter Input",
    "rec_in": true,
    "rec_out": false
}
 

Example response (200, Outdated plugin version):


{
    "msg": "You are running an outdated version of Alta Call, please upgrade."
}
 

Example response (403):


{
    "error": "Invalid or non-existing license",
    "ipAddress": "1.2.3.4"
}
 

Example response (422):


{
    "error": "Missing arguments for GET"
}
 

Request      

GET api/altacall/config

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

a   string   

Application name. Example: alta-call

v   string   

Plugin version. Example: 1.0.0

license_id   string  optional  

optional License ID (dashes allowed). Can also be passed via X-License header. Example: 1234-5678-9012-3456

user_id   string  optional  

optional User public ID. Merges user/machine config when provided. Example: user456

process_id   string  optional  

optional Process ID. Updates process last_update timestamp when provided. Example: proc789

Updates consent preferences (data collection, anonymized data, recording) for a given user. Each updated consent key is timestamped automatically. Accepts boolean or string boolean values. License is validated before any update. license_id can also be passed via X-License header.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/consent" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"license_id\": \"1234-5678-9012-3456\",
    \"user_id\": \"user456\",
    \"data_collection\": true,
    \"anonymized_data\": false,
    \"recording\": true
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/consent"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "license_id": "1234-5678-9012-3456",
    "user_id": "user456",
    "data_collection": true,
    "anonymized_data": false,
    "recording": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Consent updated):


[]
 

Example response (400, Missing parameters):


{
    "error": "Missing required parameters"
}
 

Example response (400, Invalid payload (no valid consent key or bad value)):


{
    "error": "Invalid payload"
}
 

Example response (400, Invalid user ID format):


{
    "error": "Invalid user ID"
}
 

Example response (400, User not found in license group):


{
    "error": "Invalid user"
}
 

Example response (403):


{
    "error": "Invalid or non-existing license"
}
 

Returns the current consent preferences for a given user. Returns null for any consent type that has never been explicitly set. license_id can also be passed via X-License header.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/altacall/consent?license_id=1234-5678-9012-3456&user_id=user456" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/consent"
);

const params = {
    "license_id": "1234-5678-9012-3456",
    "user_id": "user456",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "consent_data_collection": true,
    "consent_anonymized_data": false,
    "consent_recording": null
}
 

Example response (400):


{
    "error": "User ID is required"
}
 

Example response (403):


{
    "error": "Invalid or non-existing license"
}
 

Example response (404):


{
    "error": "User not found"
}
 

Process

Declare a new process

Registers or updates a running Alta Call process with its associated user, machine, and license data. Handles gzip-compressed request bodies. Resolves geolocation from the client IP. If the plugin version is below the minimum required, the process is logged as outdated and a version warning is returned instead. All database writes are executed in a single atomic transaction.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/process" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"process_id\": \"proc-123e4567-e89b\",
    \"userconfig_id\": \"config456\",
    \"installation_id\": \"install789\",
    \"machine_id\": \"machine101\",
    \"machine_OS\": \"Windows\",
    \"machine_OS_VERSION\": \"10\",
    \"user_id\": \"user456\",
    \"license_id\": \"1234-5678-9012-3456\",
    \"appname\": \"alta-call\",
    \"version\": \"1.0.0\",
    \"CI_JOB_ID\": \"job123\",
    \"uptime\": 3600,
    \"data_sent_size\": 1024,
    \"local_ip_address\": \"192.168.1.10\",
    \"username\": \"John Doe\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/process"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "process_id": "proc-123e4567-e89b",
    "userconfig_id": "config456",
    "installation_id": "install789",
    "machine_id": "machine101",
    "machine_OS": "Windows",
    "machine_OS_VERSION": "10",
    "user_id": "user456",
    "license_id": "1234-5678-9012-3456",
    "appname": "alta-call",
    "version": "1.0.0",
    "CI_JOB_ID": "job123",
    "uptime": 3600,
    "data_sent_size": 1024,
    "local_ip_address": "192.168.1.10",
    "username": "John Doe"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Process registered):


[]
 

Example response (200, Outdated plugin version):


false
 

Example response (403, Invalid license):


"Licence invalide"
 

Example response (405, Wrong HTTP method):


"Méthode non autorisée"
 

Example response (422, Missing required fields):


"Arguments manquants pour POST"
 

Request      

POST api/altacall/process

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

process_id   string   

Unique process UUID. Example: proc-123e4567-e89b

userconfig_id   string   

User configuration ID. Example: config456

installation_id   string   

Installation ID. Example: install789

machine_id   string   

Machine public ID. Example: machine101

machine_OS   string   

Operating system name. Example: Windows

machine_OS_VERSION   string   

Operating system version. Example: 10

user_id   string   

User public ID. Example: user456

license_id   string   

License ID (dashes allowed). Example: 1234-5678-9012-3456

appname   string   

Application name. Example: alta-call

version   string   

Plugin version. Example: 1.0.0

CI_JOB_ID   string   

CI build job ID. Example: job123

uptime   integer   

Process uptime in seconds. Example: 3600

data_sent_size   integer   

Amount of data sent in bytes. Example: 1024

local_ip_address   string  optional  

optional Client local IP address (used for geolocation fallback). Example: 192.168.1.10

username   string  optional  

optional Display name of the user. Example: John Doe

Telemetry

Post telemetry data

Receives and processes a telemetry payload from a running Alta Call instance. Validates the license (via X-License header or payload), checks the plugin version, resolves User/Machine/Process entities, records audio devices and audiostream state, stores the telemetry entry, and runs issue detection on the machine. Telemetry storage is skipped if the session is locked and already recorded. Downtime payloads (containing a datetime field) are stored immediately and return early. All entity updates are executed in a single atomic transaction.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/telemetry" \
    --header "X-License: string optional License ID (alternative to embedding it in the payload)." \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"process_id\": \"proc-123e4567-e89b\",
    \"appname\": \"alta-call\",
    \"version\": \"1.0.0\",
    \"appdata\": [],
    \"datetime\": \"2024-01-15T10:30:00Z\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/telemetry"
);

const headers = {
    "X-License": "string optional License ID (alternative to embedding it in the payload).",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "process_id": "proc-123e4567-e89b",
    "appname": "alta-call",
    "version": "1.0.0",
    "appdata": [],
    "datetime": "2024-01-15T10:30:00Z"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Telemetry stored):


{
    "status": "success"
}
 

Example response (200, Downtime payload stored):


""
 

Example response (200, Outdated plugin version):


""
 

Example response (403, Invalid license):


"Invalid license"
 

Example response (404, User or machine not found):


"User not found"
 

Example response (500):


{
    "status": "error",
    "message": "Error details here."
}
 

Request      

POST api/altacall/telemetry

Headers

X-License      

Example: string optional License ID (alternative to embedding it in the payload).

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

process_id   string   

Running process UUID. Example: proc-123e4567-e89b

appname   string   

Application name. Example: alta-call

version   string   

Plugin version. Example: 1.0.0

appdata   object   

Full telemetry payload (audio, libs, UI state, etc.).

datetime   string  optional  

optional ISO 8601 datetime — present only for downtime/catch-up payloads. Example: 2024-01-15T10:30:00Z

Logs Store a plugin log Accepts a log file from the Alta Call plugin, either as `multipart/form-data` or `application/octet-stream` (JSON body with optional base64-encoded content). Once stored, old logs for the same machine/user pair are automatically pruned.

POST api/altacall/logs

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/altacall/logs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"log\": \"architecto\",
    \"machine\": \"DESKTOP-ABC123\",
    \"user\": \"john.doe\",
    \"machine_id\": \"DESKTOP-ABC123\",
    \"user_id\": \"john.doe\",
    \"log_content\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/altacall/logs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "log": "architecto",
    "machine": "DESKTOP-ABC123",
    "user": "john.doe",
    "machine_id": "DESKTOP-ABC123",
    "user_id": "john.doe",
    "log_content": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "status": "success",
    "file": "2024-01-15_12-30-00_DESKTOP-ABC123_john.doe.log",
    "message": "Log enregistré avec succès."
}
 

Example response (500):


{
    "status": "error",
    "message": "Error details here."
}
 

Request      

POST api/altacall/logs

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

log   string|array  optional  

optional (octet-stream) Raw log content (fallback if log_content absent). Example: architecto

machine   string   

(multipart) Machine identifier. Max 100 chars. Example: DESKTOP-ABC123

user   string   

(multipart) User identifier. Max 100 chars. Example: john.doe

machine_id   string   

(octet-stream) Machine identifier or ID. Example: DESKTOP-ABC123

user_id   string   

(octet-stream) User identifier or ID. Example: john.doe

log_content   string  optional  

optional (octet-stream) Base64-encoded log content. Example: architecto

Authentication

Login

Authenticates an account and returns a Sanctum API token.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john@example.com\",
    \"password\": \"secret123\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john@example.com",
    "password": "secret123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "message": "Login successful",
    "token": "1|abc123...",
    "user": {
        "id": 1,
        "email": "john@example.com"
    }
}
 

Example response (401):


{
    "error": "Invalid credentials"
}
 

Example response (403):


{
    "error": "Account is inactive"
}
 

Example response (422):


{
    "errors": {
        "email": [
            "The email field is required."
        ]
    }
}
 

Request      

POST api/login

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Account email. Example: john@example.com

password   string   

Account password. Example: secret123

Register an account

Creates a new account. Email must be unique.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john@example.com\",
    \"name\": \"John Doe\",
    \"password\": \"secret123\",
    \"client_id\": 1,
    \"password_confirmation\": \"secret123\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john@example.com",
    "name": "John Doe",
    "password": "secret123",
    "client_id": 1,
    "password_confirmation": "secret123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "message": "Account registered successfully",
    "account": {
        "id": 1,
        "email": "john@example.com"
    }
}
 

Example response (422):


{
    "errors": {
        "email": [
            "The email has already been taken."
        ]
    }
}
 

Request      

POST api/register

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Valid email address. Example: john@example.com

name   string   

Display name. Max 255 chars. Example: John Doe

password   string   

Minimum 8 characters, must be confirmed. Example: secret123

client_id   integer  optional  

optional Associated client ID. Example: 1

password_confirmation   string   

Must match password. Example: secret123

Setup invited account

Completes the initial setup for an invited account — sets name, password, and activates it. The setup token is sent by email and expires after 3 days.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/account/setup" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john@example.com\",
    \"new_password\": \"Secret123!\",
    \"new_password_confirmation\": \"Secret123!\",
    \"first_name\": \"John\",
    \"last_name\": \"Doe\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/account/setup"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john@example.com",
    "new_password": "Secret123!",
    "new_password_confirmation": "Secret123!",
    "first_name": "John",
    "last_name": "Doe"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "success": true,
    "message": "Votre compte a été configuré avec succès",
    "data": {
        "account": {
            "id": 1,
            "email": "john@example.com",
            "is_active": true
        }
    }
}
 

Example response (404):


{
    "success": false,
    "message": "Compte introuvable"
}
 

Example response (409):


{
    "success": false,
    "message": "Ce compte est déjà configuré"
}
 

Example response (422):


{
    "success": false,
    "errors": {}
}
 

Request      

POST api/account/setup

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Account email. Example: john@example.com

new_password   string   

Min 8 chars, must contain uppercase, lowercase, digit and special char. Example: Secret123!

new_password_confirmation   string   

Must match new_password. Example: Secret123!

first_name   string   

Min 2, max 255 chars. Example: John

last_name   string  optional  

optional Min 2, max 255 chars. Example: Doe

Request password reset

Sends a password reset email with a token valid for 1 hour.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/forgot-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john@example.com\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/forgot-password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john@example.com"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "message": "Reset password email sent successfully"
}
 

Example response (404):


{
    "error": "Account not found or inactive"
}
 

Example response (422):


{
    "errors": {
        "email": [
            "The selected email is invalid."
        ]
    }
}
 

Example response (500):


{
    "error": "Failed to send reset email"
}
 

Request      

POST api/forgot-password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Registered account email. Example: john@example.com

Reset password

Resets the account password using a valid reset token (expires after 1 hour).

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/reset-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"abc123xyz...\",
    \"password\": \"newSecret123\",
    \"password_confirmation\": \"newSecret123\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/reset-password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "abc123xyz...",
    "password": "newSecret123",
    "password_confirmation": "newSecret123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "message": "Password reset successfully"
}
 

Example response (400):


{
    "error": "Invalid or expired reset token"
}
 

Example response (422):


{
    "errors": {
        "token": [
            "The token field is required."
        ]
    }
}
 

Request      

POST api/reset-password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

token   string   

Reset token received by email. Example: abc123xyz...

password   string   

New password, minimum 8 characters, must be confirmed. Example: newSecret123

password_confirmation   string   

Must match password. Example: newSecret123

Reset password

Resets the account password using a valid reset token (expires after 1 hour).

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/accounts/reset-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"abc123xyz...\",
    \"password\": \"newSecret123\",
    \"password_confirmation\": \"newSecret123\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/accounts/reset-password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "abc123xyz...",
    "password": "newSecret123",
    "password_confirmation": "newSecret123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "message": "Password reset successfully"
}
 

Example response (400):


{
    "error": "Invalid or expired reset token"
}
 

Example response (422):


{
    "errors": {
        "token": [
            "The token field is required."
        ]
    }
}
 

Request      

POST api/accounts/reset-password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

token   string   

Reset token received by email. Example: abc123xyz...

password   string   

New password, minimum 8 characters, must be confirmed. Example: newSecret123

password_confirmation   string   

Must match password. Example: newSecret123

Endpoints

Rafraîchir le token

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/refresh-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/refresh-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/refresh-token

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Exporte les issues en format CSV avec les mêmes filtres que la méthode index.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine-issue/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-issue/export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine-issue/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Exporte les machines en format CSV avec les mêmes filtres que la méthode index.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machines/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machines/export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machines/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Exporte les utilisateurs en format CSV avec les mêmes filtres que la méthode index.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Déconnexion du compte

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/logout"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/logout

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

PUT api/complete_onboarding

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/complete_onboarding" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/complete_onboarding"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/complete_onboarding

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Inviter un compte

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/invite" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"gbailey@example.net\",
    \"role_id\": 16,
    \"group_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/invite"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "gbailey@example.net",
    "role_id": 16,
    "group_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/invite

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

email   string   

Must be a valid email address. Example: gbailey@example.net

role_id   integer  optional  

The id of an existing record in the roles table. Example: 16

group_id   string   

The id of an existing record in the groups table. Example: architecto

GET api/accounts

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/accounts" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/accounts"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/accounts

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/me

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/me

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

PUT api/accounts/{account_id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/accounts/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/accounts/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/accounts/{account_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

account_id   integer   

The ID of the account. Example: 1

DELETE api/accounts/{account_id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/accounts/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/accounts/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/accounts/{account_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

account_id   integer   

The ID of the account. Example: 1

Récupère la liste des utilisateurs avec leurs configurations et paramètres de transformation résolus.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Récupère un utilisateur spécifique par son ID ou session_hash.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user. Example: architecto

Met à jour la configuration d'un utilisateur (transformation, appareils audio, etc.).

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/users/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/users/{id}

PATCH api/users/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user. Example: architecto

Récupère la liste des utilisateurs avec leurs configurations et paramètres de transformation résolus.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users-machines" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users-machines"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users-machines

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Récupère un utilisateur spécifique par son ID ou session_hash.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users-machines/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users-machines/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users-machines/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the users machine. Example: architecto

Met à jour la configuration d'un utilisateur (transformation, appareils audio, etc.).

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/users-machines/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users-machines/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/users-machines/{id}

PATCH api/users-machines/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the users machine. Example: architecto

GET api/addresses

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/addresses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/addresses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/addresses

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/addresses

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/addresses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"country\": \"n\",
    \"locality\": \"g\",
    \"postal_code\": \"zmiyvd\",
    \"address\": \"architecto\",
    \"country_code\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/addresses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "country": "n",
    "locality": "g",
    "postal_code": "zmiyvd",
    "address": "architecto",
    "country_code": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/addresses

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

country   string   

Must not be greater than 255 characters. Example: n

locality   string   

Must not be greater than 255 characters. Example: g

postal_code   string   

Must not be greater than 10 characters. Example: zmiyvd

address   string   

Example: architecto

country_code   string  optional  

Example: architecto

GET api/addresses/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/addresses/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/addresses/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/addresses/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the address. Example: architecto

PUT api/addresses/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/addresses/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"country\": \"n\",
    \"locality\": \"g\",
    \"postal_code\": \"zmiyvd\",
    \"address\": \"architecto\",
    \"country_code\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/addresses/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "country": "n",
    "locality": "g",
    "postal_code": "zmiyvd",
    "address": "architecto",
    "country_code": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/addresses/{id}

PATCH api/addresses/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the address. Example: architecto

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

country   string   

Must not be greater than 255 characters. Example: n

locality   string   

Must not be greater than 255 characters. Example: g

postal_code   string   

Must not be greater than 10 characters. Example: zmiyvd

address   string   

Example: architecto

country_code   string  optional  

Example: architecto

DELETE api/addresses/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/addresses/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/addresses/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/addresses/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the address. Example: architecto

GET api/groups

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/groups

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/groups

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/groups

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

GET api/groups/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/groups/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/groups/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the group. Example: architecto

PUT api/groups/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/groups/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/groups/{id}

PATCH api/groups/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the group. Example: architecto

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

DELETE api/groups/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/groups/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/groups/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the group. Example: architecto

GET api/clients

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/clients

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/clients

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/clients

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/clients/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/clients/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/clients/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the client. Example: architecto

PUT api/clients/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/clients/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/clients/{id}

PATCH api/clients/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the client. Example: architecto

DELETE api/clients/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/clients/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/clients/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the client. Example: architecto

GET api/organization

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/organization" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/organization"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/organization

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/organization

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/organization" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/organization"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/organization

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

GET api/organization/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/organization/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/organization/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/organization/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the organization. Example: architecto

PUT api/organization/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/organization/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/organization/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/organization/{id}

PATCH api/organization/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the organization. Example: architecto

DELETE api/organization/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/organization/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/organization/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/organization/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the organization. Example: architecto

Affiche la liste des résumés utilisateurs.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/user-summaries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user-summaries"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/user-summaries

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau résumé utilisateur.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/user-summaries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"architecto\",
    \"process_id\": \"architecto\",
    \"transfo_id\": \"architecto\",
    \"abtest_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/user-summaries"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "architecto",
    "process_id": "architecto",
    "transfo_id": "architecto",
    "abtest_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/user-summaries

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

user_id   string   

The id of an existing record in the users table. Example: architecto

process_id   string   

The id of an existing record in the process2s table. Example: architecto

transfo_id   string   

The id of an existing record in the transfos table. Example: architecto

abtest_id   string   

The id of an existing record in the abtests table. Example: architecto

Affiche un résumé utilisateur spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/user-summaries/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user-summaries/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/user-summaries/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user summary. Example: architecto

Met à jour un résumé utilisateur spécifique.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/user-summaries/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "http://127.0.0.1:8000/api/user-summaries/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/user-summaries/{id}

PATCH api/user-summaries/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user summary. Example: architecto

Body Parameters

user_id   string  optional  

The id of an existing record in the users table.

process_id   string  optional  

The id of an existing record in the process2s table.

transfo_id   string  optional  

The id of an existing record in the transfos table.

abtest_id   string  optional  

The id of an existing record in the abtests table.

Supprime un résumé utilisateur.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/user-summaries/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user-summaries/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/user-summaries/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user summary. Example: architecto

Liste paginée des transformations d'AB tests avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/abtest-transfos" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/abtest-transfos"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/abtest-transfos

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Créer une nouvelle transformation d'AB test.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/abtest-transfos" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"abtest_id\": \"architecto\",
    \"transfo_id\": \"architecto\",
    \"transfo_weight\": 39,
    \"transfo_params\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/abtest-transfos"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "abtest_id": "architecto",
    "transfo_id": "architecto",
    "transfo_weight": 39,
    "transfo_params": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/abtest-transfos

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

abtest_id   string   

The id of an existing record in the abtests table. Example: architecto

transfo_id   string   

The id of an existing record in the transfos table. Example: architecto

transfo_weight   number  optional  

Must be at least 0. Example: 39

transfo_params   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Afficher une transformation d'AB test spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/abtest-transfos/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/abtest-transfos/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/abtest-transfos/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the abtest transfo. Example: architecto

Mettre à jour une transformation d'AB test.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/abtest-transfos/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transfo_weight\": 27,
    \"transfo_params\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/abtest-transfos/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "transfo_weight": 27,
    "transfo_params": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/abtest-transfos/{id}

PATCH api/abtest-transfos/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the abtest transfo. Example: architecto

Body Parameters

abtest_id   string  optional  

The id of an existing record in the abtests table.

transfo_id   string  optional  

The id of an existing record in the transfos table.

transfo_weight   number  optional  

Must be at least 0. Example: 27

transfo_params   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Supprimer une transformation d'AB test.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/abtest-transfos/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/abtest-transfos/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/abtest-transfos/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the abtest transfo. Example: architecto

Liste des clés API

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/apikeys" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/apikeys"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/apikeys

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Générer et stocker une nouvelle clé API.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/apikeys" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/apikeys"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/apikeys

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Afficher une clé API spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/apikeys/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/apikeys/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/apikeys/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the apikey. Example: architecto

Supprimer une clé API.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/apikeys/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/apikeys/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/apikeys/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the apikey. Example: architecto

Liste paginée des enregistrements audio avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/audiodata" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodata"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/audiodata

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Ajouter un nouvel enregistrement audio.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/audiodata" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:32\",
    \"version\": \"b\",
    \"country\": \"n\",
    \"city\": \"g\",
    \"duration\": 66
}"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodata"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:32",
    "version": "b",
    "country": "n",
    "city": "g",
    "duration": 66
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/audiodata

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

date   string   

Must be a valid date. Example: 2026-03-17T12:04:32

features   object  optional  
config   object  optional  
version   string   

Must not be greater than 50 characters. Example: b

country   string   

Must not be greater than 100 characters. Example: n

city   string   

Must not be greater than 100 characters. Example: g

duration   integer   

Must be at least 1. Example: 66

Afficher un enregistrement audio spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/audiodata/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodata/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/audiodata/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the audiodatum. Example: architecto

Mettre à jour un enregistrement audio.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/audiodata/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:32\",
    \"version\": \"b\",
    \"country\": \"n\",
    \"city\": \"g\",
    \"duration\": 66
}"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodata/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:32",
    "version": "b",
    "country": "n",
    "city": "g",
    "duration": 66
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/audiodata/{id}

PATCH api/audiodata/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the audiodatum. Example: architecto

Body Parameters

date   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

features   object  optional  
config   object  optional  
version   string  optional  

Must not be greater than 50 characters. Example: b

country   string  optional  

Must not be greater than 100 characters. Example: n

city   string  optional  

Must not be greater than 100 characters. Example: g

duration   integer  optional  

Must be at least 1. Example: 66

Supprimer un enregistrement audio.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/audiodata/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodata/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/audiodata/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the audiodatum. Example: architecto

Liste paginée des audiodevices avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/audiodevices" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodevices"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/audiodevices

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Ajouter un nouvel audiodevice.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/audiodevices" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"type\": \"n\",
    \"ins\": 84,
    \"outs\": 12,
    \"md5\": \"m\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodevices"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "type": "n",
    "ins": 84,
    "outs": 12,
    "md5": "m"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/audiodevices

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

type   string   

Must not be greater than 50 characters. Example: n

ins   integer   

Must be at least 0. Example: 84

outs   integer   

Must be at least 0. Example: 12

descr_json   object  optional  
md5   string   

Must not be greater than 255 characters. Example: m

Afficher un audiodevice spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/audiodevices/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodevices/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/audiodevices/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the audiodevice. Example: architecto

Mettre à jour un audiodevice.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/audiodevices/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"type\": \"n\",
    \"ins\": 84,
    \"outs\": 12,
    \"md5\": \"m\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodevices/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "type": "n",
    "ins": 84,
    "outs": 12,
    "md5": "m"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/audiodevices/{id}

PATCH api/audiodevices/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the audiodevice. Example: architecto

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

type   string  optional  

Must not be greater than 50 characters. Example: n

ins   integer  optional  

Must be at least 0. Example: 84

outs   integer  optional  

Must be at least 0. Example: 12

descr_json   object  optional  
md5   string  optional  

Must not be greater than 255 characters. Example: m

Supprimer un audiodevice.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/audiodevices/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiodevices/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/audiodevices/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the audiodevice. Example: architecto

Liste paginée des audiostreams avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/audiostream" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiostream"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/audiostream

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Création d'un nouvel audiostream.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/audiostream" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"last_update\": \"2026-03-17T12:04:32\",
    \"uptime\": 16,
    \"transfo_id\": 16,
    \"transfo_mode\": \"architecto\",
    \"full_latency\": 4326.41688,
    \"voice_level\": 4326.41688,
    \"noise_level\": 4326.41688,
    \"proccomptimeframe_mean\": 4326.41688,
    \"proccomptimeframe_max\": 4326.41688,
    \"ptcomptimeframe_mean\": 4326.41688,
    \"ptcomptimeframe_max\": 4326.41688,
    \"framesize_max\": 16,
    \"backend_xruns\": 16,
    \"vmo_xruns\": 16,
    \"catchups\": 16,
    \"device_capture_id\": 16,
    \"device_playback_id\": 16,
    \"capture_device\": \"architecto\",
    \"playback_device\": \"architecto\",
    \"fs\": 16,
    \"virtdev_out_appname_lastupdate\": \"2026-03-17T12:04:32\",
    \"virtdev_out_appname\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/audiostream"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "last_update": "2026-03-17T12:04:32",
    "uptime": 16,
    "transfo_id": 16,
    "transfo_mode": "architecto",
    "full_latency": 4326.41688,
    "voice_level": 4326.41688,
    "noise_level": 4326.41688,
    "proccomptimeframe_mean": 4326.41688,
    "proccomptimeframe_max": 4326.41688,
    "ptcomptimeframe_mean": 4326.41688,
    "ptcomptimeframe_max": 4326.41688,
    "framesize_max": 16,
    "backend_xruns": 16,
    "vmo_xruns": 16,
    "catchups": 16,
    "device_capture_id": 16,
    "device_playback_id": 16,
    "capture_device": "architecto",
    "playback_device": "architecto",
    "fs": 16,
    "virtdev_out_appname_lastupdate": "2026-03-17T12:04:32",
    "virtdev_out_appname": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/audiostream

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

uptime   integer  optional  

Example: 16

transfo_id   integer  optional  

The id of an existing record in the transfos table. Example: 16

transfo_mode   string  optional  

Example: architecto

full_latency   number  optional  

Example: 4326.41688

voice_level   number  optional  

Example: 4326.41688

noise_level   number  optional  

Example: 4326.41688

proccomptimeframe_mean   number  optional  

Example: 4326.41688

proccomptimeframe_max   number  optional  

Example: 4326.41688

ptcomptimeframe_mean   number  optional  

Example: 4326.41688

ptcomptimeframe_max   number  optional  

Example: 4326.41688

framesize_max   integer  optional  

Example: 16

backend_xruns   integer  optional  

Example: 16

vmo_xruns   integer  optional  

Example: 16

catchups   integer  optional  

Example: 16

device_capture_id   integer  optional  

The id of an existing record in the audiodevices table. Example: 16

device_playback_id   integer  optional  

The id of an existing record in the audiodevices table. Example: 16

capture_device   string  optional  

Example: architecto

playback_device   string  optional  

Example: architecto

fs   integer  optional  

Example: 16

virtdev_out_appname_lastupdate   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

virtdev_out_appname   string  optional  

Example: architecto

Afficher un audiostream spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/audiostream/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiostream/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/audiostream/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the audiostream. Example: 1

Mise à jour d'un audiostream.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/audiostream/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"last_update\": \"2026-03-17T12:04:32\",
    \"uptime\": 16,
    \"transfo_id\": 16,
    \"transfo_mode\": \"architecto\",
    \"full_latency\": 4326.41688,
    \"voice_level\": 4326.41688,
    \"noise_level\": 4326.41688,
    \"proccomptimeframe_mean\": 4326.41688,
    \"proccomptimeframe_max\": 4326.41688,
    \"ptcomptimeframe_mean\": 4326.41688,
    \"ptcomptimeframe_max\": 4326.41688,
    \"framesize_max\": 16,
    \"backend_xruns\": 16,
    \"vmo_xruns\": 16,
    \"catchups\": 16,
    \"device_capture_id\": 16,
    \"device_playback_id\": 16,
    \"capture_device\": \"architecto\",
    \"playback_device\": \"architecto\",
    \"fs\": 16,
    \"virtdev_out_appname_lastupdate\": \"2026-03-17T12:04:32\",
    \"virtdev_out_appname\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/audiostream/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "last_update": "2026-03-17T12:04:32",
    "uptime": 16,
    "transfo_id": 16,
    "transfo_mode": "architecto",
    "full_latency": 4326.41688,
    "voice_level": 4326.41688,
    "noise_level": 4326.41688,
    "proccomptimeframe_mean": 4326.41688,
    "proccomptimeframe_max": 4326.41688,
    "ptcomptimeframe_mean": 4326.41688,
    "ptcomptimeframe_max": 4326.41688,
    "framesize_max": 16,
    "backend_xruns": 16,
    "vmo_xruns": 16,
    "catchups": 16,
    "device_capture_id": 16,
    "device_playback_id": 16,
    "capture_device": "architecto",
    "playback_device": "architecto",
    "fs": 16,
    "virtdev_out_appname_lastupdate": "2026-03-17T12:04:32",
    "virtdev_out_appname": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/audiostream/{id}

PATCH api/audiostream/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the audiostream. Example: 1

Body Parameters

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

uptime   integer  optional  

Example: 16

transfo_id   integer  optional  

The id of an existing record in the transfos table. Example: 16

transfo_mode   string  optional  

Example: architecto

full_latency   number  optional  

Example: 4326.41688

voice_level   number  optional  

Example: 4326.41688

noise_level   number  optional  

Example: 4326.41688

proccomptimeframe_mean   number  optional  

Example: 4326.41688

proccomptimeframe_max   number  optional  

Example: 4326.41688

ptcomptimeframe_mean   number  optional  

Example: 4326.41688

ptcomptimeframe_max   number  optional  

Example: 4326.41688

framesize_max   integer  optional  

Example: 16

backend_xruns   integer  optional  

Example: 16

vmo_xruns   integer  optional  

Example: 16

catchups   integer  optional  

Example: 16

device_capture_id   integer  optional  

The id of an existing record in the audiodevices table. Example: 16

device_playback_id   integer  optional  

The id of an existing record in the audiodevices table. Example: 16

capture_device   string  optional  

Example: architecto

playback_device   string  optional  

Example: architecto

fs   integer  optional  

Example: 16

virtdev_out_appname_lastupdate   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

virtdev_out_appname   string  optional  

Example: architecto

Suppression d'un audiostream.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/audiostream/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/audiostream/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/audiostream/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the audiostream. Example: 1

Afficher la liste paginée des configurations avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/config" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/config"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/config

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Créer une nouvelle configuration.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/config" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"key\": \"b\",
    \"value\": \"architecto\",
    \"match_appname\": \"n\",
    \"match_version\": \"g\",
    \"last_update\": \"2026-03-17T12:04:32\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/config"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "key": "b",
    "value": "architecto",
    "match_appname": "n",
    "match_version": "g",
    "last_update": "2026-03-17T12:04:32"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/config

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

key   string   

Must not be greater than 255 characters. Example: b

value   string   

Example: architecto

match_appname   string  optional  

Must not be greater than 255 characters. Example: n

match_version   string  optional  

Must not be greater than 255 characters. Example: g

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

Afficher une configuration spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/config/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/config/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/config/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the config. Example: 1

Mettre à jour une configuration existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/config/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"key\": \"b\",
    \"value\": \"architecto\",
    \"match_appname\": \"n\",
    \"match_version\": \"g\",
    \"last_update\": \"2026-03-17T12:04:32\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/config/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "key": "b",
    "value": "architecto",
    "match_appname": "n",
    "match_version": "g",
    "last_update": "2026-03-17T12:04:32"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/config/{id}

PATCH api/config/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the config. Example: 1

Body Parameters

key   string   

Must not be greater than 255 characters. Example: b

value   string   

Example: architecto

match_appname   string  optional  

Must not be greater than 255 characters. Example: n

match_version   string  optional  

Must not be greater than 255 characters. Example: g

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

Supprimer une configuration spécifique.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/config/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/config/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/config/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the config. Example: 1

Afficher la liste paginée des usages quotidiens avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dailyusage" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dailyusage"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/dailyusage

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Créer un nouvel usage quotidien.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/dailyusage" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"architecto\",
    \"abtest_id\": \"architecto\",
    \"date\": \"2026-03-17T12:04:32\",
    \"transformed_minutes\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/dailyusage"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "architecto",
    "abtest_id": "architecto",
    "date": "2026-03-17T12:04:32",
    "transformed_minutes": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/dailyusage

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

user_id   string   

The id of an existing record in the users table. Example: architecto

abtest_id   string   

The id of an existing record in the abtests table. Example: architecto

date   string   

Must be a valid date. Example: 2026-03-17T12:04:32

transformed_minutes   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

monthly_usage_id   string  optional  

The id of an existing record in the monthly_usages table.

Afficher un usage quotidien spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dailyusage/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dailyusage/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/dailyusage/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the dailyusage. Example: 16

Mettre à jour un usage quotidien existant.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/dailyusage/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"architecto\",
    \"abtest_id\": \"architecto\",
    \"date\": \"2026-03-17T12:04:32\",
    \"transformed_minutes\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/dailyusage/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "architecto",
    "abtest_id": "architecto",
    "date": "2026-03-17T12:04:32",
    "transformed_minutes": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/dailyusage/{id}

PATCH api/dailyusage/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the dailyusage. Example: 16

Body Parameters

user_id   string   

The id of an existing record in the users table. Example: architecto

abtest_id   string   

The id of an existing record in the abtests table. Example: architecto

date   string   

Must be a valid date. Example: 2026-03-17T12:04:32

transformed_minutes   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

monthly_usage_id   string  optional  

The id of an existing record in the monthly_usages table.

Supprimer un usage quotidien spécifique.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/dailyusage/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dailyusage/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/dailyusage/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the dailyusage. Example: 16

Traite les événements audio d'Alta Call (ajout/suppression d'appareils).

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/event" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/event"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/event

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Créer un nouvel événement.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/event" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"creation_date\": \"2026-03-17T12:04:32\",
    \"type\": \"architecto\",
    \"user_id\": \"architecto\",
    \"data\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/event"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "creation_date": "2026-03-17T12:04:32",
    "type": "architecto",
    "user_id": "architecto",
    "data": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/event

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

creation_date   string   

Must be a valid date. Example: 2026-03-17T12:04:32

type   string   

Example: architecto

user_id   string   

The id of an existing record in the users table. Example: architecto

data   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Afficher un événement spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/event/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/event/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/event/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the event. Example: 1

Mettre à jour un événement existant.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/event/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"creation_date\": \"2026-03-17T12:04:32\",
    \"type\": \"architecto\",
    \"user_id\": \"architecto\",
    \"data\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/event/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "creation_date": "2026-03-17T12:04:32",
    "type": "architecto",
    "user_id": "architecto",
    "data": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/event/{id}

PATCH api/event/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the event. Example: 1

Body Parameters

creation_date   string   

Must be a valid date. Example: 2026-03-17T12:04:32

type   string   

Example: architecto

user_id   string   

The id of an existing record in the users table. Example: architecto

data   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Supprimer un événement spécifique.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/event/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/event/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/event/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the event. Example: 1

Liste toutes les factures avec filtrage

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/invoice" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/invoice"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/invoice

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle facture manuelle

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/invoice" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/invoice"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/invoice

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Afficher une facture spécifique

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/invoice/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/invoice/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/invoice/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the invoice. Example: architecto

Mettre à jour une facture existante

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/invoice/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/invoice/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/invoice/{id}

PATCH api/invoice/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the invoice. Example: architecto

Supprimer une facture

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/invoice/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/invoice/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/invoice/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the invoice. Example: architecto

Affiche une liste paginée des enregistrements IP avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ipinfo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ipinfo"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/ipinfo

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouvel enregistrement.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ipinfo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ipv4\\/ipv6\": \"1.102.226.211\",
    \"country\": \"architecto\",
    \"city\": \"architecto\",
    \"update\": \"2026-03-17T12:04:32\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ipinfo"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ipv4\/ipv6": "1.102.226.211",
    "country": "architecto",
    "city": "architecto",
    "update": "2026-03-17T12:04:32"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ipinfo

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

ipv4/ipv6   string   

Must be a valid IP address. Example: 1.102.226.211

country   string   

Example: architecto

city   string   

Example: architecto

update   string   

Must be a valid date. Example: 2026-03-17T12:04:32

Affiche un enregistrement spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ipinfo/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ipinfo/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/ipinfo/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the ipinfo. Example: architecto

Met à jour un enregistrement existant.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/ipinfo/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ipv4\\/ipv6\": \"1.102.226.211\",
    \"country\": \"architecto\",
    \"city\": \"architecto\",
    \"update\": \"2026-03-17T12:04:32\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ipinfo/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ipv4\/ipv6": "1.102.226.211",
    "country": "architecto",
    "city": "architecto",
    "update": "2026-03-17T12:04:32"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/ipinfo/{id}

PATCH api/ipinfo/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the ipinfo. Example: architecto

Body Parameters

ipv4/ipv6   string  optional  

Must be a valid IP address. Example: 1.102.226.211

country   string  optional  

Example: architecto

city   string  optional  

Example: architecto

update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

Supprime un enregistrement.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/ipinfo/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ipinfo/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/ipinfo/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the ipinfo. Example: architecto

Affiche une liste paginée des labels avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/label" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/label"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/label

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau label.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/label" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"group_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/label"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "group_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/label

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

group_id   string   

The id of an existing record in the groups table. Example: architecto

Affiche un label spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/label/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/label/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/label/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

Met à jour un label existant.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/label/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/label/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/label/{id}

PATCH api/label/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

group_id   string  optional  

The id of an existing record in the groups table.

Supprime un label.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/label/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/label/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/label/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

Affiche une liste paginée des licences de l'utilisateur authentifié.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/license" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/license"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/license

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle licence pour l'utilisateur authentifié.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/license" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"fancyname\": \"b\",
    \"group_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/license"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "fancyname": "b",
    "group_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/license

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

fancyname   string  optional  

Must not be greater than 255 characters. Example: b

group_id   string   

The id of an existing record in the groups table. Example: architecto

Affiche une licence spécifique appartenant à l'utilisateur authentifié.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/license/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/license/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/license/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the license. Example: architecto

Supprime une licence spécifique appartenant à l'utilisateur authentifié.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/license/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/license/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/license/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the license. Example: architecto

Affiche une liste paginée des associations machine-audiodevice avec filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine_audio_device" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine_audio_device"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine_audio_device

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle association entre une machine et un audiodevice.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/machine_audio_device" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"machine_id\": \"architecto\",
    \"audiodevice_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machine_audio_device"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "machine_id": "architecto",
    "audiodevice_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/machine_audio_device

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

machine_id   string   

The id of an existing record in the machines table. Example: architecto

audiodevice_id   string   

The id of an existing record in the audiodevices table. Example: architecto

Affiche une association spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine_audio_device/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine_audio_device/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine_audio_device/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine audio device. Example: architecto

Met à jour une association existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/machine_audio_device/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "http://127.0.0.1:8000/api/machine_audio_device/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/machine_audio_device/{id}

PATCH api/machine_audio_device/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine audio device. Example: architecto

Body Parameters

machine_id   string  optional  

The id of an existing record in the machines table.

audiodevice_id   string  optional  

The id of an existing record in the audiodevices table.

Supprime une association machine-audiodevice.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/machine_audio_device/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine_audio_device/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/machine_audio_device/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine audio device. Example: architecto

Affiche une liste paginée des machines avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machines" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machines"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machines

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle machine.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/machines" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"vmo_machine_id\": \"b\",
    \"web_ip_address\": \"1.102.226.211\",
    \"local_ip_address\": \"1.102.226.211\",
    \"country_code\": \"g\",
    \"city\": \"z\",
    \"first_update\": \"2026-03-17T12:04:32\",
    \"last_update\": \"2026-03-17T12:04:32\",
    \"locked\": true,
    \"os\": \"i\",
    \"cpu\": 4326.41688,
    \"cpu_machine\": 4326.41688,
    \"memory\": 16
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machines"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "vmo_machine_id": "b",
    "web_ip_address": "1.102.226.211",
    "local_ip_address": "1.102.226.211",
    "country_code": "g",
    "city": "z",
    "first_update": "2026-03-17T12:04:32",
    "last_update": "2026-03-17T12:04:32",
    "locked": true,
    "os": "i",
    "cpu": 4326.41688,
    "cpu_machine": 4326.41688,
    "memory": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/machines

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

vmo_machine_id   string   

Must not be greater than 255 characters. Example: b

web_ip_address   string   

Must be a valid IP address. Example: 1.102.226.211

local_ip_address   string  optional  

Must be a valid IP address. Example: 1.102.226.211

country_code   string  optional  

Must not be greater than 5 characters. Example: g

city   string  optional  

Must not be greater than 255 characters. Example: z

first_update   string   

Must be a valid date. Example: 2026-03-17T12:04:32

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

locked   boolean   

Example: true

os   string  optional  

Must not be greater than 255 characters. Example: i

cpu   number  optional  

Example: 4326.41688

cpu_machine   number  optional  

Example: 4326.41688

memory   integer  optional  

Example: 16

group_id   string  optional  

The id of an existing record in the groups table.

license_id   string  optional  

The id of an existing record in the licenses table.

GET api/machines/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machines/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machines/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machines/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine. Example: architecto

Met à jour une machine existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/machines/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"vmo_machine_id\": \"b\",
    \"web_ip_address\": \"1.102.226.211\",
    \"local_ip_address\": \"1.102.226.211\",
    \"country_code\": \"g\",
    \"city\": \"z\",
    \"first_update\": \"2026-03-17T12:04:32\",
    \"last_update\": \"2026-03-17T12:04:32\",
    \"locked\": true,
    \"os\": \"i\",
    \"cpu\": 4326.41688,
    \"cpu_machine\": 4326.41688,
    \"memory\": 16
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machines/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "vmo_machine_id": "b",
    "web_ip_address": "1.102.226.211",
    "local_ip_address": "1.102.226.211",
    "country_code": "g",
    "city": "z",
    "first_update": "2026-03-17T12:04:32",
    "last_update": "2026-03-17T12:04:32",
    "locked": true,
    "os": "i",
    "cpu": 4326.41688,
    "cpu_machine": 4326.41688,
    "memory": 16
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/machines/{id}

PATCH api/machines/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine. Example: architecto

Body Parameters

vmo_machine_id   string  optional  

Must not be greater than 255 characters. Example: b

web_ip_address   string  optional  

Must be a valid IP address. Example: 1.102.226.211

local_ip_address   string  optional  

Must be a valid IP address. Example: 1.102.226.211

country_code   string  optional  

Must not be greater than 5 characters. Example: g

city   string  optional  

Must not be greater than 255 characters. Example: z

first_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

locked   boolean  optional  

Example: true

os   string  optional  

Must not be greater than 255 characters. Example: i

cpu   number  optional  

Example: 4326.41688

cpu_machine   number  optional  

Example: 4326.41688

memory   integer  optional  

Example: 16

group_id   string  optional  

The id of an existing record in the groups table.

license_id   string  optional  

The id of an existing record in the licenses table.

Supprime une machine.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/machines/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machines/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/machines/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine. Example: architecto

Affiche une liste paginée des problèmes des machines avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine-issue" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-issue"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine-issue

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau problème pour une machine.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/machine-issue" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"machine_id\": \"architecto\",
    \"first_update\": \"2026-03-17T12:04:32\",
    \"last_update\": \"2026-03-17T12:04:32\",
    \"issue_code\": \"n\",
    \"var1\": \"g\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-issue"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "machine_id": "architecto",
    "first_update": "2026-03-17T12:04:32",
    "last_update": "2026-03-17T12:04:32",
    "issue_code": "n",
    "var1": "g"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/machine-issue

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

machine_id   string   

The id of an existing record in the machines table. Example: architecto

first_update   string   

Must be a valid date. Example: 2026-03-17T12:04:32

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

issue_code   string   

Must not be greater than 255 characters. Example: n

var1   string  optional  

Must not be greater than 255 characters. Example: g

Affiche un problème spécifique d'une machine.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine-issue/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-issue/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine-issue/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine issue. Example: architecto

Met à jour un problème d'une machine existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/machine-issue/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_update\": \"2026-03-17T12:04:32\",
    \"last_update\": \"2026-03-17T12:04:32\",
    \"issue_code\": \"b\",
    \"var1\": \"n\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-issue/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_update": "2026-03-17T12:04:32",
    "last_update": "2026-03-17T12:04:32",
    "issue_code": "b",
    "var1": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/machine-issue/{id}

PATCH api/machine-issue/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine issue. Example: architecto

Body Parameters

machine_id   string  optional  

The id of an existing record in the machines table.

first_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

issue_code   string  optional  

Must not be greater than 255 characters. Example: b

var1   string  optional  

Must not be greater than 255 characters. Example: n

Supprime un problème d'une machine.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/machine-issue/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-issue/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/machine-issue/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine issue. Example: architecto

Affiche une liste paginée des résumés des machines avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine-summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine-summary

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau résumé pour une machine.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/machine-summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"machine_id\": \"architecto\",
    \"date\": \"2026-03-17T12:04:32\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "machine_id": "architecto",
    "date": "2026-03-17T12:04:32"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/machine-summary

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

machine_id   string   

The id of an existing record in the machines table. Example: architecto

date   string   

Must be a valid date. Example: 2026-03-17T12:04:32

Affiche un résumé spécifique d'une machine.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/machine-summary/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-summary/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/machine-summary/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine summary. Example: architecto

Met à jour un résumé d'une machine existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/machine-summary/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:33\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-summary/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:33"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/machine-summary/{id}

PATCH api/machine-summary/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine summary. Example: architecto

Body Parameters

machine_id   string  optional  

The id of an existing record in the machines table.

date   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:33

Supprime un résumé d'une machine.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/machine-summary/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/machine-summary/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/machine-summary/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the machine summary. Example: architecto

Affiche une liste paginée des usages mensuels avec recherche et filtres dynamiques.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/monthly-usage" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/monthly-usage"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/monthly-usage

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouvel usage mensuel.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/monthly-usage" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client_id\": \"architecto\",
    \"date\": \"2026-03-17T12:04:33\",
    \"active_users\": 16,
    \"transformed_minutes\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/monthly-usage"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "client_id": "architecto",
    "date": "2026-03-17T12:04:33",
    "active_users": 16,
    "transformed_minutes": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/monthly-usage

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

client_id   string   

The id of an existing record in the clients table. Example: architecto

date   string   

Must be a valid date. Example: 2026-03-17T12:04:33

active_users   integer   

Example: 16

transformed_minutes   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Affiche un usage mensuel spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/monthly-usage/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/monthly-usage/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/monthly-usage/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the monthly usage. Example: architecto

Met à jour un usage mensuel existant.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/monthly-usage/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:33\",
    \"active_users\": 16,
    \"transformed_minutes\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/monthly-usage/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:33",
    "active_users": 16,
    "transformed_minutes": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/monthly-usage/{id}

PATCH api/monthly-usage/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the monthly usage. Example: architecto

Body Parameters

client_id   string  optional  

The id of an existing record in the clients table.

date   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:33

active_users   integer  optional  

Example: 16

transformed_minutes   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Supprime un usage mensuel.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/monthly-usage/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/monthly-usage/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/monthly-usage/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the monthly usage. Example: architecto

Affiche une liste paginée des machines obsolètes avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/outdated-machine" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/outdated-machine"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/outdated-machine

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle machine obsolète.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/outdated-machine" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"group_id\": \"architecto\",
    \"last_update\": \"2026-03-17T12:04:33\",
    \"last_process_uuid\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",
    \"local_ip_address\": \"1.102.226.211\",
    \"hostname\": \"g\",
    \"vmo_machine_id\": \"z\",
    \"version\": \"m\",
    \"last_vmo_user_id\": \"i\",
    \"last_user_name\": \"y\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/outdated-machine"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "group_id": "architecto",
    "last_update": "2026-03-17T12:04:33",
    "last_process_uuid": "a4855dc5-0acb-33c3-b921-f4291f719ca0",
    "local_ip_address": "1.102.226.211",
    "hostname": "g",
    "vmo_machine_id": "z",
    "version": "m",
    "last_vmo_user_id": "i",
    "last_user_name": "y"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/outdated-machine

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

group_id   string   

The id of an existing record in the groups table. Example: architecto

last_update   string   

Must be a valid date. Example: 2026-03-17T12:04:33

last_process_uuid   string   

Must not be greater than 255 characters. Example: a4855dc5-0acb-33c3-b921-f4291f719ca0

local_ip_address   string  optional  

Must be a valid IP address. Example: 1.102.226.211

hostname   string  optional  

Must not be greater than 255 characters. Example: g

vmo_machine_id   string  optional  

Must not be greater than 255 characters. Example: z

version   string  optional  

Must not be greater than 50 characters. Example: m

last_vmo_user_id   string  optional  

Must not be greater than 255 characters. Example: i

last_user_name   string  optional  

Must not be greater than 255 characters. Example: y

Affiche une machine obsolète spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/outdated-machine/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/outdated-machine/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/outdated-machine/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the outdated machine. Example: architecto

Met à jour une machine obsolète existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/outdated-machine/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"last_update\": \"2026-03-17T12:04:33\",
    \"last_process_uuid\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",
    \"local_ip_address\": \"1.102.226.211\",
    \"hostname\": \"g\",
    \"vmo_machine_id\": \"z\",
    \"version\": \"m\",
    \"last_vmo_user_id\": \"i\",
    \"last_user_name\": \"y\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/outdated-machine/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "last_update": "2026-03-17T12:04:33",
    "last_process_uuid": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
    "local_ip_address": "1.102.226.211",
    "hostname": "g",
    "vmo_machine_id": "z",
    "version": "m",
    "last_vmo_user_id": "i",
    "last_user_name": "y"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/outdated-machine/{id}

PATCH api/outdated-machine/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the outdated machine. Example: architecto

Body Parameters

group_id   string  optional  

The id of an existing record in the groups table.

last_update   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:33

last_process_uuid   string  optional  

Must not be greater than 255 characters. Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

local_ip_address   string  optional  

Must be a valid IP address. Example: 1.102.226.211

hostname   string  optional  

Must not be greater than 255 characters. Example: g

vmo_machine_id   string  optional  

Must not be greater than 255 characters. Example: z

version   string  optional  

Must not be greater than 50 characters. Example: m

last_vmo_user_id   string  optional  

Must not be greater than 255 characters. Example: i

last_user_name   string  optional  

Must not be greater than 255 characters. Example: y

Supprime une machine obsolète.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/outdated-machine/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/outdated-machine/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/outdated-machine/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the outdated machine. Example: architecto

Affiche une liste paginée des metrics de performance avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/performance-metric" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/performance-metric"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/performance-metric

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle métrique de performance.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/performance-metric" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:33\",
    \"kpis\": [],
    \"segment\": \"b\",
    \"user_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/performance-metric"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:33",
    "kpis": [],
    "segment": "b",
    "user_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/performance-metric

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

date   string   

Must be a valid date. Example: 2026-03-17T12:04:33

kpis   object   
metadata   object  optional  
segment   string  optional  

Must not be greater than 255 characters. Example: b

user_id   string   

The id of an existing record in the users table. Example: architecto

abtest_id   string  optional  

The id of an existing record in the abtests table.

daily_summary_id   string  optional  

The id of an existing record in the user_daily_summaries table.

Affiche une métrique de performance spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/performance-metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/performance-metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/performance-metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the performance metric. Example: architecto

Met à jour une métrique de performance existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/performance-metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:33\",
    \"segment\": \"b\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/performance-metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:33",
    "segment": "b"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/performance-metric/{id}

PATCH api/performance-metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the performance metric. Example: architecto

Body Parameters

date   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:33

kpis   object  optional  
metadata   object  optional  
segment   string  optional  

Must not be greater than 255 characters. Example: b

user_id   string  optional  

The id of an existing record in the users table.

abtest_id   string  optional  

The id of an existing record in the abtests table.

daily_summary_id   string  optional  

The id of an existing record in the user_daily_summaries table.

Supprime une métrique de performance.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/performance-metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/performance-metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/performance-metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the performance metric. Example: architecto

Affiche la liste paginée des tarifs avec des filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/pricing" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/pricing"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/pricing

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau tarif.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/pricing" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client_id\": \"architecto\",
    \"code\": \"n\",
    \"transformation_id\": \"architecto\",
    \"excluding_tax_price\": 4326.41688,
    \"vat_rate\": 4326.41688
}"
const url = new URL(
    "http://127.0.0.1:8000/api/pricing"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "client_id": "architecto",
    "code": "n",
    "transformation_id": "architecto",
    "excluding_tax_price": 4326.41688,
    "vat_rate": 4326.41688
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/pricing

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

client_id   string   

The id of an existing record in the clients table. Example: architecto

code   string   

Must not be greater than 50 characters. Example: n

transformation_id   string   

The id of an existing record in the transformations table. Example: architecto

excluding_tax_price   number   

Example: 4326.41688

vat_rate   number   

Example: 4326.41688

Affiche un tarif spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/pricing/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/pricing/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/pricing/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the pricing. Example: architecto

Met à jour un tarif spécifique.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/pricing/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"b\",
    \"excluding_tax_price\": 4326.41688,
    \"vat_rate\": 4326.41688
}"
const url = new URL(
    "http://127.0.0.1:8000/api/pricing/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "code": "b",
    "excluding_tax_price": 4326.41688,
    "vat_rate": 4326.41688
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/pricing/{id}

PATCH api/pricing/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the pricing. Example: architecto

Body Parameters

client_id   string  optional  

The id of an existing record in the clients table.

code   string  optional  

Must not be greater than 50 characters. Example: b

transformation_id   string  optional  

The id of an existing record in the transformations table.

excluding_tax_price   number  optional  

Example: 4326.41688

vat_rate   number  optional  

Example: 4326.41688

Supprime un tarif.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/pricing/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/pricing/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/pricing/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the pricing. Example: architecto

Affiche la liste paginée des processus.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/process" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/process"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/process

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau processus.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/process" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"architecto\",
    \"machine_id\": \"architecto\",
    \"cpu_usage\": 4326.41688,
    \"config\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/process"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "architecto",
    "machine_id": "architecto",
    "cpu_usage": 4326.41688,
    "config": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/process

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

user_id   string   

The id of an existing record in the users table. Example: architecto

machine_id   string   

The id of an existing record in the machines table. Example: architecto

audiostream1_id   string  optional  

The id of an existing record in the audiostreams table.

last_telemetry_id   string  optional  

The id of an existing record in the telemetries table.

cpu_usage   number  optional  

Example: 4326.41688

config   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Affiche un processus spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/process/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/process/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/process/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the process. Example: architecto

Met à jour un processus spécifique.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/process/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cpu_usage\": 4326.41688,
    \"config\": \"[\\\"architecto\\\",\\\"architecto\\\"]\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/process/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cpu_usage": 4326.41688,
    "config": "[\"architecto\",\"architecto\"]"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/process/{id}

PATCH api/process/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the process. Example: architecto

Body Parameters

user_id   string  optional  

The id of an existing record in the users table.

machine_id   string  optional  

The id of an existing record in the machines table.

audiostream1_id   string  optional  

The id of an existing record in the audiostreams table.

last_telemetry_id   string  optional  

The id of an existing record in the telemetries table.

cpu_usage   number  optional  

Example: 4326.41688

config   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

Supprime un processus.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/process/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/process/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/process/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the process. Example: architecto

Crée une nouvelle version logicielle.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/software_version" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "version=architecto"\
    --form "release_date=2026-03-17T12:04:33"\
    --form "description=Eius et animi quos velit et."\
    --form "os_architecture=architecto"\
    --form "file_size=16"\
    --form "is_active="\
    --form "file=@C:\Users\jean.tognibo\AppData\Local\Temp\php72BC.tmp" 
const url = new URL(
    "http://127.0.0.1:8000/api/software_version"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('version', 'architecto');
body.append('release_date', '2026-03-17T12:04:33');
body.append('description', 'Eius et animi quos velit et.');
body.append('os_architecture', 'architecto');
body.append('file_size', '16');
body.append('is_active', '');
body.append('file', document.querySelector('input[name="file"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());

Request      

POST api/software_version

Headers

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

Body Parameters

version   string   

Example: architecto

release_date   string   

Must be a valid date. Example: 2026-03-17T12:04:33

description   string  optional  

Example: Eius et animi quos velit et.

os_architecture   string   

Example: architecto

file   file   

Must be a file. Example: C:\Users\jean.tognibo\AppData\Local\Temp\php72BC.tmp

file_size   integer   

Example: 16

is_active   boolean   

Example: false

Affiche une version logicielle spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/software_version/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/software_version/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/software_version/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the software version. Example: architecto

Met à jour une version logicielle spécifique.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/software_version/architecto" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "version=architecto"\
    --form "release_date=2026-03-17T12:04:33"\
    --form "description=Eius et animi quos velit et."\
    --form "os_architecture=architecto"\
    --form "file_size=16"\
    --form "is_active="\
    --form "file=@C:\Users\jean.tognibo\AppData\Local\Temp\php72CE.tmp" 
const url = new URL(
    "http://127.0.0.1:8000/api/software_version/architecto"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('version', 'architecto');
body.append('release_date', '2026-03-17T12:04:33');
body.append('description', 'Eius et animi quos velit et.');
body.append('os_architecture', 'architecto');
body.append('file_size', '16');
body.append('is_active', '');
body.append('file', document.querySelector('input[name="file"]').files[0]);

fetch(url, {
    method: "PUT",
    headers,
    body,
}).then(response => response.json());

Request      

PUT api/software_version/{id}

PATCH api/software_version/{id}

Headers

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the software version. Example: architecto

Body Parameters

version   string  optional  

Example: architecto

release_date   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:33

description   string  optional  

Example: Eius et animi quos velit et.

os_architecture   string  optional  

Example: architecto

file   file  optional  

Must be a file. Example: C:\Users\jean.tognibo\AppData\Local\Temp\php72CE.tmp

file_size   integer  optional  

Example: 16

is_active   boolean  optional  

Example: false

Supprime une version logicielle.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/software_version/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/software_version/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/software_version/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the software version. Example: architecto

Affiche la liste paginée des transformations (transfos).

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transfo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transfo"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/transfo

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle transformation.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/transfo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transfo_mode\": \"architecto\",
    \"fancyname\": \"architecto\",
    \"params\": \"[\\\"architecto\\\",\\\"architecto\\\"]\",
    \"public\": false,
    \"minimal_ui\": true
}"
const url = new URL(
    "http://127.0.0.1:8000/api/transfo"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "transfo_mode": "architecto",
    "fancyname": "architecto",
    "params": "[\"architecto\",\"architecto\"]",
    "public": false,
    "minimal_ui": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/transfo

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

transfo_mode   string   

Example: architecto

fancyname   string  optional  

Example: architecto

params   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

public   boolean  optional  

Example: false

minimal_ui   boolean  optional  

Example: true

Affiche une transformation spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transfo/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transfo/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/transfo/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the transfo. Example: architecto

Met à jour une transformation spécifique.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/transfo/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transfo_mode\": \"architecto\",
    \"fancyname\": \"architecto\",
    \"params\": \"[\\\"architecto\\\",\\\"architecto\\\"]\",
    \"public\": false,
    \"minimal_ui\": true
}"
const url = new URL(
    "http://127.0.0.1:8000/api/transfo/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "transfo_mode": "architecto",
    "fancyname": "architecto",
    "params": "[\"architecto\",\"architecto\"]",
    "public": false,
    "minimal_ui": true
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/transfo/{id}

PATCH api/transfo/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the transfo. Example: architecto

Body Parameters

transfo_mode   string  optional  

Example: architecto

fancyname   string  optional  

Example: architecto

params   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

public   boolean  optional  

Example: false

minimal_ui   boolean  optional  

Example: true

Supprime une transformation.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/transfo/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transfo/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/transfo/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the transfo. Example: architecto

Affiche la liste paginée des résumés quotidiens des utilisateurs.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/user_daily_summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user_daily_summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/user_daily_summary

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau résumé quotidien pour un utilisateur.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/user_daily_summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:33\",
    \"user_id\": \"architecto\",
    \"transfo_id\": \"architecto\",
    \"duration\": 16,
    \"is_up\": false,
    \"connected_app\": \"architecto\",
    \"f0_median\": 4326.41688,
    \"inputvoiceddb_median\": 4326.41688
}"
const url = new URL(
    "http://127.0.0.1:8000/api/user_daily_summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:33",
    "user_id": "architecto",
    "transfo_id": "architecto",
    "duration": 16,
    "is_up": false,
    "connected_app": "architecto",
    "f0_median": 4326.41688,
    "inputvoiceddb_median": 4326.41688
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/user_daily_summary

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

date   string   

Must be a valid date. Example: 2026-03-17T12:04:33

user_id   string   

The id of an existing record in the users table. Example: architecto

transfo_id   string   

The id of an existing record in the transfos table. Example: architecto

duration   integer   

Example: 16

is_up   boolean   

Example: false

connected_app   string  optional  

Example: architecto

f0_median   number  optional  

Example: 4326.41688

inputvoiceddb_median   number  optional  

Example: 4326.41688

Affiche un résumé quotidien spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/user_daily_summary/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user_daily_summary/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/user_daily_summary/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user daily summary. Example: architecto

Met à jour un résumé quotidien spécifique.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/user_daily_summary/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"2026-03-17T12:04:33\",
    \"duration\": 16,
    \"is_up\": false,
    \"connected_app\": \"architecto\",
    \"f0_median\": 4326.41688,
    \"inputvoiceddb_median\": 4326.41688
}"
const url = new URL(
    "http://127.0.0.1:8000/api/user_daily_summary/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date": "2026-03-17T12:04:33",
    "duration": 16,
    "is_up": false,
    "connected_app": "architecto",
    "f0_median": 4326.41688,
    "inputvoiceddb_median": 4326.41688
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/user_daily_summary/{id}

PATCH api/user_daily_summary/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user daily summary. Example: architecto

Body Parameters

date   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:33

user_id   string  optional  

The id of an existing record in the users table.

transfo_id   string  optional  

The id of an existing record in the transfos table.

duration   integer  optional  

Example: 16

is_up   boolean  optional  

Example: false

connected_app   string  optional  

Example: architecto

f0_median   number  optional  

Example: 4326.41688

inputvoiceddb_median   number  optional  

Example: 4326.41688

Supprime un résumé quotidien.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/user_daily_summary/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user_daily_summary/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/user_daily_summary/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user daily summary. Example: architecto

GET api/user-label

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/user-label" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user-label"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/user-label

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

POST api/user-label

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/user-label" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"architecto\",
    \"label_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/user-label"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "architecto",
    "label_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/user-label

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

user_id   string   

The id of an existing record in the users table. Example: architecto

label_id   string   

The id of an existing record in the labels table. Example: architecto

PUT api/user-label/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/user-label/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "http://127.0.0.1:8000/api/user-label/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/user-label/{id}

PATCH api/user-label/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user label. Example: architecto

Body Parameters

user_id   string  optional  

The id of an existing record in the users table.

label_id   string  optional  

The id of an existing record in the labels table.

DELETE api/user-label/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/user-label/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/user-label/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/user-label/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user label. Example: architecto

Affiche une liste paginée des métriques avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/metric" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/metric"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/metric

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle métrique.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/metric" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"time\": \"2026-03-17T12:04:33\",
    \"name\": \"b\",
    \"segment\": \"n\",
    \"value\": 4326.41688,
    \"client_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/metric"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "time": "2026-03-17T12:04:33",
    "name": "b",
    "segment": "n",
    "value": 4326.41688,
    "client_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/metric

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

time   string   

Must be a valid date. Example: 2026-03-17T12:04:33

name   string   

Must not be greater than 255 characters. Example: b

segment   string   

Must not be greater than 255 characters. Example: n

value   number   

Example: 4326.41688

client_id   string   

The id of an existing record in the clients table. Example: architecto

Affiche une métrique spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the metric. Example: architecto

Met à jour une métrique existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"segment\": \"n\",
    \"value\": 4326.41688
}"
const url = new URL(
    "http://127.0.0.1:8000/api/metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "segment": "n",
    "value": 4326.41688
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/metric/{id}

PATCH api/metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the metric. Example: architecto

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

segment   string  optional  

Must not be greater than 255 characters. Example: n

value   number  optional  

Example: 4326.41688

client_id   string  optional  

The id of an existing record in the clients table.

Supprime une métrique.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the metric. Example: architecto

Impersonate un utilisateur

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/impersonate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/impersonate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/impersonate

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Arrêter l'impersonation et revenir à l'utilisateur original

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/impersonate/stop" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/impersonate/stop"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/impersonate/stop

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

DELETE api/groups/{group}/remove-member/{userId}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/groups/architecto/remove-member/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto/remove-member/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/groups/{group}/remove-member/{userId}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

group   string   

The group. Example: architecto

userId   string   

Example: architecto

GET api/users/group/{group_id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users/group/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/group/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users/group/{group_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

group_id   string   

The ID of the group. Example: architecto

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/users/architecto/reset-consent" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto/reset-consent"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

GET api/groups/{group_id}/members

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/groups/architecto/members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto/members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/groups/{group_id}/members

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

group_id   string   

The ID of the group. Example: architecto

POST api/groups/{group_id}/members

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/groups/architecto/members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto/members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/groups/{group_id}/members

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

group_id   string   

The ID of the group. Example: architecto

PUT api/groups/{group_id}/members/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/groups/architecto/members/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto/members/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/groups/{group_id}/members/{id}

PATCH api/groups/{group_id}/members/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

group_id   string   

The ID of the group. Example: architecto

id   string   

The ID of the member. Example: architecto

DELETE api/groups/{group_id}/members/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/groups/architecto/members/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/groups/architecto/members/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/groups/{group_id}/members/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

group_id   string   

The ID of the group. Example: architecto

id   string   

The ID of the member. Example: architecto

GET api/users/{user_id}/labels

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users/architecto/labels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto/labels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/users/{user_id}/labels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

The ID of the user. Example: architecto

POST api/users/{user_id}/labels

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/users/architecto/labels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"architecto\",
    \"label_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto/labels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "architecto",
    "label_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/users/{user_id}/labels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

The ID of the user. Example: architecto

Body Parameters

user_id   string   

The id of an existing record in the users table. Example: architecto

label_id   string   

The id of an existing record in the labels table. Example: architecto

PUT api/users/{user_id}/labels/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/users/architecto/labels/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto/labels/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/users/{user_id}/labels/{id}

PATCH api/users/{user_id}/labels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

The ID of the user. Example: architecto

id   string   

The ID of the label. Example: architecto

Body Parameters

user_id   string  optional  

The id of an existing record in the users table.

label_id   string  optional  

The id of an existing record in the labels table.

DELETE api/users/{user_id}/labels/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/users/architecto/labels/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto/labels/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/users/{user_id}/labels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

The ID of the user. Example: architecto

id   string   

The ID of the label. Example: architecto

Traite les actions groupées sur les machines

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/machines/action" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"architecto\",
    \"objects\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "http://127.0.0.1:8000/api/machines/action"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "action": "architecto",
    "objects": [
        "architecto"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/machines/action

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

action   string   

Example: architecto

objects   string[]  optional  

Batch action sur les utilisateurs

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/users/action" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/action"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/users/action

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Affiche une liste paginée des métriques avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/metric" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/metric"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/it/metric

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée une nouvelle métrique.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/it/metric" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"time\": \"2026-03-17T12:04:33\",
    \"name\": \"b\",
    \"segment\": \"n\",
    \"value\": 4326.41688,
    \"client_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/it/metric"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "time": "2026-03-17T12:04:33",
    "name": "b",
    "segment": "n",
    "value": 4326.41688,
    "client_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/it/metric

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

time   string   

Must be a valid date. Example: 2026-03-17T12:04:33

name   string   

Must not be greater than 255 characters. Example: b

segment   string   

Must not be greater than 255 characters. Example: n

value   number   

Example: 4326.41688

client_id   string   

The id of an existing record in the clients table. Example: architecto

Affiche une métrique spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/it/metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the metric. Example: architecto

Met à jour une métrique existante.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/it/metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"segment\": \"n\",
    \"value\": 4326.41688
}"
const url = new URL(
    "http://127.0.0.1:8000/api/it/metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "segment": "n",
    "value": 4326.41688
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/it/metric/{id}

PATCH api/it/metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the metric. Example: architecto

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

segment   string  optional  

Must not be greater than 255 characters. Example: n

value   number  optional  

Example: 4326.41688

client_id   string  optional  

The id of an existing record in the clients table.

Supprime une métrique.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/it/metric/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/metric/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/it/metric/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the metric. Example: architecto

Affiche une liste paginée des labels avec recherche et filtres.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/labels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/labels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/it/labels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Crée un nouveau label.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/it/labels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"group_id\": \"architecto\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/it/labels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "group_id": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/it/labels

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

group_id   string   

The id of an existing record in the groups table. Example: architecto

Affiche un label spécifique.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/labels/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/labels/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/it/labels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

Met à jour un label existant.

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/it/labels/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/it/labels/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/it/labels/{id}

PATCH api/it/labels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

group_id   string  optional  

The id of an existing record in the groups table.

Supprime un label.

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/it/labels/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/labels/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/it/labels/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

DELETE api/users/{user}/labels/by-label/{labelId}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/users/architecto/labels/by-label/architecto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users/architecto/labels/by-label/architecto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/users/{user}/labels/by-label/{labelId}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user   string   

The user. Example: architecto

labelId   string   

Example: architecto

Assigne un label à un ou plusieurs utilisateurs en utilisant leurs noms.

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/label/architecto/assign" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_names\": [
        \"b\"
    ]
}"
const url = new URL(
    "http://127.0.0.1:8000/api/label/architecto/assign"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_names": [
        "b"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/label/{id}/assign

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the label. Example: architecto

Body Parameters

user_names   string[]  optional  

Must not be greater than 255 characters.

POST api/suggestion

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/suggestion" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client_id\": \"architecto\",
    \"message\": \"n\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/suggestion"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "client_id": "architecto",
    "message": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/suggestion

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

client_id   string   

The id of an existing record in the clients table. Example: architecto

message   string   

Must not be greater than 1000 characters. Example: n

POST api/it/recordings

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/it/recordings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/recordings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/it/recordings

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Affiche la liste des utilitaires externes disponibles

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/external-utilities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/external-utilities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 3000
x-ratelimit-remaining: 2999
vary: Origin
 

{
    "utilities": [],
    "total": 0
}
 

Request      

GET api/external-utilities

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Récupère les statistiques sur les utilitaires

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/external-utilities/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/external-utilities/stats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 3000
x-ratelimit-remaining: 2998
vary: Origin
 

{
    "total_utilities": 0,
    "active_utilities": 0,
    "by_os": [],
    "by_architecture": []
}
 

Request      

GET api/external-utilities/stats

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Récupère les informations d'un utilitaire spécifique

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/external-utilities/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/external-utilities/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 3000
x-ratelimit-remaining: 2997
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\ExternalUtility] 16"
}
 

Request      

GET api/external-utilities/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the external utility. Example: 16

Télécharge un utilitaire externe

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/external-utilities/16/download" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/external-utilities/16/download"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 3000
x-ratelimit-remaining: 2996
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\ExternalUtility] 16"
}
 

Request      

GET api/external-utilities/{id}/download

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the external utility. Example: 16

Legal

Returns the Alta Call privacy policy and consent grants, localized based on the locale query param or the Accept-Language header. Defaults to English.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/terms?locale=fr-fr" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/terms"
);

const params = {
    "locale": "fr-fr",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "altacall_privacy_policy": {
        "contact": {
            "email": "privacy@alta-voce.tech",
            "email_delete_subject": "Data deletion request",
            "email_delete_body": "Please delete my data..."
        },
        "content": "Full policy text...",
        "last_update": "2021-03-15",
        "grants": {
            "data_collection": {
                "label": "Mandatory data collection",
                "text": "Technical data..."
            }
        }
    }
}
 

Request      

GET api/it/terms

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

locale   string  optional  

optional Locale code. Accepted: fr-fr, or any BCP 47 tag. Example: fr-fr

Meta

Get dashboard metadata

Returns metadata used to populate dashboard filters: countries, transformations, labels, plugin versions, machine issues, connected apps, and active A/B tests.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/meta?group=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/meta"
);

const params = {
    "group": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "countries": [
        {
            "code": "FR",
            "name": "France"
        }
    ],
    "transformations": [
        {
            "id": 1,
            "name": "Standard",
            "transfo_mode": "AUTO",
            "params": {}
        }
    ],
    "labels": [
        "vip",
        "remote"
    ],
    "versions": [
        "1.2.0",
        "1.1.0"
    ],
    "issues": [
        "no_capture",
        "no_playback"
    ],
    "connected_apps": [
        {
            "name": "Teams",
            "label": "Microsoft Teams"
        }
    ],
    "abtests": [
        {
            "id": 1,
            "name": "Test A",
            "users": 42
        }
    ]
}
 

Example response (400):


{
    "detail": "Invalid group ID."
}
 

Request      

GET api/meta

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

group   integer  optional  

optional Filter all metadata to a specific group ID. Example: 1

Get dashboard metadata

Returns metadata used to populate dashboard filters: countries, transformations, labels, plugin versions, machine issues, connected apps, and active A/B tests.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/meta?group=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/meta"
);

const params = {
    "group": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "countries": [
        {
            "code": "FR",
            "name": "France"
        }
    ],
    "transformations": [
        {
            "id": 1,
            "name": "Standard",
            "transfo_mode": "AUTO",
            "params": {}
        }
    ],
    "labels": [
        "vip",
        "remote"
    ],
    "versions": [
        "1.2.0",
        "1.1.0"
    ],
    "issues": [
        "no_capture",
        "no_playback"
    ],
    "connected_apps": [
        {
            "name": "Teams",
            "label": "Microsoft Teams"
        }
    ],
    "abtests": [
        {
            "id": 1,
            "name": "Test A",
            "users": 42
        }
    ]
}
 

Example response (400):


{
    "detail": "Invalid group ID."
}
 

Request      

GET api/it/meta

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

group   integer  optional  

optional Filter all metadata to a specific group ID. Example: 1

Software

List software versions

Returns all active software versions grouped by version number, ordered by release date descending. Each version includes its changelog and download URLs per architecture.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/software-versions?os_architecture=win-x64" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/software-versions"
);

const params = {
    "os_architecture": "win-x64",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "version": "1.2.0",
        "date": "2024-01-15T00:00:00+00:00",
        "changelog": [
            "Fix audio device detection",
            "Improve stability"
        ],
        "urls": [
            {
                "name": "Windows 64-bit",
                "url": "https://example.com/software-versions/1/download"
            },
            {
                "name": "macOS Intel",
                "url": "https://example.com/software-versions/2/download"
            }
        ]
    }
]
 

Request      

GET api/software-versions

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

os_architecture   string  optional  

optional Filter by architecture. Accepted: win-x64, osx-x64, osx-arm64. Example: win-x64

Download a software version

Streams the installer file for a given software version. The filename is formatted as altacall-{version}-{os_architecture}.{ext}.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/software-versions/1/download" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/software-versions/1/download"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, File download):

Binary data - 
 

Example response (404, Version not found):


{
    "message": "No query results for model"
}
 

Example response (404, File missing on disk):


{
    "message": "File not found"
}
 

Request      

GET api/software-versions/{id}/download

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The software version ID. Example: 1

List software versions

Returns all active software versions grouped by version number, ordered by release date descending. Each version includes its changelog and download URLs per architecture.

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/software_version?os_architecture=win-x64" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/software_version"
);

const params = {
    "os_architecture": "win-x64",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "version": "1.2.0",
        "date": "2024-01-15T00:00:00+00:00",
        "changelog": [
            "Fix audio device detection",
            "Improve stability"
        ],
        "urls": [
            {
                "name": "Windows 64-bit",
                "url": "https://example.com/software-versions/1/download"
            },
            {
                "name": "macOS Intel",
                "url": "https://example.com/software-versions/2/download"
            }
        ]
    }
]
 

Request      

GET api/software_version

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

os_architecture   string  optional  

optional Filter by architecture. Accepted: win-x64, osx-x64, osx-arm64. Example: win-x64

Tests A/B

Récupère une liste paginée des tests A/B avec la possibilité de filtrer par nom, groupe ou statut d'activité (en cours). Inclut le nombre d'utilisateurs et les transformations liées.

Liste des tests A/B

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/abtests?group_id=5&group=5&enabled=1&ongoing=1&page_size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/abtests"
);

const params = {
    "group_id": "5",
    "group": "5",
    "enabled": "1",
    "ongoing": "1",
    "page_size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/abtests

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

group_id   integer  optional  

Filtre par l'ID du groupe associé. Example: 5

group   integer  optional  

Alias de group_id. Example: 5

enabled   boolean  optional  

Filtre les tests activés ou désactivés. Example: true

ongoing   boolean  optional  

Si "true", retourne uniquement les tests dont la date actuelle est comprise entre 'start' et 'end'. Example: true

page_size   integer  optional  

Nombre de résultats par page. Default: 20. Example: 10

Response

Response Fields

next   string|null   

URL de la page suivante.

previous   string|null   

URL de la page précédente.

results   object[]   

Liste des tests A/B (Abtest models).

  • @param Request $request

Créer un test A/B

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/abtests" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"\\\"Optimisation Voix Q4\\\"\",
    \"enabled\": true,
    \"start\": \"2024-01-01\",
    \"end\": \"2024-12-31\",
    \"worktime_start\": \"08:00\",
    \"worktime_end\": \"18:00\",
    \"group_id\": 5,
    \"data_email\": \"data@altavoce.fr\",
    \"report_email\": \"reports@altavoce.fr\",
    \"efx_email\": \"tech@altavoce.fr\",
    \"kpis\": \"[\\\"architecto\\\",\\\"architecto\\\"]\",
    \"timezone\": \"Asia\\/Ulaanbaatar\",
    \"goal_agents\": 16,
    \"goal_hours\": 16,
    \"firstday_all_off\": false,
    \"transformations\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "http://127.0.0.1:8000/api/abtests"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "\"Optimisation Voix Q4\"",
    "enabled": true,
    "start": "2024-01-01",
    "end": "2024-12-31",
    "worktime_start": "08:00",
    "worktime_end": "18:00",
    "group_id": 5,
    "data_email": "data@altavoce.fr",
    "report_email": "reports@altavoce.fr",
    "efx_email": "tech@altavoce.fr",
    "kpis": "[\"architecto\",\"architecto\"]",
    "timezone": "Asia\/Ulaanbaatar",
    "goal_agents": 16,
    "goal_hours": 16,
    "firstday_all_off": false,
    "transformations": [
        "architecto"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/abtests

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Nom du test. Example: "Optimisation Voix Q4"

enabled   boolean  optional  

Activer le test immédiatement. Example: true

start   date  optional  

Date de début (Y-m-d). Example: 2024-01-01

end   date  optional  

Date de fin (doit être après le début). Example: 2024-12-31

worktime_start   string  optional  

Format H:i. Example: 08:00

worktime_end   string  optional  

Format H:i (doit être après le début). Example: 18:00

label_id   string  optional  

The id of an existing record in the labels table.

group_id   integer   

ID du groupe de destination. Example: 5

data_email   string  optional  

Email pour les données brutes. Example: data@altavoce.fr

report_email   string  optional  

Email pour les rapports. Example: reports@altavoce.fr

efx_email   string  optional  

Email pour les effets. Example: tech@altavoce.fr

kpis   string  optional  

Must be a valid JSON string. Example: ["architecto","architecto"]

timezone   string  optional  

Must not be greater than 150 characters. Example: Asia/Ulaanbaatar

goal_agents   integer  optional  

Example: 16

goal_hours   integer  optional  

Example: 16

firstday_all_off   boolean  optional  

Example: false

transformations   string[]  optional  

Liste des transformations à appliquer.

transfo_id   integer  optional  

ID de la transformation. Example: 16

transfo   object  optional  
id   string  optional  

The id of an existing record in the transfos table.

weight   number  optional  

Poids (0 à 1). Example: 0.5

transfo_weight   number  optional  

Must be at least 0. Must not be greater than 1. Example: 1

transfo_params   string  optional  

Example: architecto

Détails d'un test A/B

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/abtests/12" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/abtests/12"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/abtests/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

L'ID du test A/B. Example: 12

Mettre à jour un test A/B

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/abtests/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"architecto\",
    \"enabled\": false,
    \"start\": \"2026-03-17T12:04:32\",
    \"end\": \"2052-04-09\",
    \"worktime_start\": \"12:04\",
    \"worktime_end\": \"2052-04-09\",
    \"group_id\": \"architecto\",
    \"data_email\": \"zbailey@example.net\",
    \"efx_email\": \"gulgowski.asia@example.com\",
    \"report_email\": \"idickens@example.org\",
    \"timezone\": \"Asia\\/Sakhalin\",
    \"goal_agents\": 16,
    \"goal_hours\": 16,
    \"firstday_all_off\": false,
    \"transformations\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "http://127.0.0.1:8000/api/abtests/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "architecto",
    "enabled": false,
    "start": "2026-03-17T12:04:32",
    "end": "2052-04-09",
    "worktime_start": "12:04",
    "worktime_end": "2052-04-09",
    "group_id": "architecto",
    "data_email": "zbailey@example.net",
    "efx_email": "gulgowski.asia@example.com",
    "report_email": "idickens@example.org",
    "timezone": "Asia\/Sakhalin",
    "goal_agents": 16,
    "goal_hours": 16,
    "firstday_all_off": false,
    "transformations": [
        "architecto"
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/abtests/{id}

PATCH api/abtests/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

L'ID du test A/B à modifier. Example: 16

Body Parameters

name   string   

Nom du test. Example: architecto

enabled   boolean  optional  

Statut du test. Example: false

start   string  optional  

Must be a valid date. Example: 2026-03-17T12:04:32

end   string  optional  

Must be a valid date. Must be a date after or equal to start. Example: 2052-04-09

worktime_start   string  optional  

Must be a valid date in the format H:i. Example: 12:04

worktime_end   string  optional  

Must be a valid date in the format H:i. Must be a date after worktime_start. Example: 2052-04-09

label_id   string  optional  

The id of an existing record in the labels table.

group_id   string   

The id of an existing record in the groups table. Example: architecto

data_email   string  optional  

Must not be greater than 255 characters. Example: zbailey@example.net

efx_email   string  optional  

Must not be greater than 255 characters. Example: gulgowski.asia@example.com

report_email   string   

Must not be greater than 255 characters. Example: idickens@example.org

kpis   object  optional  
timezone   string  optional  

Must not be greater than 150 characters. Example: Asia/Sakhalin

goal_agents   integer  optional  

Example: 16

goal_hours   integer  optional  

Example: 16

firstday_all_off   boolean  optional  

Example: false

transformations   string[]  optional  

Liste mise à jour des transformations.

transfo_id   string  optional  

The id of an existing record in the transfos table.

transfo   object  optional  
id   string  optional  

The id of an existing record in the transfos table.

weight   number  optional  

Must be at least 0. Must not be greater than 1. Example: 1

transfo_weight   number  optional  

Must be at least 0. Must not be greater than 1. Example: 1

transfo_params   string  optional  

Example: architecto

Supprimer un test A/B

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/abtests/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/abtests/16"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200):


{
    "message": "A/B Test supprimé avec succès"
}
 

Request      

DELETE api/abtests/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

L'ID du test A/B à supprimer. Example: 16

Assigner à des utilisateurs

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/abtests/16/assign" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_names\": [
        \"Jean Dupont\",
        \"Alice Martin\"
    ]
}"
const url = new URL(
    "http://127.0.0.1:8000/api/abtests/16/assign"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_names": [
        "Jean Dupont",
        "Alice Martin"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "message": "A/B test assigné aux utilisateurs avec succès.",
    "assigned_count": 2
}
 

Request      

POST api/abtests/{id}/assign

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

L'ID du test A/B. Example: 16

Body Parameters

user_names   string[]   

Liste des noms d'utilisateurs.

Télécharger les données (CSV)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/it/abtests/16/csv" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/it/abtests/16/csv"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


content-type=text/csv
 

Request      

GET api/it/abtests/{id}/csv

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

L'ID du test A/B. Example: 16