MENU navbar-image

Introduction

API REST du backoffice BougeMaVille — gestion des signalements citoyens, formulaires, utilisateurs et statistiques par municipalité.

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

Base URL

https://api.dev.bouge.io

Authenticating requests

This API is authenticated by sending an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

API Tokens

Gestion des tokens d'API par company (accès programmatique).

GET api/{company}/tokens

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/6/tokens" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/6/tokens"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/tokens

URL Parameters

company  string  

POST api/{company}/tokens

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/622385/tokens" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/622385/tokens"
);

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

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

Request      

POST api/{company}/tokens

URL Parameters

company  string  

Auth

Authentication API

Forgot password

Envoie un email de réinitialisation de mot de passe.

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/forgot-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"operateur@maville.fr\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/forgot-password"
);

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

let body = {
    "email": "operateur@maville.fr"
};

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

Request      

POST api/forgot-password

Body Parameters

email  string  

Email du compte CRM pour lequel réinitialiser le mot de passe. validation.email.

Reset password

Réinitialise le mot de passe via le token reçu par email.

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/reset-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"operateur@maville.fr\",
    \"password\": \"nouveau_secret\",
    \"token_reset_password\": \"1|abc123...\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/reset-password"
);

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

let body = {
    "email": "operateur@maville.fr",
    "password": "nouveau_secret",
    "token_reset_password": "1|abc123..."
};

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

Request      

POST api/reset-password

Body Parameters

email  string  

Email du compte CRM. validation.email.

password  string  

Nouveau mot de passe.

token_reset_password  string  

Token reçu par email lors de la demande de réinitialisation.

Login user

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/citizen/tokens" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identifier\": \"citoyen@maville.fr\",
    \"password\": \"secret\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/tokens"
);

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

let body = {
    "identifier": "citoyen@maville.fr",
    "password": "secret"
};

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

Request      

POST api/citizen/tokens

Body Parameters

identifier  string  

Email ou numéro de téléphone du citoyen.

password  string  

Mot de passe.

firebase  string optional  

Token Firebase pour les notifications push (optionnel).

Logout user

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/logout" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/logout"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/logout

Show current user with his company

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/704737220/users/me" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/704737220/users/me"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/users/me

URL Parameters

company  string  

Show current user with his company

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/users/me" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/users/me"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/me

Login user

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/tokens" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"operateur@maville.fr\",
    \"password\": \"secret\",
    \"firebase\": \"vero\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/tokens"
);

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

let body = {
    "email": "operateur@maville.fr",
    "password": "secret",
    "firebase": "vero"
};

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

Example response (200):


{
    "token": "1|abc123def456...",
    "user": {
        "id": 12,
        "name": "Marie Dupont",
        "email": "marie.dupont@maville.fr",
        "locale": "fr",
        "company_id": 3,
        "active": true
    }
}
 

Example response (401):


{
    "error": "Wrong username or password"
}
 

Example response (403):


{
    "error": "User deactivated"
}
 

Example response (422, Validation error):


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

Request      

POST api/tokens

Body Parameters

email  string  

Email de l'opérateur CRM.

password  string  

Mot de passe.

firebase  string optional  

Token Firebase pour les notifications push (optionnel).

Backoffice Info

Read-only consolidated endpoints for backoffice overview pages.

GET api/{company}/backoffice/forms/{formId}/info

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/5818957/backoffice/forms/19094823647913074/info" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/5818957/backoffice/forms/19094823647913074/info"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/backoffice/forms/{formId}/info

URL Parameters

company  string  

formId  string  

GET api/{company}/backoffice/overview

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/01/backoffice/overview" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/01/backoffice/overview"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/backoffice/overview

URL Parameters

company  string  

Banoc geocoder

Proxy vers l'API de géocodage BANOC. Les paramètres sont transmis tels quels et la réponse retournée sans transformation.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/banoc/geocode/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/banoc/geocode/search"
);

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

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

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 100
x-ratelimit-remaining: 91
vary: Origin
 

{
    "message": "validation.required",
    "errors": {
        "q": [
            "validation.required"
        ]
    }
}
 

GET api/banoc/geocode/coordinates

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/banoc/geocode/coordinates" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/banoc/geocode/coordinates"
);

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

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

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 100
x-ratelimit-remaining: 90
vary: Origin
 

{
    "message": "validation.required (and 2 more errors)",
    "errors": {
        "latitude": [
            "validation.required"
        ],
        "longitude": [
            "validation.required"
        ],
        "level": [
            "validation.required"
        ]
    }
}
 

Request      

GET api/banoc/geocode/coordinates

Citizen

Timeline agrégée de l'activité d'un citoyen : signalements, messages, likes et commentaires, triés par date décroissante. Fonctionne pour un citoyen connecté (Sanctum, les 4 types) comme pour un device anonyme (device_uuid, signalements seulement). Identité résolue par priorité : compte > device_uuid.

Feed d'activité du citoyen connecté ou du device anonyme.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/citizen/activity?type=report&per_page=25&device_uuid=9f1c..." \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"sint\",
    \"per_page\": 60,
    \"device_uuid\": \"ea\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/activity"
);

const params = {
    "type": "report",
    "per_page": "25",
    "device_uuid": "9f1c...",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "type": "sint",
    "per_page": 60,
    "device_uuid": "ea"
};

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

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 100
x-ratelimit-remaining: 89
vary: Origin
 

{
    "message": "validation.in",
    "errors": {
        "type": [
            "validation.in"
        ]
    }
}
 

Request      

GET api/citizen/activity

Query Parameters

type  string optional  

Restreint à un seul type. Enum: report,message,reaction,comment.

per_page  integer optional  

Nombre d'items par page.

device_uuid  string optional  

Identifiant device pour le mode anonyme (ignoré si un compte est connecté).

Body Parameters

type  string optional  

per_page  integer optional  

validation.min validation.max.

device_uuid  string optional  

Citizen Auth

Inscription d'un citoyen via l'UUID de la company (sans application spécifique).

POST api/public/{companyUuid}/{lang}/register

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/public/molestiae/deserunt/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"zwmivfxdyxkcnzcpbcxtyfnphzhisrrjzhqshjrzkcuhlwzrryyfjskpfayyesxqleozkcmfetyfjayrzzjqmspgsfvetrfyghnvtcmziypbqtmhofkwymcvfwruhzvnwyyoxkin\",
    \"email\": \"kglggxyatvosqgsdmxctrnhlygmmijry\",
    \"phone\": \"gxgwyfusruzznmojnbhlbyjpkombupfkzxucrylgydjlktlhvdcckluuufdbhoqhgrcibfoojbvpxzirwqumlrfbvhfyvrkcjldvjuwxcoodvhruxfhslhtwxyqcwnmwcpxcmqfixwxmvuopwssgntmurkqrsznfwaktdqpqbypquqaxhukfdfoxpsqnubnwqglfjgyhaqfqfawbszkrbwecakpgpdscgwfldoontsagaetsipczoyak\",
    \"password\": \"dolorem\",
    \"firebase\": \"ea\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/public/molestiae/deserunt/register"
);

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

let body = {
    "name": "zwmivfxdyxkcnzcpbcxtyfnphzhisrrjzhqshjrzkcuhlwzrryyfjskpfayyesxqleozkcmfetyfjayrzzjqmspgsfvetrfyghnvtcmziypbqtmhofkwymcvfwruhzvnwyyoxkin",
    "email": "kglggxyatvosqgsdmxctrnhlygmmijry",
    "phone": "gxgwyfusruzznmojnbhlbyjpkombupfkzxucrylgydjlktlhvdcckluuufdbhoqhgrcibfoojbvpxzirwqumlrfbvhfyvrkcjldvjuwxcoodvhruxfhslhtwxyqcwnmwcpxcmqfixwxmvuopwssgntmurkqrsznfwaktdqpqbypquqaxhukfdfoxpsqnubnwqglfjgyhaqfqfawbszkrbwecakpgpdscgwfldoontsagaetsipczoyak",
    "password": "dolorem",
    "firebase": "ea"
};

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

Request      

POST api/public/{companyUuid}/{lang}/register

URL Parameters

companyUuid  string  

lang  string  

Body Parameters

name  string  

validation.min validation.max.

email  string optional  

validation.required_without validation.email validation.max.

phone  string optional  

validation.required_without validation.max.

password  string  

firebase  string optional  

GET api/public/{companyUuid}/{lang}/verify

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/nesciunt/id/verify" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/nesciunt/id/verify"
);

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
x-ratelimit-limit: 1000
x-ratelimit-remaining: 969
vary: Origin
 

{
    "message": "",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "line": 1172,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 45,
            "function": "abort",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Controllers/Auth/VerificationEmailByCompanyController.php",
            "line": 37,
            "function": "abort"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
            "line": 54,
            "function": "__invoke",
            "class": "App\\Http\\Controllers\\Auth\\VerificationEmailByCompanyController",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
            "line": 43,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 259,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 798,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Routing\\Router::runRouteWithinStack():797}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/{companyUuid}/{lang}/verify

URL Parameters

companyUuid  string  

lang  string  

GET api/public/{companyUuid}/{lang}/verify-phone

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/dolores/accusantium/verify-phone" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/dolores/accusantium/verify-phone"
);

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
x-ratelimit-limit: 1000
x-ratelimit-remaining: 968
vary: Origin
 

{
    "message": "",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "line": 1172,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 45,
            "function": "abort",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Controllers/Auth/VerificationPhoneByCompanyController.php",
            "line": 34,
            "function": "abort"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
            "line": 54,
            "function": "__invoke",
            "class": "App\\Http\\Controllers\\Auth\\VerificationPhoneByCompanyController",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
            "line": 43,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 259,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 798,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Routing\\Router::runRouteWithinStack():797}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/{companyUuid}/{lang}/verify-phone

URL Parameters

companyUuid  string  

lang  string  

Company

Gestion des paramètres et de la configuration de la company (municipalité).

List public companies

Retourne la liste des municipalités actives et listables (sans authentification).

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/companies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/companies"
);

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: 1000
x-ratelimit-remaining: 977
vary: Origin
 

{
    "companies": [
        {
            "id": 2,
            "name": "Dschang",
            "uuid": "634c5eb0-b192-4bb0-bdf9-c3c0544f9318"
        },
        {
            "id": 1,
            "name": "Soa",
            "uuid": "bb809b52-3e44-4f37-9424-00755bac013e"
        }
    ]
}
 

Request      

GET api/public/companies

Get token by API key

Génère un token Sanctum à partir d'une clé API externe (accès programmatique).

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/company/token/13" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/company/token/13"
);

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: 1000
x-ratelimit-remaining: 967
vary: Origin
 

{
    "message": "",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "line": 1169,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 45,
            "function": "abort",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Controllers/Company/CompanyController.php",
            "line": 224,
            "function": "abort"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
            "line": 54,
            "function": "getToken",
            "class": "App\\Http\\Controllers\\Company\\CompanyController",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
            "line": 43,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 259,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 798,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Routing\\Router::runRouteWithinStack():797}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/company/token/{apiKey}

URL Parameters

apiKey  integer  

GET api/companies

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/companies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/companies"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/companies

POST api/companies

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/companies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"kpwuubokbkzbrdpyyumbmjiewbqgkvurghsdrkytmtxpdhkaynedqgewpvvlhkqyjgjjyjvmdzutckbgmilfuigldnfuiisfkikychkqwhnybalutfuyshsvv\",
    \"slug\": \"wptsgaemxqgighhfretexyktoldkbtftqmgjeegqrjaovmcbicxokbpzafygllprszxmigmkeuezgihsleyzzsecgytqtneppvgfnhwnqibyvayxmgeidelqyxhomlimcjsbjnfnuchdykdznclnpanzgdxwmzalrtiawtkkcnrhirbgpxihdhkrzv\",
    \"active\": false,
    \"is_listable\": false,
    \"mail_admin\": \"kohler.ashlynn@example.org\",
    \"settings_logo\": {
        \"name\": \"culpa\",
        \"encodedFile\": \"cumque\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/companies"
);

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

let body = {
    "name": "kpwuubokbkzbrdpyyumbmjiewbqgkvurghsdrkytmtxpdhkaynedqgewpvvlhkqyjgjjyjvmdzutckbgmilfuigldnfuiisfkikychkqwhnybalutfuyshsvv",
    "slug": "wptsgaemxqgighhfretexyktoldkbtftqmgjeegqrjaovmcbicxokbpzafygllprszxmigmkeuezgihsleyzzsecgytqtneppvgfnhwnqibyvayxmgeidelqyxhomlimcjsbjnfnuchdykdznclnpanzgdxwmzalrtiawtkkcnrhirbgpxihdhkrzv",
    "active": false,
    "is_listable": false,
    "mail_admin": "kohler.ashlynn@example.org",
    "settings_logo": {
        "name": "culpa",
        "encodedFile": "cumque"
    }
};

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

Request      

POST api/companies

Body Parameters

name  string  

validation.max.

slug  string  

validation.max.

active  boolean optional  

is_listable  boolean optional  

mail_admin  string optional  

validation.email.

settings_logo  object optional  

settings_logo.name  string optional  

validation.required_with.

settings_logo.encodedFile  string optional  

validation.required_with.

GET api/companies/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/companies/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/companies/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/companies/{id}

URL Parameters

id  integer  

The ID of the company.

PUT api/companies/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/companies/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"lehtqkwatsjjnyfcwpfthvfqtedjievmgbnuylewssxpycxh\",
    \"slug\": \"seffzcmjabwebfhyvrwnvwhyykdilomyczmqxbznpniywemozhqtwlckrylsjaolupwksimbkmyohasprjothmltthqmqyxsecdiddkpkckafdtaucbchclwtyhcbiqektxvslhmhxzyhainiwhfxebvlzjgulvnyforzwtfefredjuqauwrbdsbtqkipfsfgpieysfrwctkxxali\",
    \"active\": true,
    \"is_listable\": false,
    \"mail_admin\": \"ljohnston@example.net\",
    \"settings_logo\": {
        \"name\": \"recusandae\",
        \"encodedFile\": \"eum\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/companies/1"
);

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

let body = {
    "name": "lehtqkwatsjjnyfcwpfthvfqtedjievmgbnuylewssxpycxh",
    "slug": "seffzcmjabwebfhyvrwnvwhyykdilomyczmqxbznpniywemozhqtwlckrylsjaolupwksimbkmyohasprjothmltthqmqyxsecdiddkpkckafdtaucbchclwtyhcbiqektxvslhmhxzyhainiwhfxebvlzjgulvnyforzwtfefredjuqauwrbdsbtqkipfsfgpieysfrwctkxxali",
    "active": true,
    "is_listable": false,
    "mail_admin": "ljohnston@example.net",
    "settings_logo": {
        "name": "recusandae",
        "encodedFile": "eum"
    }
};

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

Request      

PUT api/companies/{id}

URL Parameters

id  integer  

The ID of the company.

Body Parameters

name  string  

validation.max.

slug  string  

validation.max.

active  boolean optional  

is_listable  boolean optional  

mail_admin  string optional  

validation.email.

settings_logo  object optional  

settings_logo.name  string optional  

validation.required_with.

settings_logo.encodedFile  string optional  

validation.required_with.

PUT api/companies/{id}/active

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/companies/1/active" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": false
}"
const url = new URL(
    "https://api.dev.bouge.io/api/companies/1/active"
);

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

let body = {
    "active": false
};

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

Request      

PUT api/companies/{id}/active

URL Parameters

id  integer  

The ID of the company.

Body Parameters

active  boolean  

Return company resource

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/5707/mycompany" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/5707/mycompany"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/mycompany

URL Parameters

company  string  

GET api/{company}/company/settings

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/96718290987/company/settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/96718290987/company/settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/company/settings

URL Parameters

company  string  

POST api/{company}/company/settings

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/09200/company/settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"settings_sender_mail\": \"tvixoucpwjlxolzicbmphdfkzugarwkzyukfjxyxpwqytowgclffnrrmoodljvarpaonegfj\",
    \"settings_sender_name\": \"iigluokskzlpkfxnxnhssp\",
    \"settings_mail_protocol\": \"autem\",
    \"settings_mail_host\": \"mvfezszupxorstbkndmf\",
    \"settings_mail_port\": 16,
    \"settings_mail_username\": \"jggglitstrbciocgndhsiveohsw\",
    \"settings_mail_password\": \"afprpyambhpbjnyudqvnxkloaqeoubmtnupsfqssluoeuiyzlkhwycdrpuhlrpglklrcaanbltwo\",
    \"settings_mail_password_confirmation\": \"jyfwvxesgtqgnetwpthgsqpnayxutgeftxaiirdxbrfhltylwvkcztniizzelihuburgxjjhanvnfqopsazaiddxpxvgihymdfzuzswdkmtvcwzechuackuzczixqzyaiihif\",
    \"wa_phone_number_id\": \"eufjeoirjmhzjgefmjnchialpytfuhhqbtxqonnrgbqhwlhyudrkpbwrqupdeupzlusplryaabmzhalrkzuvxlozqwgwefwikkxenf\",
    \"wa_access_token\": \"dolore\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/09200/company/settings"
);

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

let body = {
    "settings_sender_mail": "tvixoucpwjlxolzicbmphdfkzugarwkzyukfjxyxpwqytowgclffnrrmoodljvarpaonegfj",
    "settings_sender_name": "iigluokskzlpkfxnxnhssp",
    "settings_mail_protocol": "autem",
    "settings_mail_host": "mvfezszupxorstbkndmf",
    "settings_mail_port": 16,
    "settings_mail_username": "jggglitstrbciocgndhsiveohsw",
    "settings_mail_password": "afprpyambhpbjnyudqvnxkloaqeoubmtnupsfqssluoeuiyzlkhwycdrpuhlrpglklrcaanbltwo",
    "settings_mail_password_confirmation": "jyfwvxesgtqgnetwpthgsqpnayxutgeftxaiirdxbrfhltylwvkcztniizzelihuburgxjjhanvnfqopsazaiddxpxvgihymdfzuzswdkmtvcwzechuackuzczixqzyaiihif",
    "wa_phone_number_id": "eufjeoirjmhzjgefmjnchialpytfuhhqbtxqonnrgbqhwlhyudrkpbwrqupdeupzlusplryaabmzhalrkzuvxlozqwgwefwikkxenf",
    "wa_access_token": "dolore"
};

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

Request      

POST api/{company}/company/settings

URL Parameters

company  string  

Body Parameters

settings_sender_mail  string optional  

validation.max.

settings_sender_name  string optional  

validation.max.

settings_mail_protocol  string optional  

settings_mail_host  string optional  

validation.max.

settings_mail_port  integer optional  

settings_mail_username  string optional  

validation.max.

settings_mail_password  string optional  

validation.max.

settings_mail_password_confirmation  string optional  

validation.max.

logo_settings  string optional  

wa_phone_number_id  string optional  

validation.max.

wa_access_token  string optional  

POST api/{company}/company/settings/header

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/6700537/company/settings/header" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/6700537/company/settings/header"
);

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

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

Request      

POST api/{company}/company/settings/header

URL Parameters

company  string  

POST api/{company}/company/settings/whatsapp/test

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/2042/company/settings/whatsapp/test" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"wa_phone_number_id\": \"debitis\",
    \"wa_access_token\": \"sed\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/2042/company/settings/whatsapp/test"
);

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

let body = {
    "wa_phone_number_id": "debitis",
    "wa_access_token": "sed"
};

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

Request      

POST api/{company}/company/settings/whatsapp/test

URL Parameters

company  string  

Body Parameters

wa_phone_number_id  string  

wa_access_token  string optional  

GET api/{company}/modules/{default}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/91261/modules/5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/91261/modules/5"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/modules/{default}

URL Parameters

company  string  

default  integer  

Events

Backoffice events and projects management

GET api/{company}/events

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/877801/events" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/877801/events"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/events

URL Parameters

company  string  

POST api/{company}/events

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/52971885/events" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"project\",
    \"title\": \"petzdfwqtshpspfvnnmpqoejmslknxhimtcywgtfjnwcuvpjhuijnmxnbkrmvhlgjqrpoksdhrprpsgirwlqqasduqhoxhkhodprfihwkwilzlkavoubouxbifxchjampigtspnqhonxlpzprcbvhjexigushmnqdkiijucqzuejjqzrifycooetjvhvdkdbamubj\",
    \"description\": \"blanditiis\",
    \"cover_media_id\": 5,
    \"cover_media\": {
        \"name\": \"psbwcuavwgbopzidamaombpxajjppstahgjwsbfyowztrhpjqpczaikoinsvrlkhrpbvqjbyyapkjlfcftdvgxgckaidenyvdqcduunahrnuhzqyjjjpohxniqesfalloyojpxlqsdexmzsytxojuwgywrdcgouxshhgzgwvw\",
        \"encodedFile\": \"quam\"
    },
    \"start_date\": \"2026-09-01T16:23:10\",
    \"end_date\": \"2047-06-27\",
    \"location\": {
        \"address\": \"zbjkztgipnuicsvmdosiisanjtcviszybodpltxjzwxycmqfjrsbvpgsepztwrjktxrszkhagpoamgjewkxuqlvsicubztodhehfjlrgvlzattungvqfzlqxkndlyomfubzzeucgqekgniqslibxjawpzlqezybhaqunxltoxafpeekl\",
        \"lat\": 86,
        \"lng\": -28
    },
    \"is_featured\": false
}"
const url = new URL(
    "https://api.dev.bouge.io/api/52971885/events"
);

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

let body = {
    "type": "project",
    "title": "petzdfwqtshpspfvnnmpqoejmslknxhimtcywgtfjnwcuvpjhuijnmxnbkrmvhlgjqrpoksdhrprpsgirwlqqasduqhoxhkhodprfihwkwilzlkavoubouxbifxchjampigtspnqhonxlpzprcbvhjexigushmnqdkiijucqzuejjqzrifycooetjvhvdkdbamubj",
    "description": "blanditiis",
    "cover_media_id": 5,
    "cover_media": {
        "name": "psbwcuavwgbopzidamaombpxajjppstahgjwsbfyowztrhpjqpczaikoinsvrlkhrpbvqjbyyapkjlfcftdvgxgckaidenyvdqcduunahrnuhzqyjjjpohxniqesfalloyojpxlqsdexmzsytxojuwgywrdcgouxshhgzgwvw",
        "encodedFile": "quam"
    },
    "start_date": "2026-09-01T16:23:10",
    "end_date": "2047-06-27",
    "location": {
        "address": "zbjkztgipnuicsvmdosiisanjtcviszybodpltxjzwxycmqfjrsbvpgsepztwrjktxrszkhagpoamgjewkxuqlvsicubztodhehfjlrgvlzattungvqfzlqxkndlyomfubzzeucgqekgniqslibxjawpzlqezybhaqunxltoxafpeekl",
        "lat": 86,
        "lng": -28
    },
    "is_featured": false
};

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

Request      

POST api/{company}/events

URL Parameters

company  string  

Body Parameters

type  string optional  

Must be one of event or project.

title  string  

validation.max.

description  string optional  

cover_media_id  integer optional  

cover_media  object optional  

cover_media.name  string optional  

validation.required_with validation.max.

cover_media.encodedFile  string optional  

validation.required_with.

start_date  string  

validation.date.

end_date  string optional  

validation.date validation.after_or_equal.

location  object optional  

location.address  string optional  

validation.max.

location.lat  number optional  

validation.between.

location.lng  number optional  

validation.between.

is_featured  boolean optional  

GET api/{company}/events/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/6048638/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/6048638/events/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/events/{id}

URL Parameters

company  string  

id  integer  

The ID of the event.

PUT api/{company}/events/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/76873690458967257/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"event\",
    \"title\": \"hakizbovclzjj\",
    \"description\": \"voluptas\",
    \"cover_media_id\": 3,
    \"cover_media\": {
        \"name\": \"uqimnwggpykhivgvfcgfbkotchaefmkjpsdnhwxadtiiyekyazawdldnvwteiuxzmeiqjkaxceeyryyurnmfpnfoowdhvotweuwreqofntzbgpustmas\",
        \"encodedFile\": \"doloremque\"
    },
    \"start_date\": \"2026-09-01T16:23:10\",
    \"end_date\": \"2092-08-13\",
    \"location\": {
        \"address\": \"pqecffmpelpaiujkeecqmpufqiurzofhjdgsrwobzkexmcrveiolntpyhevcvwxibjyjsfqmsroafmwvijgbkqcaxgsrgirztqvlhvlfqpkgowfxahdcplpfnhgllryagurdefqohcoqawrjcluerltgxmgyxaifileutckztbxcfqanlcyynhjkuarmyeggctvxtisbtwfxdkouumbkrsawgnfkdmnqhxryqyfsebnuywe\",
        \"lat\": -89,
        \"lng\": 67
    },
    \"is_featured\": true
}"
const url = new URL(
    "https://api.dev.bouge.io/api/76873690458967257/events/1"
);

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

let body = {
    "type": "event",
    "title": "hakizbovclzjj",
    "description": "voluptas",
    "cover_media_id": 3,
    "cover_media": {
        "name": "uqimnwggpykhivgvfcgfbkotchaefmkjpsdnhwxadtiiyekyazawdldnvwteiuxzmeiqjkaxceeyryyurnmfpnfoowdhvotweuwreqofntzbgpustmas",
        "encodedFile": "doloremque"
    },
    "start_date": "2026-09-01T16:23:10",
    "end_date": "2092-08-13",
    "location": {
        "address": "pqecffmpelpaiujkeecqmpufqiurzofhjdgsrwobzkexmcrveiolntpyhevcvwxibjyjsfqmsroafmwvijgbkqcaxgsrgirztqvlhvlfqpkgowfxahdcplpfnhgllryagurdefqohcoqawrjcluerltgxmgyxaifileutckztbxcfqanlcyynhjkuarmyeggctvxtisbtwfxdkouumbkrsawgnfkdmnqhxryqyfsebnuywe",
        "lat": -89,
        "lng": 67
    },
    "is_featured": true
};

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

Request      

PUT api/{company}/events/{id}

URL Parameters

company  string  

id  integer  

The ID of the event.

Body Parameters

type  string optional  

Must be one of event or project.

title  string  

validation.max.

description  string optional  

cover_media_id  integer optional  

cover_media  object optional  

cover_media.name  string optional  

validation.required_with validation.max.

cover_media.encodedFile  string optional  

validation.required_with.

start_date  string  

validation.date.

end_date  string optional  

validation.date validation.after_or_equal.

location  object optional  

location.address  string optional  

validation.max.

location.lat  number optional  

validation.between.

location.lng  number optional  

validation.between.

is_featured  boolean optional  

DELETE api/{company}/events/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/0169903360321692/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/0169903360321692/events/1"
);

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

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

Request      

DELETE api/{company}/events/{id}

URL Parameters

company  string  

id  integer  

The ID of the event.

PUT api/{company}/events/{id}/publish

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/19/events/1/publish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/19/events/1/publish"
);

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

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

Request      

PUT api/{company}/events/{id}/publish

URL Parameters

company  string  

id  integer  

The ID of the event.

PUT api/{company}/events/{id}/unpublish

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/35461591/events/1/unpublish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/35461591/events/1/unpublish"
);

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

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

Request      

PUT api/{company}/events/{id}/unpublish

URL Parameters

company  string  

id  integer  

The ID of the event.

PUT api/{company}/events/{id}/cancel

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/9951/events/1/cancel" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/9951/events/1/cancel"
);

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

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

Request      

PUT api/{company}/events/{id}/cancel

URL Parameters

company  string  

id  integer  

The ID of the event.

Form

Form API endpoints

Show a form as if it's displayed to public user

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/241828194121524/forms/28437915/public" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/241828194121524/forms/28437915/public"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{id}/public

URL Parameters

company  string  

id  string  

The ID of the form.

Toggle active state of a form.

requires authentication

Example request:
curl --request PATCH \
    "https://api.dev.bouge.io/api/4705515/forms/6364908896819/toggle-active" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/4705515/forms/6364908896819/toggle-active"
);

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

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

Request      

PATCH api/{company}/forms/{id}/toggle-active

URL Parameters

company  string  

id  string  

The ID of the form.

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/1453105/forms" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/1453105/forms"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms

URL Parameters

company  string  

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/940242650/forms" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 0.3655,
    \"fr\": {
        \"name\": \"Signalement voirie\",
        \"description\": \"Formulaire pour signaler un problème de voirie.\"
    },
    \"en\": {
        \"name\": \"Road issue report\",
        \"description\": \"Form to report a road issue.\"
    },
    \"form_type_id\": 1,
    \"available_offline\": true,
    \"citizen_roles\": [
        \"citizen\"
    ],
    \"racis\": [
        1,
        2
    ],
    \"steps\": [
        {
            \"id\": 8,
            \"fr\": [
                \"nihil\"
            ],
            \"en\": [
                \"aperiam\"
            ],
            \"attributes\": [
                {
                    \"id\": 8,
                    \"form_attribute_type_id\": 5,
                    \"hidden\": false,
                    \"private\": true,
                    \"requiredPublic\": true,
                    \"requiredBackoffice\": true,
                    \"config\": [
                        \"dolorem\"
                    ],
                    \"en\": [
                        \"omnis\"
                    ],
                    \"fr\": [
                        \"accusantium\"
                    ]
                }
            ]
        }
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/940242650/forms"
);

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

let body = {
    "id": 0.3655,
    "fr": {
        "name": "Signalement voirie",
        "description": "Formulaire pour signaler un problème de voirie."
    },
    "en": {
        "name": "Road issue report",
        "description": "Form to report a road issue."
    },
    "form_type_id": 1,
    "available_offline": true,
    "citizen_roles": [
        "citizen"
    ],
    "racis": [
        1,
        2
    ],
    "steps": [
        {
            "id": 8,
            "fr": [
                "nihil"
            ],
            "en": [
                "aperiam"
            ],
            "attributes": [
                {
                    "id": 8,
                    "form_attribute_type_id": 5,
                    "hidden": false,
                    "private": true,
                    "requiredPublic": true,
                    "requiredBackoffice": true,
                    "config": [
                        "dolorem"
                    ],
                    "en": [
                        "omnis"
                    ],
                    "fr": [
                        "accusantium"
                    ]
                }
            ]
        }
    ]
};

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

Request      

POST api/{company}/forms

URL Parameters

company  string  

Body Parameters

id  number optional  

fr  object optional  

fr.name  string  

Nom du formulaire en français. validation.max.

fr.description  string  

Description du formulaire en français.

en  object optional  

en.name  string  

Nom du formulaire en anglais. validation.max.

en.description  string  

Description du formulaire en anglais.

form_type_id  number  

ID du type de formulaire auquel appartient ce formulaire.

available_offline  boolean optional  

citizen_roles  string[] optional  

Must be one of citizen, technical_agent, or neighborhood_committee.

racis  string[] optional  

Liste des IDs d'utilisateurs assignés en RACI sur ce formulaire (optionnel).

steps  object[] optional  

steps[].id  integer optional  

steps[].fr  string[] optional  

steps[].en  string[] optional  

steps[].attributes  object[] optional  

steps[].attributes[].id  integer optional  

steps[].attributes[].form_attribute_type_id  integer optional  

steps[].attributes[].hidden  boolean optional  

steps[].attributes[].private  boolean optional  

steps[].attributes[].requiredPublic  boolean optional  

steps[].attributes[].requiredBackoffice  boolean optional  

steps[].attributes[].config  string[]  

steps[].attributes[].en  string[]  

steps[].attributes[].fr  string[]  

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/92542721593/forms/85086" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/92542721593/forms/85086"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{id}

URL Parameters

company  string  

id  string  

The ID of the form.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/443/forms/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 7753574.73116829,
    \"fr\": {
        \"name\": \"Signalement voirie\",
        \"description\": \"Formulaire pour signaler un problème de voirie.\"
    },
    \"en\": {
        \"name\": \"Road issue report\",
        \"description\": \"Form to report a road issue.\"
    },
    \"form_type_id\": 1,
    \"available_offline\": true,
    \"citizen_roles\": [
        \"neighborhood_committee\"
    ],
    \"racis\": [
        1,
        2
    ],
    \"steps\": [
        {
            \"id\": 18,
            \"fr\": [
                \"amet\"
            ],
            \"en\": [
                \"qui\"
            ],
            \"attributes\": [
                {
                    \"id\": 6,
                    \"form_attribute_type_id\": 8,
                    \"hidden\": false,
                    \"private\": false,
                    \"requiredPublic\": false,
                    \"requiredBackoffice\": true,
                    \"config\": [
                        \"sunt\"
                    ],
                    \"en\": [
                        \"corporis\"
                    ],
                    \"fr\": [
                        \"est\"
                    ]
                }
            ]
        }
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/443/forms/1"
);

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

let body = {
    "id": 7753574.73116829,
    "fr": {
        "name": "Signalement voirie",
        "description": "Formulaire pour signaler un problème de voirie."
    },
    "en": {
        "name": "Road issue report",
        "description": "Form to report a road issue."
    },
    "form_type_id": 1,
    "available_offline": true,
    "citizen_roles": [
        "neighborhood_committee"
    ],
    "racis": [
        1,
        2
    ],
    "steps": [
        {
            "id": 18,
            "fr": [
                "amet"
            ],
            "en": [
                "qui"
            ],
            "attributes": [
                {
                    "id": 6,
                    "form_attribute_type_id": 8,
                    "hidden": false,
                    "private": false,
                    "requiredPublic": false,
                    "requiredBackoffice": true,
                    "config": [
                        "sunt"
                    ],
                    "en": [
                        "corporis"
                    ],
                    "fr": [
                        "est"
                    ]
                }
            ]
        }
    ]
};

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

Request      

PUT api/{company}/forms/{id}

PATCH api/{company}/forms/{id}

URL Parameters

company  string  

id  string  

The ID of the form.

Body Parameters

id  number optional  

fr  object optional  

fr.name  string  

Nom du formulaire en français. validation.max.

fr.description  string  

Description du formulaire en français.

en  object optional  

en.name  string  

Nom du formulaire en anglais. validation.max.

en.description  string  

Description du formulaire en anglais.

form_type_id  number  

ID du type de formulaire auquel appartient ce formulaire.

available_offline  boolean optional  

citizen_roles  string[] optional  

Must be one of citizen, technical_agent, or neighborhood_committee.

racis  string[] optional  

Liste des IDs d'utilisateurs assignés en RACI sur ce formulaire (optionnel).

steps  object[] optional  

steps[].id  integer optional  

steps[].fr  string[] optional  

steps[].en  string[] optional  

steps[].attributes  object[] optional  

steps[].attributes[].id  integer optional  

steps[].attributes[].form_attribute_type_id  integer optional  

steps[].attributes[].hidden  boolean optional  

steps[].attributes[].private  boolean optional  

steps[].attributes[].requiredPublic  boolean optional  

steps[].attributes[].requiredBackoffice  boolean optional  

steps[].attributes[].config  string[]  

steps[].attributes[].en  string[]  

steps[].attributes[].fr  string[]  

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/7/forms/2" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/7/forms/2"
);

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

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

Request      

DELETE api/{company}/forms/{id}

URL Parameters

company  string  

id  string  

The ID of the form.

Return all Response Template for all form for a specified company

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/4/response-template" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/4/response-template"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/response-template

URL Parameters

company  string  

Create a new Response Template for a form

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/090/response-template" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"response_title\": \"z\",
    \"response_content\": \"minima\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/090/response-template"
);

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

let body = {
    "response_title": "z",
    "response_content": "minima"
};

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

Request      

POST api/{company}/response-template

URL Parameters

company  string  

Body Parameters

response_title  string  

validation.min.

response_content  string  

Return all Response Template for a specified company and specified form

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/247/response-template/800797218264195408" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/247/response-template/800797218264195408"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/response-template/{id}

URL Parameters

company  string  

id  integer  

The ID of the response template.

Update response template based on its ID

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/7887237756845494/response-template/857" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"response_title\": \"p\",
    \"response_content\": \"sed\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/7887237756845494/response-template/857"
);

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

let body = {
    "response_title": "p",
    "response_content": "sed"
};

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

Request      

PUT api/{company}/response-template/{id}

PATCH api/{company}/response-template/{id}

URL Parameters

company  string  

id  integer  

The ID of the response template.

Body Parameters

response_title  string  

validation.min.

response_content  string  

Delete template based on its ID

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/132189471919/response-template/8739410683634101" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/132189471919/response-template/8739410683634101"
);

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

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

Request      

DELETE api/{company}/response-template/{id}

URL Parameters

company  string  

id  integer  

The ID of the response template.

Get a response template based on its ID

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/675965092299710894/response-template/15223724498/get" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/675965092299710894/response-template/15223724498/get"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/response-template/{templateId}/get

URL Parameters

company  string  

templateId  integer  

Form Status Actions

Manage actions triggered on form status change

GET api/{company}/forms/{form_id}/statuses/{status_id}/actions

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/3878168/forms/deserunt/statuses/qui/actions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/3878168/forms/deserunt/statuses/qui/actions"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{form_id}/statuses/{status_id}/actions

URL Parameters

company  string  

form_id  string  

The ID of the form.

status_id  string  

The ID of the status.

POST api/{company}/forms/{form}/statuses/{status}/actions

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/763707070324/forms/8300571172425/statuses/7609597815/actions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"config\": [
        \"illum\"
    ],
    \"order\": 5,
    \"active\": false
}"
const url = new URL(
    "https://api.dev.bouge.io/api/763707070324/forms/8300571172425/statuses/7609597815/actions"
);

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

let body = {
    "config": [
        "illum"
    ],
    "order": 5,
    "active": false
};

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

Request      

POST api/{company}/forms/{form}/statuses/{status}/actions

URL Parameters

company  string  

form  string  

The form.

status  string  

The status.

Body Parameters

type  string optional  

config  string[] optional  

order  integer optional  

active  boolean optional  

PUT api/{company}/forms/{form_id}/statuses/{status_id}/actions/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/169642184/forms/consectetur/statuses/alias/actions/758772999459895" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"config\": [
        \"sit\"
    ],
    \"order\": 13,
    \"active\": false
}"
const url = new URL(
    "https://api.dev.bouge.io/api/169642184/forms/consectetur/statuses/alias/actions/758772999459895"
);

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

let body = {
    "config": [
        "sit"
    ],
    "order": 13,
    "active": false
};

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

Request      

PUT api/{company}/forms/{form_id}/statuses/{status_id}/actions/{id}

PATCH api/{company}/forms/{form_id}/statuses/{status_id}/actions/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

status_id  string  

The ID of the status.

id  string  

The ID of the action.

Body Parameters

config  string[] optional  

order  integer optional  

active  boolean optional  

DELETE api/{company}/forms/{form_id}/statuses/{status_id}/actions/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/620343/forms/quibusdam/statuses/voluptatem/actions/160867704" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/620343/forms/quibusdam/statuses/voluptatem/actions/160867704"
);

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

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

Request      

DELETE api/{company}/forms/{form_id}/statuses/{status_id}/actions/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

status_id  string  

The ID of the status.

id  string  

The ID of the action.

Form Status Versions

Timeline / changelog of form status configurations

GET api/{company}/forms/{form_id}/statuses/{status_id}/versions

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/9291/forms/eaque/statuses/in/versions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/9291/forms/eaque/statuses/in/versions"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{form_id}/statuses/{status_id}/versions

URL Parameters

company  string  

form_id  string  

The ID of the form.

status_id  string  

The ID of the status.

GET api/{company}/forms/{form_id}/statuses/{status_id}/versions/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/04407697727/forms/facere/statuses/eos/versions/139716175565" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/04407697727/forms/facere/statuses/eos/versions/139716175565"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{form_id}/statuses/{status_id}/versions/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

status_id  string  

The ID of the status.

id  string  

The ID of the version.

POST api/{company}/forms/{form}/statuses/{status}/versions/{version}/restore

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/20645/forms/7177903725952/statuses/7521327359554062/versions/98959136/restore" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/20645/forms/7177903725952/statuses/7521327359554062/versions/98959136/restore"
);

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

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

Request      

POST api/{company}/forms/{form}/statuses/{status}/versions/{version}/restore

URL Parameters

company  string  

form  string  

The form.

status  string  

The status.

version  string  

The version.

Form Statuses

Manage statuses attached to a form

GET api/{company}/forms/{form_id}/statuses

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/903369261119602325/forms/quo/statuses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/903369261119602325/forms/quo/statuses"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{form_id}/statuses

URL Parameters

company  string  

form_id  string  

The ID of the form.

POST api/{company}/forms/{form}/statuses

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/2595/forms/574281644174449/statuses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": true,
    \"default\": true,
    \"final\": true,
    \"icon\": \"evdcwdjwqgtmlnchlwbeynfcbzwemwroviekxhajcjlcteblfkffjzivnwjrhcilimwxktnaxgmfhbuhrfeomuguskabtuouwhdaehlfyxlzepwjyrjtipdutoreffnjxaagmefoyjiqdhqenucyshbdopbwflxzthzhuammcdgequetavoooycbvketecgmeludtopqam\",
    \"translations\": {
        \"fr\": \"zrvzlcuywtkbcyuzsiofqsovcdvvsjmyqavkiehynxqxfnveeidmecxwyhkjnzeqkmcrnlptkbvurtbzeknrbxcxhhtddvadxnnmfzaultlctjssnvlgortcjxskhpsjkdoxnmtyhh\",
        \"en\": \"yuhnauzfaqrxvanwzsqrlklwktubqxme\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/2595/forms/574281644174449/statuses"
);

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

let body = {
    "active": true,
    "default": true,
    "final": true,
    "icon": "evdcwdjwqgtmlnchlwbeynfcbzwemwroviekxhajcjlcteblfkffjzivnwjrhcilimwxktnaxgmfhbuhrfeomuguskabtuouwhdaehlfyxlzepwjyrjtipdutoreffnjxaagmefoyjiqdhqenucyshbdopbwflxzthzhuammcdgequetavoooycbvketecgmeludtopqam",
    "translations": {
        "fr": "zrvzlcuywtkbcyuzsiofqsovcdvvsjmyqavkiehynxqxfnveeidmecxwyhkjnzeqkmcrnlptkbvurtbzeknrbxcxhhtddvadxnnmfzaultlctjssnvlgortcjxskhpsjkdoxnmtyhh",
        "en": "yuhnauzfaqrxvanwzsqrlklwktubqxme"
    }
};

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

Request      

POST api/{company}/forms/{form}/statuses

URL Parameters

company  string  

form  string  

The form.

Body Parameters

active  boolean  

default  boolean  

final  boolean  

icon  string optional  

validation.max.

translations  object optional  

translations.fr  string  

validation.max.

translations.en  string optional  

validation.max.

PUT api/{company}/forms/{form_id}/statuses/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/56671612719155811/forms/mollitia/statuses/3567300" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": false,
    \"default\": false,
    \"final\": true,
    \"icon\": \"cxqypakybwgvfwuatdyzpsmmvgmiymlzimohbupzurprwyhoovzudoitucrwqitnspjgmsmgqkwjiisazehevueicmmlrueyuibjpmlmpputpclyobzgkybzctvtksmqncuvaoubenwyqikoyntnm\",
    \"translations\": {
        \"fr\": \"pmwhlxsuzfgvxxcumwkyhxhorpmrwspbjncydbmivemqomokhuhrpifejoucujaxdenylfkoomogklekqnhmcgwekphfferlrmaphodfxeqfcrcpttynyrbjkcmokzxhpvxonsugvnsvaqpahqmlqvnoxvewrzckfwuxcsxgjqbhsqilpsbkvfpwhiajug\",
        \"en\": \"vkrolxdgewjztjupyxiezchihpdosjkrdfpnelikahrxcluppgzdfopgqyuyfjgptwtaxdcxoplnvntqyayqlkgrrajsmgtkkpcoalcxios\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/56671612719155811/forms/mollitia/statuses/3567300"
);

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

let body = {
    "active": false,
    "default": false,
    "final": true,
    "icon": "cxqypakybwgvfwuatdyzpsmmvgmiymlzimohbupzurprwyhoovzudoitucrwqitnspjgmsmgqkwjiisazehevueicmmlrueyuibjpmlmpputpclyobzgkybzctvtksmqncuvaoubenwyqikoyntnm",
    "translations": {
        "fr": "pmwhlxsuzfgvxxcumwkyhxhorpmrwspbjncydbmivemqomokhuhrpifejoucujaxdenylfkoomogklekqnhmcgwekphfferlrmaphodfxeqfcrcpttynyrbjkcmokzxhpvxonsugvnsvaqpahqmlqvnoxvewrzckfwuxcsxgjqbhsqilpsbkvfpwhiajug",
        "en": "vkrolxdgewjztjupyxiezchihpdosjkrdfpnelikahrxcluppgzdfopgqyuyfjgptwtaxdcxoplnvntqyayqlkgrrajsmgtkkpcoalcxios"
    }
};

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

Request      

PUT api/{company}/forms/{form_id}/statuses/{id}

PATCH api/{company}/forms/{form_id}/statuses/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

id  string  

The ID of the status.

Body Parameters

active  boolean optional  

default  boolean optional  

final  boolean optional  

icon  string optional  

validation.max.

translations  object optional  

translations.fr  string optional  

validation.max.

translations.en  string optional  

validation.max.

Form Types

Manage form types for a company

GET api/{company}/form-types

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/112535/form-types" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/112535/form-types"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/form-types

URL Parameters

company  string  

POST api/{company}/form-types

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/245846687817/form-types" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": false,
    \"purpose\": \"emzhvlathvdxltoztetyomkbbcapdwofpxorxerghbkbsza\",
    \"listable\": false,
    \"translations\": {
        \"fr\": {
            \"name\": \"todihztidyfpkcgpwbuljbxkykcdusyjvnfrormnn\",
            \"description\": \"aliquid\"
        },
        \"en\": {
            \"name\": \"zjjydtmtqyktaqysksftkxidhzysdbgfwgaynhmkajpuxhcmtznslnklqfdbfhzziobtgoidakdumiomlrioftikxhipfiynqxqsjyzfijjqqjawtojutivewjeyyyldrgluljnvumgsseiauqdhrwsrsljnnvpxwjyqacommvctmqtcouefthipfdwqvhaueinouywtaocjjmicgtpaioonamrhwfffhekjvexcqtzieualpuhco\",
            \"description\": \"aut\"
        }
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/245846687817/form-types"
);

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

let body = {
    "active": false,
    "purpose": "emzhvlathvdxltoztetyomkbbcapdwofpxorxerghbkbsza",
    "listable": false,
    "translations": {
        "fr": {
            "name": "todihztidyfpkcgpwbuljbxkykcdusyjvnfrormnn",
            "description": "aliquid"
        },
        "en": {
            "name": "zjjydtmtqyktaqysksftkxidhzysdbgfwgaynhmkajpuxhcmtznslnklqfdbfhzziobtgoidakdumiomlrioftikxhipfiynqxqsjyzfijjqqjawtojutivewjeyyyldrgluljnvumgsseiauqdhrwsrsljnnvpxwjyqacommvctmqtcouefthipfdwqvhaueinouywtaocjjmicgtpaioonamrhwfffhekjvexcqtzieualpuhco",
            "description": "aut"
        }
    }
};

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

Request      

POST api/{company}/form-types

URL Parameters

company  string  

Body Parameters

active  boolean  

purpose  string optional  

validation.max.

listable  boolean optional  

translations  object optional  

translations.fr  object optional  

translations.fr.name  string  

validation.max.

translations.fr.description  string optional  

translations.en  object optional  

translations.en.name  string optional  

validation.max.

translations.en.description  string optional  

GET api/{company}/form-types/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/9732107/form-types/27235216315919896" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/9732107/form-types/27235216315919896"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/form-types/{id}

URL Parameters

company  string  

id  string  

The ID of the form type.

PUT api/{company}/form-types/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/25059532157132538/form-types/5113" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": true,
    \"purpose\": \"fbqtlhgzgilnkxbtxayecuvywksjkjkpbpczdzvddbre\",
    \"listable\": true,
    \"translations\": {
        \"fr\": {
            \"name\": \"umxbxaoggazsiqynqpjemwuezhyxxzcplwykselrnbbhgonqwhfsybyflnrfecveblosv\",
            \"description\": \"facere\"
        },
        \"en\": {
            \"name\": \"ijlcoocnagpnzzejzeenhgpqyusvtollgoqewwskaknognitmsrtdhaskhfqzxouctyzrlxxqnvmykodixjqpanubqdzvmjykqhwvoznjmsthibqiuvrswnfmjldtvhyslqafkhvxyzgvzttrisiekqsasdjqkmhudwteilnaplrsntrn\",
            \"description\": \"sit\"
        }
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/25059532157132538/form-types/5113"
);

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

let body = {
    "active": true,
    "purpose": "fbqtlhgzgilnkxbtxayecuvywksjkjkpbpczdzvddbre",
    "listable": true,
    "translations": {
        "fr": {
            "name": "umxbxaoggazsiqynqpjemwuezhyxxzcplwykselrnbbhgonqwhfsybyflnrfecveblosv",
            "description": "facere"
        },
        "en": {
            "name": "ijlcoocnagpnzzejzeenhgpqyusvtollgoqewwskaknognitmsrtdhaskhfqzxouctyzrlxxqnvmykodixjqpanubqdzvmjykqhwvoznjmsthibqiuvrswnfmjldtvhyslqafkhvxyzgvzttrisiekqsasdjqkmhudwteilnaplrsntrn",
            "description": "sit"
        }
    }
};

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

Request      

PUT api/{company}/form-types/{id}

PATCH api/{company}/form-types/{id}

URL Parameters

company  string  

id  string  

The ID of the form type.

Body Parameters

active  boolean optional  

purpose  string optional  

validation.max.

listable  boolean optional  

translations  object optional  

translations.fr  object optional  

translations.fr.name  string optional  

validation.max.

translations.fr.description  string optional  

translations.en  object optional  

translations.en.name  string optional  

validation.max.

translations.en.description  string optional  

DELETE api/{company}/form-types/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/1163327259813017/form-types/5768181706665" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/1163327259813017/form-types/5768181706665"
);

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

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

Request      

DELETE api/{company}/form-types/{id}

URL Parameters

company  string  

id  string  

The ID of the form type.

Form deployment applications

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/110294/forms/non/applications" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/110294/forms/non/applications"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{form_id}/applications

URL Parameters

company  string  

form_id  string  

The ID of the form.

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/0122896781498/forms/44105247729717707/applications" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"App mobile Android v2\",
    \"source\": \"mobile\",
    \"lang\": \"fr\",
    \"active\": 1,
    \"client_url\": \"https:\\/\\/app.maville.fr\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/0122896781498/forms/44105247729717707/applications"
);

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

let body = {
    "name": "App mobile Android v2",
    "source": "mobile",
    "lang": "fr",
    "active": 1,
    "client_url": "https:\/\/app.maville.fr"
};

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

Request      

POST api/{company}/forms/{form}/applications

URL Parameters

company  string  

form  string  

The form.

Body Parameters

name  string  

Nom du déploiement (ex. application mobile iOS). validation.max.

source  string  

Source du déploiement (mobile, web, kiosk…). validation.max.

lang  string  

Langue par défaut du formulaire (fr, en…). validation.max.

active  integer  

Statut actif : 1 = actif, 0 = inactif.

client_url  string  

URL du client front-end (deep link ou URL web). validation.max.

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/32704707386688287/forms/mollitia/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/32704707386688287/forms/mollitia/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{form_id}/applications/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

id  string  

The ID of the application.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/25/forms/et/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"eghnyoledncfrwinivdmtukvvodxcirmj\",
    \"source\": \"bwvdxdfqxmjpybqhzahbckuzyqgqtkptowtyslvobygpgynpocwlzqumuzbmpsxnahsbfbayyvyjrwbenlieosfycwmqjrkqkviyhibhgmxqjesnzvciemrgvqabrsulr\",
    \"lang\": \"hhgdomkdnjfdhjdqrtejzbrtaqgmsiohxggxmbqnmkkjtpxcobrlgnpphfsxavodazzknzwblfflxxkmzsjdqbirkgmdjyqsnueqxrjfaxrfesfmuruopexxwtagtplrlomiaqgenljbyxogcmnhysqajlvyktmmfblrvkqpbunhcwyxluxvbfdwgngoyuevpkvuvxsovkaysxlqizix\",
    \"active\": 17,
    \"client_url\": \"hyvzrzexjlmsjrsgrpfxzvnsufpeuwxkfepiiduzhmwqzbnqockjegzhbiidqtfpcuvsscoecsmvxgyculifqumffvmslnmozyxfkvryzvmcptxjdiwfnalnxviyraidxbqrugwvcsmphsuqtifbyickaftfzdencjxsuqwojlxxpqrvahomeczycujlfzkfrdzzhuxexgofjxri\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/25/forms/et/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6"
);

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

let body = {
    "name": "eghnyoledncfrwinivdmtukvvodxcirmj",
    "source": "bwvdxdfqxmjpybqhzahbckuzyqgqtkptowtyslvobygpgynpocwlzqumuzbmpsxnahsbfbayyvyjrwbenlieosfycwmqjrkqkviyhibhgmxqjesnzvciemrgvqabrsulr",
    "lang": "hhgdomkdnjfdhjdqrtejzbrtaqgmsiohxggxmbqnmkkjtpxcobrlgnpphfsxavodazzknzwblfflxxkmzsjdqbirkgmdjyqsnueqxrjfaxrfesfmuruopexxwtagtplrlomiaqgenljbyxogcmnhysqajlvyktmmfblrvkqpbunhcwyxluxvbfdwgngoyuevpkvuvxsovkaysxlqizix",
    "active": 17,
    "client_url": "hyvzrzexjlmsjrsgrpfxzvnsufpeuwxkfepiiduzhmwqzbnqockjegzhbiidqtfpcuvsscoecsmvxgyculifqumffvmslnmozyxfkvryzvmcptxjdiwfnalnxviyraidxbqrugwvcsmphsuqtifbyickaftfzdencjxsuqwojlxxpqrvahomeczycujlfzkfrdzzhuxexgofjxri"
};

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

Request      

PUT api/{company}/forms/{form_id}/applications/{id}

PATCH api/{company}/forms/{form_id}/applications/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

id  string  

The ID of the application.

Body Parameters

name  string  

validation.max.

source  string  

validation.max.

lang  string  

validation.max.

active  integer  

client_url  string  

validation.max.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/22163222/forms/modi/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/22163222/forms/modi/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6"
);

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

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

Request      

DELETE api/{company}/forms/{form_id}/applications/{id}

URL Parameters

company  string  

form_id  string  

The ID of the form.

id  string  

The ID of the application.

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/50127191969/forms/4582426693223/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6/download" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/50127191969/forms/4582426693223/applications/946132d0-e59c-4438-bc85-2ca83b03a0c6/download"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/forms/{id}/applications/{application_uuid}/download

URL Parameters

company  string  

id  string  

The ID of the form.

application_uuid  string  

Global News (Superadmin)

Gestion des actualités globales visibles par toutes les municipalités.

GET api/superadmin/news

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/superadmin/news" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/superadmin/news

POST api/superadmin/news

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/superadmin/news" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"news_category_id\": 3,
    \"cover_media_id\": 12,
    \"cover_media\": {
        \"name\": \"hzqipeojektaduzzcyydgmqiwjgnmzrimeozyvqmhhyebfjzxqgdyafvhnqiljkblxcjilcknhliswxywwgaprobqvcnbwklurqnbgcnbbytzucdcxankwpyhxftyfplcwlgfvqtwyshaxxmxztaljeoqqeykjdpczommwxljefbbpgsyzempdhncmqwdivngymipdpushdksqsdxilrfk\",
        \"encodedFile\": \"omnis\"
    },
    \"fr\": {
        \"title\": \"Travaux rue de la Paix\",
        \"content\": \"<p>Les travaux débuteront le 10 juin...<\\/p>\"
    },
    \"en\": {
        \"title\": \"Works on Rue de la Paix\",
        \"content\": \"eos\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news"
);

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

let body = {
    "news_category_id": 3,
    "cover_media_id": 12,
    "cover_media": {
        "name": "hzqipeojektaduzzcyydgmqiwjgnmzrimeozyvqmhhyebfjzxqgdyafvhnqiljkblxcjilcknhliswxywwgaprobqvcnbwklurqnbgcnbbytzucdcxankwpyhxftyfplcwlgfvqtwyshaxxmxztaljeoqqeykjdpczommwxljefbbpgsyzempdhncmqwdivngymipdpushdksqsdxilrfk",
        "encodedFile": "omnis"
    },
    "fr": {
        "title": "Travaux rue de la Paix",
        "content": "<p>Les travaux débuteront le 10 juin...<\/p>"
    },
    "en": {
        "title": "Works on Rue de la Paix",
        "content": "eos"
    }
};

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

Request      

POST api/superadmin/news

Body Parameters

news_category_id  integer optional  

ID de la catégorie d'actualité (optionnel).

cover_media_id  integer optional  

ID du média de couverture (optionnel).

cover_media  object optional  

cover_media.name  string optional  

validation.required_with validation.max.

cover_media.encodedFile  string optional  

validation.required_with.

fr  object optional  

fr.title  string  

Titre de l'article en français. validation.max.

fr.content  string optional  

Contenu de l'article en français (HTML ou Markdown).

en  object optional  

en.title  string optional  

Titre en anglais (optionnel). validation.max.

en.content  string optional  

Contenu en anglais (optionnel).

GET api/superadmin/news/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/superadmin/news/621" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news/621"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/superadmin/news/{id}

URL Parameters

id  string  

The ID of the news.

PUT api/superadmin/news/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/superadmin/news/378194379" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"news_category_id\": 4,
    \"cover_media_id\": 18,
    \"cover_media\": {
        \"name\": \"ugsfssyvwqdhekeotdashmjzgkllmwhewmmozklrcvhscibzrfmcjexeyjzlwsnyxumeljncesiojiqqh\",
        \"encodedFile\": \"recusandae\"
    },
    \"fr\": {
        \"title\": \"yqhdtydddjotfygoznphpzrggkzpmthzvaiqrvrgjzsahpzdsupwyoltuktbeqagdjkqznfrhesbawkvsupxswjqnxunnpiikqipmwwjuxpcjplxn\",
        \"content\": \"eligendi\"
    },
    \"en\": {
        \"title\": \"tdyltsiaeakcakyuavqjsdgravwzwmjnebvrglprpxstvinhjoxonsvtcyyliqkuqstbrmwqkxtnykfdykfdqhjikqfxttflwwthtxlfkawpmhlfruelsisrbwbdlgrrzgtnh\",
        \"content\": \"quo\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news/378194379"
);

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

let body = {
    "news_category_id": 4,
    "cover_media_id": 18,
    "cover_media": {
        "name": "ugsfssyvwqdhekeotdashmjzgkllmwhewmmozklrcvhscibzrfmcjexeyjzlwsnyxumeljncesiojiqqh",
        "encodedFile": "recusandae"
    },
    "fr": {
        "title": "yqhdtydddjotfygoznphpzrggkzpmthzvaiqrvrgjzsahpzdsupwyoltuktbeqagdjkqznfrhesbawkvsupxswjqnxunnpiikqipmwwjuxpcjplxn",
        "content": "eligendi"
    },
    "en": {
        "title": "tdyltsiaeakcakyuavqjsdgravwzwmjnebvrglprpxstvinhjoxonsvtcyyliqkuqstbrmwqkxtnykfdykfdqhjikqfxttflwwthtxlfkawpmhlfruelsisrbwbdlgrrzgtnh",
        "content": "quo"
    }
};

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

Request      

PUT api/superadmin/news/{id}

URL Parameters

id  string  

The ID of the news.

Body Parameters

news_category_id  integer optional  

cover_media_id  integer optional  

cover_media  object optional  

cover_media.name  string optional  

validation.required_with validation.max.

cover_media.encodedFile  string optional  

validation.required_with.

fr  object optional  

fr.title  string  

validation.max.

fr.content  string optional  

en  object optional  

en.title  string optional  

validation.max.

en.content  string optional  

DELETE api/superadmin/news/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/superadmin/news/54730064" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news/54730064"
);

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

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

Request      

DELETE api/superadmin/news/{id}

URL Parameters

id  string  

The ID of the news.

PUT api/superadmin/news/{id}/publish

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/superadmin/news/162333001/publish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news/162333001/publish"
);

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

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

Request      

PUT api/superadmin/news/{id}/publish

URL Parameters

id  string  

The ID of the news.

PUT api/superadmin/news/{id}/unpublish

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/superadmin/news/219524680/unpublish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news/219524680/unpublish"
);

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

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

Request      

PUT api/superadmin/news/{id}/unpublish

URL Parameters

id  string  

The ID of the news.

GET api/superadmin/news-categories

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/superadmin/news-categories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news-categories"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/superadmin/news-categories

POST api/superadmin/news-categories

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/superadmin/news-categories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": true,
    \"fr\": {
        \"name\": \"depzrcnybhrgiuqqhoffodkarpzvkrjtaxydsotbicrfiewvfbqhozkdywqnzkfwgry\"
    },
    \"en\": {
        \"name\": \"qpsjxdkygkjuoyldkrehgdqoilsveheghjiwaeegimrkzhsmvx\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news-categories"
);

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

let body = {
    "active": true,
    "fr": {
        "name": "depzrcnybhrgiuqqhoffodkarpzvkrjtaxydsotbicrfiewvfbqhozkdywqnzkfwgry"
    },
    "en": {
        "name": "qpsjxdkygkjuoyldkrehgdqoilsveheghjiwaeegimrkzhsmvx"
    }
};

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

Request      

POST api/superadmin/news-categories

Body Parameters

active  boolean optional  

fr  object optional  

fr.name  string  

validation.max.

en  object optional  

en.name  string optional  

validation.max.

PUT api/superadmin/news-categories/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/superadmin/news-categories/645640371836" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": true,
    \"fr\": {
        \"name\": \"mtmeqsqzdcitziotdhtlzvyjemflgmjpkucuciyeebuxhhegxpaegovvhbfrpgkzhzheodgfrscjapmoihhciixgnvtrfigwzdhrjpfdebolrinvrpfpmonbmwajxrmlkwzvkmfiiwnxkqxwcxemupzniuwrxokgvgqdfguuzpfdjkhrqemiwub\"
    },
    \"en\": {
        \"name\": \"siwlmakneckkkvteenfeyndxw\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news-categories/645640371836"
);

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

let body = {
    "active": true,
    "fr": {
        "name": "mtmeqsqzdcitziotdhtlzvyjemflgmjpkucuciyeebuxhhegxpaegovvhbfrpgkzhzheodgfrscjapmoihhciixgnvtrfigwzdhrjpfdebolrinvrpfpmonbmwajxrmlkwzvkmfiiwnxkqxwcxemupzniuwrxokgvgqdfguuzpfdjkhrqemiwub"
    },
    "en": {
        "name": "siwlmakneckkkvteenfeyndxw"
    }
};

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

Request      

PUT api/superadmin/news-categories/{id}

URL Parameters

id  string  

The ID of the news category.

Body Parameters

active  boolean optional  

fr  object optional  

fr.name  string  

validation.max.

en  object optional  

en.name  string optional  

validation.max.

DELETE api/superadmin/news-categories/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/superadmin/news-categories/799015316871" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/superadmin/news-categories/799015316871"
);

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

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

Request      

DELETE api/superadmin/news-categories/{id}

URL Parameters

id  string  

The ID of the news category.

Global News Public

Consultation publique des actualités globales (toutes municipalités confondues).

GET api/public/news

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/news" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/news"
);

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: 1000
x-ratelimit-remaining: 975
vary: Origin
 

{
    "articles": {
        "current_page": 1,
        "data": [
            {
                "id": 6,
                "company_id": null,
                "news_category_id": null,
                "author_id": 7,
                "cover_media_id": 24,
                "slug": "actu",
                "status": "published",
                "published_at": "2026-06-05 17:35:46",
                "deleted_at": null,
                "created_at": "2026-06-05T17:35:45.000000Z",
                "updated_at": "2026-06-25T07:22:13.000000Z",
                "title": "Ensemble, gardons notre commune propre",
                "content": "<p>Le dépôt d'ordures dans les espaces publics nuit à notre environnement, à notre santé et à l'image de notre commune. Utilisons les poubelles et les points de collecte prévus afin de préserver un cadre de vie agréable pour tous.</p>",
                "category": null,
                "cover_media": {
                    "id": 24,
                    "company_id": 1,
                    "user_id": 7,
                    "media_type": null,
                    "media_id": null,
                    "name": "ORDURE_depot_sauvage.jpg.jpeg",
                    "path": "6a3cd72530eee.jpeg",
                    "key": null,
                    "created_at": "2026-06-25T07:22:13.000000Z",
                    "updated_at": "2026-06-25T07:22:13.000000Z",
                    "deleted_at": null,
                    "is_logo": 0,
                    "url": "https://api.dev.bouge.io/api/1/storage/news-cover/24",
                    "thumb_url": "https://api.dev.bouge.io/api/1/storage/news-cover/24?variant=thumb",
                    "web_url": "https://api.dev.bouge.io/api/1/storage/news-cover/24?variant=web"
                },
                "translations": [
                    {
                        "id": 7,
                        "news_article_id": 6,
                        "locale": "fr",
                        "title": "Ensemble, gardons notre commune propre",
                        "content": "<p>Le dépôt d'ordures dans les espaces publics nuit à notre environnement, à notre santé et à l'image de notre commune. Utilisons les poubelles et les points de collecte prévus afin de préserver un cadre de vie agréable pour tous.</p>"
                    }
                ]
            },
            {
                "id": 5,
                "company_id": null,
                "news_category_id": null,
                "author_id": 7,
                "cover_media_id": 25,
                "slug": "actualite-globale",
                "status": "published",
                "published_at": "2026-06-05 17:35:25",
                "deleted_at": null,
                "created_at": "2026-06-05T17:35:24.000000Z",
                "updated_at": "2026-06-25T07:23:06.000000Z",
                "title": "Le recyclage commence par chacun de nous",
                "content": "<p>Trier et recycler nos déchets permet de réduire la pollution, de préserver les ressources naturelles et de construire une commune plus propre et plus durable. Chaque geste compte pour protéger notre avenir.</p>",
                "category": null,
                "cover_media": {
                    "id": 25,
                    "company_id": 1,
                    "user_id": 7,
                    "media_type": null,
                    "media_id": null,
                    "name": "recyclage_ordures.jpg.jpeg",
                    "path": "6a3cd75aebee4.jpeg",
                    "key": null,
                    "created_at": "2026-06-25T07:23:06.000000Z",
                    "updated_at": "2026-06-25T07:23:06.000000Z",
                    "deleted_at": null,
                    "is_logo": 0,
                    "url": "https://api.dev.bouge.io/api/1/storage/news-cover/25",
                    "thumb_url": "https://api.dev.bouge.io/api/1/storage/news-cover/25?variant=thumb",
                    "web_url": "https://api.dev.bouge.io/api/1/storage/news-cover/25?variant=web"
                },
                "translations": [
                    {
                        "id": 6,
                        "news_article_id": 5,
                        "locale": "fr",
                        "title": "Le recyclage commence par chacun de nous",
                        "content": "<p>Trier et recycler nos déchets permet de réduire la pollution, de préserver les ressources naturelles et de construire une commune plus propre et plus durable. Chaque geste compte pour protéger notre avenir.</p>"
                    }
                ]
            },
            {
                "id": 2,
                "company_id": null,
                "news_category_id": null,
                "author_id": 6,
                "cover_media_id": 26,
                "slug": "ceci-est-une-actu-globale",
                "status": "published",
                "published_at": "2026-05-14 12:45:35",
                "deleted_at": null,
                "created_at": "2026-05-14T12:45:35.000000Z",
                "updated_at": "2026-06-25T07:23:46.000000Z",
                "title": "Une canalisation rompue ? Signalez-la rapidement",
                "content": "<p>Une canalisation endommagée peut provoquer des pertes d'eau importantes, des dégâts matériels et des risques pour la sécurité. En signalant rapidement toute fuite ou rupture constatée, vous contribuez à protéger votre commune et ses habitants.</p>",
                "category": null,
                "cover_media": {
                    "id": 26,
                    "company_id": 1,
                    "user_id": 7,
                    "media_type": null,
                    "media_id": null,
                    "name": "canalisation_rompu.jpg.jpeg",
                    "path": "6a3cd7821e2f3.jpeg",
                    "key": null,
                    "created_at": "2026-06-25T07:23:46.000000Z",
                    "updated_at": "2026-06-25T07:23:46.000000Z",
                    "deleted_at": null,
                    "is_logo": 0,
                    "url": "https://api.dev.bouge.io/api/1/storage/news-cover/26",
                    "thumb_url": "https://api.dev.bouge.io/api/1/storage/news-cover/26?variant=thumb",
                    "web_url": "https://api.dev.bouge.io/api/1/storage/news-cover/26?variant=web"
                },
                "translations": [
                    {
                        "id": 3,
                        "news_article_id": 2,
                        "locale": "en",
                        "title": "A burst pipe? Report it quickly.",
                        "content": "<p>A damaged pipe can cause significant water loss, property damage, and safety risks. By promptly reporting any leaks or breaks, you help protect your community and its residents.</p>"
                    },
                    {
                        "id": 2,
                        "news_article_id": 2,
                        "locale": "fr",
                        "title": "Une canalisation rompue ? Signalez-la rapidement",
                        "content": "<p>Une canalisation endommagée peut provoquer des pertes d'eau importantes, des dégâts matériels et des risques pour la sécurité. En signalant rapidement toute fuite ou rupture constatée, vous contribuez à protéger votre commune et ses habitants.</p>"
                    }
                ]
            }
        ],
        "first_page_url": "https://api.dev.bouge.io/api/public/news?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https://api.dev.bouge.io/api/public/news?page=1",
        "links": [
            {
                "url": null,
                "label": "pagination.previous",
                "active": false
            },
            {
                "url": "https://api.dev.bouge.io/api/public/news?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "pagination.next",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "https://api.dev.bouge.io/api/public/news",
        "per_page": 25,
        "prev_page_url": null,
        "to": 3,
        "total": 3
    }
}
 

Request      

GET api/public/news

GET api/public/news/{articleSlug}

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/news/aut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/news/aut"
);

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: 1000
x-ratelimit-remaining: 974
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\News\\NewsArticle].",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 391,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 367,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Exceptions/Handler.php",
            "line": 56,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 143,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/news/{articleSlug}

URL Parameters

articleSlug  string  

News

Backoffice news articles management

GET api/{company}/news

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/89628/news" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/89628/news"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/news

URL Parameters

company  string  

POST api/{company}/news

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/24938438329634747/news" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"news_category_id\": 3,
    \"cover_media_id\": 12,
    \"cover_media\": {
        \"name\": \"lvrsfguwowubgxsklpatsyolnsvmqtfrcxtgxavbotuuizrlwqru\",
        \"encodedFile\": \"incidunt\"
    },
    \"fr\": {
        \"title\": \"Travaux rue de la Paix\",
        \"content\": \"<p>Les travaux débuteront le 10 juin...<\\/p>\"
    },
    \"en\": {
        \"title\": \"Works on Rue de la Paix\",
        \"content\": \"eius\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/24938438329634747/news"
);

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

let body = {
    "news_category_id": 3,
    "cover_media_id": 12,
    "cover_media": {
        "name": "lvrsfguwowubgxsklpatsyolnsvmqtfrcxtgxavbotuuizrlwqru",
        "encodedFile": "incidunt"
    },
    "fr": {
        "title": "Travaux rue de la Paix",
        "content": "<p>Les travaux débuteront le 10 juin...<\/p>"
    },
    "en": {
        "title": "Works on Rue de la Paix",
        "content": "eius"
    }
};

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

Request      

POST api/{company}/news

URL Parameters

company  string  

Body Parameters

news_category_id  integer optional  

ID de la catégorie d'actualité (optionnel).

cover_media_id  integer optional  

ID du média de couverture (optionnel).

cover_media  object optional  

cover_media.name  string optional  

validation.required_with validation.max.

cover_media.encodedFile  string optional  

validation.required_with.

fr  object optional  

fr.title  string  

Titre de l'article en français. validation.max.

fr.content  string optional  

Contenu de l'article en français (HTML ou Markdown).

en  object optional  

en.title  string optional  

Titre en anglais (optionnel). validation.max.

en.content  string optional  

Contenu en anglais (optionnel).

GET api/{company}/news/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/698579654783251740/news/86744" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/698579654783251740/news/86744"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/news/{id}

URL Parameters

company  string  

id  string  

The ID of the news.

PUT api/{company}/news/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/4805564/news/2882033" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"news_category_id\": 18,
    \"cover_media_id\": 15,
    \"cover_media\": {
        \"name\": \"rpqjpoxpuaeakwksvsolwmnkjftbybpgiuopwjermfqkfqjevwvvqzabgevidahuyuhqqrtoyzkwxcylbjstnsuubwfkodehtfbvsfgisamm\",
        \"encodedFile\": \"non\"
    },
    \"fr\": {
        \"title\": \"zlilnkaotinzasxjlyoygkwytxpgatfhzdizousgcirnehheyfvtsrighvhkvghimvdmmitcecwaucfbjqgffnrumcigzgpwesitzrmlpuhujtvwhsenrmdrituyrhuqguwdkepetidtpvommoeawdhdvmuzixbnkxnebplqx\",
        \"content\": \"similique\"
    },
    \"en\": {
        \"title\": \"ywxloezmlyygkvijmrid\",
        \"content\": \"praesentium\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/4805564/news/2882033"
);

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

let body = {
    "news_category_id": 18,
    "cover_media_id": 15,
    "cover_media": {
        "name": "rpqjpoxpuaeakwksvsolwmnkjftbybpgiuopwjermfqkfqjevwvvqzabgevidahuyuhqqrtoyzkwxcylbjstnsuubwfkodehtfbvsfgisamm",
        "encodedFile": "non"
    },
    "fr": {
        "title": "zlilnkaotinzasxjlyoygkwytxpgatfhzdizousgcirnehheyfvtsrighvhkvghimvdmmitcecwaucfbjqgffnrumcigzgpwesitzrmlpuhujtvwhsenrmdrituyrhuqguwdkepetidtpvommoeawdhdvmuzixbnkxnebplqx",
        "content": "similique"
    },
    "en": {
        "title": "ywxloezmlyygkvijmrid",
        "content": "praesentium"
    }
};

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

Request      

PUT api/{company}/news/{id}

URL Parameters

company  string  

id  string  

The ID of the news.

Body Parameters

news_category_id  integer optional  

cover_media_id  integer optional  

cover_media  object optional  

cover_media.name  string optional  

validation.required_with validation.max.

cover_media.encodedFile  string optional  

validation.required_with.

fr  object optional  

fr.title  string  

validation.max.

fr.content  string optional  

en  object optional  

en.title  string optional  

validation.max.

en.content  string optional  

DELETE api/{company}/news/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/0504008920462/news/4537" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/0504008920462/news/4537"
);

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

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

Request      

DELETE api/{company}/news/{id}

URL Parameters

company  string  

id  string  

The ID of the news.

PUT api/{company}/news/{id}/publish

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/11252025535/news/2/publish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/11252025535/news/2/publish"
);

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

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

Request      

PUT api/{company}/news/{id}/publish

URL Parameters

company  string  

id  string  

The ID of the news.

PUT api/{company}/news/{id}/unpublish

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/53485599778/news/0621057609/unpublish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/53485599778/news/0621057609/unpublish"
);

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

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

Request      

PUT api/{company}/news/{id}/unpublish

URL Parameters

company  string  

id  string  

The ID of the news.

GET api/{company}/news-categories

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/82852/news-categories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/82852/news-categories"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/news-categories

URL Parameters

company  string  

POST api/{company}/news-categories

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/38659/news-categories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": false,
    \"fr\": {
        \"name\": \"odwmhoqgkmkcvullvhtztssecyapmupcxsqpoovnjjtjacmweizkokmbkdqfwbxujikllfhmpobdiqbwjriogvgjdhttbqblowkceljsgaseawhoruimonobhrdioqrlqusuoicmkjnnfjtstzduhkcqhgdlikubvxzfgrkquzachrcmyykxxzoaqtdjorjrstfzjrjnjfvskvyg\"
    },
    \"en\": {
        \"name\": \"anlruomaulfppziyizoaehosywvpcuqtbciifmixzjgoqbyngymmifyfvwvkdhjmlqensqftzdlyshwgjxmcdqcjidhmcbilsuzjordgfljuxjykinvnebdckzsrmoxamibchipvxsukahjaheumbdhabifktojuvpqjjdxawbpgbenjyeapumfhuajibhqrtebpoyyhnrlspeuxgackpfmhqcuhpnlcwuvjdziwaerzwesvm\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/38659/news-categories"
);

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

let body = {
    "active": false,
    "fr": {
        "name": "odwmhoqgkmkcvullvhtztssecyapmupcxsqpoovnjjtjacmweizkokmbkdqfwbxujikllfhmpobdiqbwjriogvgjdhttbqblowkceljsgaseawhoruimonobhrdioqrlqusuoicmkjnnfjtstzduhkcqhgdlikubvxzfgrkquzachrcmyykxxzoaqtdjorjrstfzjrjnjfvskvyg"
    },
    "en": {
        "name": "anlruomaulfppziyizoaehosywvpcuqtbciifmixzjgoqbyngymmifyfvwvkdhjmlqensqftzdlyshwgjxmcdqcjidhmcbilsuzjordgfljuxjykinvnebdckzsrmoxamibchipvxsukahjaheumbdhabifktojuvpqjjdxawbpgbenjyeapumfhuajibhqrtebpoyyhnrlspeuxgackpfmhqcuhpnlcwuvjdziwaerzwesvm"
    }
};

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

Request      

POST api/{company}/news-categories

URL Parameters

company  string  

Body Parameters

active  boolean optional  

fr  object optional  

fr.name  string  

validation.max.

en  object optional  

en.name  string optional  

validation.max.

PUT api/{company}/news-categories/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/4772/news-categories/4095" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"active\": false,
    \"fr\": {
        \"name\": \"pvptknduppmyxvsnjjcdhobmmnazizufnxnphuybwavfwcxutklqtntxgfhjhhzp\"
    },
    \"en\": {
        \"name\": \"ebmcsolppcmugsjuxearohkjinwfyuiihextyyaqewswmmwhqrabnbjpbqlwucyksctsbhhlhilrnnxwbhcvwpzshxjhbzoischhslvbujdzaahmkzmtlrrzdjahxvmejvuuirzzqdyifukyfvszkpltjlleltmnjzjzajejodtgyuptyxfdalywgqwklmrbulufcisazvskyvgqwpcxbxyteinwkryanloycgkvemlkainltfbcoegfhyhd\"
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/4772/news-categories/4095"
);

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

let body = {
    "active": false,
    "fr": {
        "name": "pvptknduppmyxvsnjjcdhobmmnazizufnxnphuybwavfwcxutklqtntxgfhjhhzp"
    },
    "en": {
        "name": "ebmcsolppcmugsjuxearohkjinwfyuiihextyyaqewswmmwhqrabnbjpbqlwucyksctsbhhlhilrnnxwbhcvwpzshxjhbzoischhslvbujdzaahmkzmtlrrzdjahxvmejvuuirzzqdyifukyfvszkpltjlleltmnjzjzajejodtgyuptyxfdalywgqwklmrbulufcisazvskyvgqwpcxbxyteinwkryanloycgkvemlkainltfbcoegfhyhd"
    }
};

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

Request      

PUT api/{company}/news-categories/{id}

URL Parameters

company  string  

id  string  

The ID of the news category.

Body Parameters

active  boolean optional  

fr  object optional  

fr.name  string  

validation.max.

en  object optional  

en.name  string optional  

validation.max.

DELETE api/{company}/news-categories/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/148010893829/news-categories/995725884" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/148010893829/news-categories/995725884"
);

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

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

Request      

DELETE api/{company}/news-categories/{id}

URL Parameters

company  string  

id  string  

The ID of the news category.

News Public

Consultation publique des articles d'actualité par UUID de municipalité.

List published news articles for a company.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/550e8400-e29b-41d4-a716-446655440000/news" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/550e8400-e29b-41d4-a716-446655440000/news"
);

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: 1000
x-ratelimit-remaining: 973
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\Company].",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 391,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 367,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Exceptions/Handler.php",
            "line": 56,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 143,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/{companyUuid}/news

URL Parameters

companyUuid  string  

The UUID of the company.

Show a published news article for a company.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/550e8400-e29b-41d4-a716-446655440000/news/mon-article" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/550e8400-e29b-41d4-a716-446655440000/news/mon-article"
);

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: 1000
x-ratelimit-remaining: 972
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\Company].",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 391,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 367,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Exceptions/Handler.php",
            "line": 56,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 143,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/{companyUuid}/news/{articleSlug}

URL Parameters

companyUuid  string  

The UUID of the company.

articleSlug  string  

The slug of the article.

Notifications

Préférences de notifications par utilisateur.

Update notification preferences for a user

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/72411/notification-preferences/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"preferences\": [
        {
            \"channels\": [
                \"laboriosam\"
            ]
        }
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/72411/notification-preferences/1"
);

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

let body = {
    "preferences": [
        {
            "channels": [
                "laboriosam"
            ]
        }
    ]
};

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

Request      

PUT api/{company}/notification-preferences/{user}

URL Parameters

company  string  

user  integer  

Body Parameters

preferences  object[] optional  

preferences[].event  string optional  

preferences[].channels  string[]  

GET api/{company}/users/me/notifications

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/38549804077632016/users/me/notifications" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/38549804077632016/users/me/notifications"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/users/me/notifications

URL Parameters

company  string  

POST api/{company}/users/me/notifications/read-all

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/0/users/me/notifications/read-all" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/0/users/me/notifications/read-all"
);

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

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

Request      

POST api/{company}/users/me/notifications/read-all

URL Parameters

company  string  

POST api/{company}/users/me/notifications/{id}/read

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/0027/users/me/notifications/b/read" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/0027/users/me/notifications/b/read"
);

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

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

Request      

POST api/{company}/users/me/notifications/{id}/read

URL Parameters

company  string  

id  string  

The ID of the notification.

Post

Listing global unifié des posts citoyen.

requires authentication

Fonctionne pour un citoyen connecté (Sanctum) comme pour un device anonyme (device_uuid), avec rétro-compatibilité firebase. Identité résolue par priorité : compte connecté > device_uuid > firebase.

Ne renvoie que la liste des signalements (+ compteur de messages non lus). Les statuts/stats sont exposés séparément par globalStats().

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/citizen/posts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 100
x-ratelimit-remaining: 88
vary: Origin
 

{
    "posts": null,
    "unread_messages": 0
}
 

Request      

GET api/citizen/posts

Statistiques du citoyen : liste de référence des statuts (statuses) et répartition des signalements par statut (stats), + compteur de messages non lus. Même résolution d'identité que globalIndex (compte > device_uuid > firebase). Séparé du listing pour être appelé indépendamment par le front.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/citizen/posts/stats" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/stats"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 100
x-ratelimit-remaining: 87
vary: Origin
 

{
    "statuses": [],
    "stats": [],
    "unread_messages": 0
}
 

Request      

GET api/citizen/posts/stats

Affichage global unifié d'un signalement citoyen, sans dépendre de l'application uuid. Fonctionne pour un citoyen connecté (Sanctum) comme pour un device anonyme (device_uuid), avec rétro-compat firebase.

requires authentication

La propriété est vérifiée par le scope d'identité : on ne retourne le post que si le demandeur en est l'auteur (null sinon).

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/citizen/posts/77" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/77"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 100
x-ratelimit-remaining: 86
vary: Origin
 

{
    "post": null
}
 

Request      

GET api/citizen/posts/{id}

URL Parameters

id  string  

The ID of the post.

Listing global unifié des posts citoyen.

requires authentication

Fonctionne pour un citoyen connecté (Sanctum) comme pour un device anonyme (device_uuid), avec rétro-compatibilité firebase. Identité résolue par priorité : compte connecté > device_uuid > firebase.

Ne renvoie que la liste des signalements (+ compteur de messages non lus). Les statuts/stats sont exposés séparément par globalStats().

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/citizen/posts/token" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/token"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 100
x-ratelimit-remaining: 85
vary: Origin
 

{
    "posts": null,
    "unread_messages": 0
}
 

Request      

GET api/citizen/posts/token

Listing global unifié des posts citoyen.

requires authentication

Fonctionne pour un citoyen connecté (Sanctum) comme pour un device anonyme (device_uuid), avec rétro-compatibilité firebase. Identité résolue par priorité : compte connecté > device_uuid > firebase.

Ne renvoie que la liste des signalements (+ compteur de messages non lus). Les statuts/stats sont exposés séparément par globalStats().

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/citizen/posts/device" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/device"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 100
x-ratelimit-remaining: 84
vary: Origin
 

{
    "posts": null,
    "unread_messages": 0
}
 

Request      

GET api/citizen/posts/device

S'approprier un signalement anonyme (fusion à la connexion).

requires authentication

Le citoyen connecté (Sanctum, garanti par le middleware) réclame un signalement créé anonymement sur son appareil. Le device_uuid de la requête doit correspondre à celui du post (preuve de possession) et le post doit encore être anonyme. Le post réclamé apparaît ensuite dans son feed de compte et son activité, sans autre action.

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/citizen/posts/42485819/claim" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/42485819/claim"
);

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

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

Request      

POST api/citizen/posts/{id}/claim

URL Parameters

id  string  

The ID of the post.

« Garder anonyme » : le citoyen connecté décline la réclamation d'un signalement anonyme de son appareil. Il ne lui sera plus reproposé et retombe en visibilité device_uuid pure. Idempotent.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/citizen/posts/9/keep-anonymous" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/9/keep-anonymous"
);

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

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

Request      

POST api/citizen/posts/{id}/keep-anonymous

URL Parameters

id  string  

The ID of the post.

Get recent and active posts from user's company to show on the dashboard

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/99147/posts/dashboard" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/99147/posts/dashboard"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/dashboard

URL Parameters

company  string  

Get posts where current user is operator

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/685533675498/posts/dashboard/user" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/685533675498/posts/dashboard/user"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/dashboard/user

URL Parameters

company  string  

Display filters' post

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/780461/posts/filters" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/780461/posts/filters"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/filters

URL Parameters

company  string  

Get posts by statuses

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/79/posts/statuses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/79/posts/statuses"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/statuses

URL Parameters

company  string  

GET api/{company}/posts/exports

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/98/posts/exports" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/98/posts/exports"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/exports

URL Parameters

company  string  

Send operator reminder

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/315977707672/posts/77/remind" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/315977707672/posts/77/remind"
);

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

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

Request      

POST api/{company}/posts/{post_id}/remind

URL Parameters

company  string  

post_id  integer  

The ID of the post.

POST api/{company}/posts/{postId}/export/pdf

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/4319998795908943/posts/6891730/export/pdf" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/4319998795908943/posts/6891730/export/pdf"
);

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

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

Request      

POST api/{company}/posts/{postId}/export/pdf

URL Parameters

company  string  

postId  string  

Update post priority

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/851577572945765/posts/2944090/priority/est" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postId\": 1,
    \"priority\": 4
}"
const url = new URL(
    "https://api.dev.bouge.io/api/851577572945765/posts/2944090/priority/est"
);

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

let body = {
    "postId": 1,
    "priority": 4
};

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

Request      

PUT api/{company}/posts/{postId}/priority/{priority}

URL Parameters

company  string  

postId  string  

priority  string  

The priority.

Body Parameters

postId  integer  

validation.min.

priority  integer  

validation.min validation.max.

GET api/{company}/location/{location}/restricted/{restrict}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/54490404132/location/harum/restricted/nihil" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/54490404132/location/harum/restricted/nihil"
);

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

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

Example response (500):

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

{
    "message": "Cannot assign null to property App\\Services\\Map\\BingService::$key of type string",
    "exception": "TypeError",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Services/Map/BingService.php",
    "line": 26,
    "trace": [
        {
            "function": "__construct",
            "class": "App\\Services\\Map\\BingService",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 929,
            "function": "newInstanceArgs",
            "class": "ReflectionClass",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 770,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 881,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 706,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 866,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 1043,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 959,
            "function": "resolveClass",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 920,
            "function": "resolveDependencies",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 770,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 881,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 706,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 866,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 274,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1099,
            "function": "getController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1030,
            "function": "controllerMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 810,
            "function": "gatherMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 792,
            "function": "gatherRouteMiddleware",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/{company}/location/{location}/restricted/{restrict}

URL Parameters

company  string  

location  string  

The location.

restrict  string  

GET api/{company}/location/{location}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/58729438/location/qui" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/58729438/location/qui"
);

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

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

Example response (500):

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

{
    "message": "Cannot assign null to property App\\Services\\Map\\BingService::$key of type string",
    "exception": "TypeError",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Services/Map/BingService.php",
    "line": 26,
    "trace": [
        {
            "function": "__construct",
            "class": "App\\Services\\Map\\BingService",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 929,
            "function": "newInstanceArgs",
            "class": "ReflectionClass",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 770,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 881,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 706,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 866,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 1043,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 959,
            "function": "resolveClass",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 920,
            "function": "resolveDependencies",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 770,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 881,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 706,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 866,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 274,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1099,
            "function": "getController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1030,
            "function": "controllerMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 810,
            "function": "gatherMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 792,
            "function": "gatherRouteMiddleware",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/{company}/location/{location}

URL Parameters

company  string  

location  string  

The location.

GET api/{company}/location/coordinates/{lat}/{lon}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/72430888251/location/coordinates/ipsam/aut" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/72430888251/location/coordinates/ipsam/aut"
);

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

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

Example response (500):

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

{
    "message": "Cannot assign null to property App\\Services\\Map\\BingService::$key of type string",
    "exception": "TypeError",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Services/Map/BingService.php",
    "line": 26,
    "trace": [
        {
            "function": "__construct",
            "class": "App\\Services\\Map\\BingService",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 929,
            "function": "newInstanceArgs",
            "class": "ReflectionClass",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 770,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 881,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 706,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 866,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 1043,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 959,
            "function": "resolveClass",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 920,
            "function": "resolveDependencies",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 770,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 881,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 706,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 866,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 274,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1099,
            "function": "getController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1030,
            "function": "controllerMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 810,
            "function": "gatherMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 792,
            "function": "gatherRouteMiddleware",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/{company}/location/coordinates/{lat}/{lon}

URL Parameters

company  string  

lat  string  

lon  string  

List posts

requires authentication

Retourne la liste paginée des signalements de la company.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/4916056488764484/posts?search=voirie" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/4916056488764484/posts"
);

const params = {
    "search": "voirie",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

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

Example response (200):


{
    "posts": {
        "current_page": 1,
        "data": [
            {
                "id": 101,
                "reference": "2024-00101",
                "title": "Nid de poule rue des Acacias",
                "priority": 2,
                "status_id": 5,
                "created_at": "2024-06-01T10:00:00.000000Z"
            }
        ],
        "per_page": 25,
        "total": 142
    }
}
 

Request      

GET api/{company}/posts

URL Parameters

company  string  

Query Parameters

search  string optional  

Recherche fulltext dans les signalements.

Create a post

requires authentication

Crée un nouveau signalement depuis le backoffice CRM.

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/168495301467/posts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/168495301467/posts"
);

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

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

Example response (200):


{
    "post": {
        "id": 102,
        "reference": "2024-00102",
        "title": "Lampadaire hors service",
        "status_id": 1,
        "priority": 1,
        "created_at": "2024-06-02T09:00:00.000000Z"
    }
}
 

Example response (422, Validation error):


{
    "errors": {
        "form_id": [
            "The form id field is required."
        ]
    }
}
 

Request      

POST api/{company}/posts

URL Parameters

company  string  

Get a post

requires authentication

Retourne le détail d'un signalement avec son historique et les statuts disponibles.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/75880523342/posts/76889392272511418" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/75880523342/posts/76889392272511418"
);

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

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

Example response (200):


{
    "post": {
        "id": 101,
        "reference": "2024-00101",
        "title": "Nid de poule rue des Acacias",
        "content": "Gros nid de poule dangereux...",
        "priority": 2,
        "status_id": 5,
        "author_email": "citoyen@example.com",
        "created_at": "2024-06-01T10:00:00.000000Z"
    },
    "history": [],
    "statuses": []
}
 

Example response (404):


{
    "message": "No query results for model [App\\Models\\Post\\Post]"
}
 

Request      

GET api/{company}/posts/{id}

URL Parameters

company  string  

id  string  

The ID of the post.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/58564/posts/187386" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/58564/posts/187386"
);

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

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

Request      

PUT api/{company}/posts/{id}

PATCH api/{company}/posts/{id}

URL Parameters

company  string  

id  string  

The ID of the post.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/7088/posts/93929104721" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/7088/posts/93929104721"
);

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

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

Request      

DELETE api/{company}/posts/{id}

URL Parameters

company  string  

id  string  

The ID of the post.

Post Comments

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/65528734651891442/posts/impedit/comments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/65528734651891442/posts/impedit/comments"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/comments

URL Parameters

company  string  

post_id  string  

The ID of the post.

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/656624871427/posts/59215/comments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"message\": {
        \"mentions\": [
            9
        ]
    }
}"
const url = new URL(
    "https://api.dev.bouge.io/api/656624871427/posts/59215/comments"
);

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

let body = {
    "message": {
        "mentions": [
            9
        ]
    }
};

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

Request      

POST api/{company}/posts/{post}/comments

URL Parameters

company  string  

post  string  

The post.

Body Parameters

message  object optional  

message.mentions  integer[] optional  

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/2931064287/posts/accusantium/comments/91402826226725" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/2931064287/posts/accusantium/comments/91402826226725"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/comments/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the comment.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/84/posts/id/comments/5250914632048" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/84/posts/id/comments/5250914632048"
);

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

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

Request      

PUT api/{company}/posts/{post_id}/comments/{id}

PATCH api/{company}/posts/{post_id}/comments/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the comment.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/2/posts/ullam/comments/65311376072" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/2/posts/ullam/comments/65311376072"
);

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

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

Request      

DELETE api/{company}/posts/{post_id}/comments/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the comment.

Post Histories

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/148168466170/posts/consectetur/histories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/148168466170/posts/consectetur/histories"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/histories

URL Parameters

company  string  

post_id  string  

The ID of the post.

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/42519964924/posts/90889/histories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/42519964924/posts/90889/histories"
);

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

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

Request      

POST api/{company}/posts/{post}/histories

URL Parameters

company  string  

post  string  

The post.

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/2/posts/dignissimos/histories/972029505320" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/2/posts/dignissimos/histories/972029505320"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/histories/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the history.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/1976109/posts/voluptatum/histories/7900184664" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/1976109/posts/voluptatum/histories/7900184664"
);

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

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

Request      

PUT api/{company}/posts/{post_id}/histories/{id}

PATCH api/{company}/posts/{post_id}/histories/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the history.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/4859160/posts/qui/histories/5393758" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/4859160/posts/qui/histories/5393758"
);

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

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

Request      

DELETE api/{company}/posts/{post_id}/histories/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the history.

Post Messages

Store a message authored by a citizen (connecté OU anonyme).

requires authentication

Point d'entrée dédié à l'app citoyenne, hors du groupe CRM : les gardes active_account et permission:messages.create ne s'appliquent qu'aux User et bloquaient les CitizenAccount. On délègue à store() (author_type = POST_CITIZEN_ACCOUNT), après avoir vérifié la propriété du signalement :

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/citizen/posts/071/messages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/citizen/posts/071/messages"
);

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

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

Request      

POST api/citizen/posts/{post}/messages

URL Parameters

post  string  

The post.

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/9691986675867114/posts/consectetur/messages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/9691986675867114/posts/consectetur/messages"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/messages

URL Parameters

company  string  

post_id  string  

The ID of the post.

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/880044/posts/16586720500620252/messages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"content\": \"doloremque\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/880044/posts/16586720500620252/messages"
);

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

let body = {
    "content": "doloremque"
};

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

Request      

POST api/{company}/posts/{post}/messages

URL Parameters

company  string  

post  string  

The post.

Body Parameters

content  string  

Post RACI

Gestion des assignations RACI (Responsible, Accountable, Consulted, Informed) sur les signalements.

GET api/{company}/posts/{post_id}/racis

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/3986027025/posts/corrupti/racis" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/3986027025/posts/corrupti/racis"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/racis

URL Parameters

company  string  

post_id  string  

The ID of the post.

POST api/{company}/posts/{post}/racis

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/343266196009007/posts/88513325108287462/racis" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"racis\": [
        {
            \"id\": 1,
            \"is_responsible\": false,
            \"is_accountable\": true,
            \"is_consulted\": true,
            \"is_informed\": true
        }
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/343266196009007/posts/88513325108287462/racis"
);

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

let body = {
    "racis": [
        {
            "id": 1,
            "is_responsible": false,
            "is_accountable": true,
            "is_consulted": true,
            "is_informed": true
        }
    ]
};

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

Request      

POST api/{company}/posts/{post}/racis

URL Parameters

company  string  

post  string  

The post.

Body Parameters

racis  object[] optional  

racis[].id  integer  

validation.min.

racis[].is_responsible  boolean  

racis[].is_accountable  boolean  

racis[].is_consulted  boolean  

racis[].is_informed  boolean  

GET api/{company}/posts/{post_id}/racis/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/30018761936/posts/deleniti/racis/6790437936817195" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/30018761936/posts/deleniti/racis/6790437936817195"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/racis/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the raci.

Post Statuses

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/7/statuses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/7/statuses"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/statuses

URL Parameters

company  string  

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/772401124689578/posts/suscipit/statuses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/772401124689578/posts/suscipit/statuses"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/statuses

URL Parameters

company  string  

post_id  string  

The ID of the post.

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/953987877900857/posts/95/statuses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/953987877900857/posts/95/statuses"
);

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

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

Request      

POST api/{company}/posts/{post}/statuses

URL Parameters

company  string  

post  string  

The post.

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/17028101985/posts/et/statuses/14713735" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/17028101985/posts/et/statuses/14713735"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/posts/{post_id}/statuses/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the status.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/4943007/posts/sint/statuses/6303" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/4943007/posts/sint/statuses/6303"
);

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

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

Request      

PUT api/{company}/posts/{post_id}/statuses/{id}

PATCH api/{company}/posts/{post_id}/statuses/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the status.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/40981045/posts/nemo/statuses/10755173711902" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/40981045/posts/nemo/statuses/10755173711902"
);

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

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

Request      

DELETE api/{company}/posts/{post_id}/statuses/{id}

URL Parameters

company  string  

post_id  string  

The ID of the post.

id  string  

The ID of the status.

Public Events

Public access to published events and projects

GET api/public/{companyUuid}/events

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/550e8400-e29b-41d4-a716-446655440000/events?type=project&search=forum&per_page=25" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/550e8400-e29b-41d4-a716-446655440000/events"
);

const params = {
    "type": "project",
    "search": "forum",
    "per_page": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 1000
x-ratelimit-remaining: 971
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\Company].",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 391,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 367,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Exceptions/Handler.php",
            "line": 56,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 143,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/{companyUuid}/events

URL Parameters

companyUuid  string  

L'UUID de la municipalité.

Query Parameters

type  string optional  

Restreint à un seul type. Enum: event,project.

search  string optional  

Recherche sur le titre.

per_page  integer optional  

Nombre d'items par page.

GET api/public/{companyUuid}/events/{slug}

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/voluptatem/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/voluptatem/events/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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: 1000
x-ratelimit-remaining: 970
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\Company].",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 391,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 367,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Exceptions/Handler.php",
            "line": 56,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 143,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/{companyUuid}/events/{slug}

URL Parameters

companyUuid  string  

slug  integer  

The slug of the event.

Set or toggle the authenticated citizen reaction on an event.

requires authentication

Sending the reaction type already set removes it (toggle).

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/public/dolorem/events/1/reaction" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"like\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/public/dolorem/events/1/reaction"
);

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

let body = {
    "type": "like"
};

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

Request      

PUT api/public/{companyUuid}/events/{slug}/reaction

URL Parameters

companyUuid  string  

slug  integer  

The slug of the event.

Body Parameters

type  string  

Type de réaction. Renvoyer le type déjà posé retire la réaction (toggle). Must be one of like, love, wow, sad, angry, or support.

Remove the authenticated citizen reaction on an event.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/public/accusamus/events/1/reaction" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/accusamus/events/1/reaction"
);

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

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

Request      

DELETE api/public/{companyUuid}/events/{slug}/reaction

URL Parameters

companyUuid  string  

slug  integer  

The slug of the event.

Liste paginée des commentaires d'un event publié.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/quis/events/1/comments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/quis/events/1/comments"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/public/{companyUuid}/events/{slug}/comments

URL Parameters

companyUuid  string  

slug  integer  

The slug of the event.

Poste un commentaire du citoyen authentifié sur un event.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/public/quis/events/1/comments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"content\": \"Très bonne initiative, merci !\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/public/quis/events/1/comments"
);

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

let body = {
    "content": "Très bonne initiative, merci !"
};

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

Request      

POST api/public/{companyUuid}/events/{slug}/comments

URL Parameters

companyUuid  string  

slug  integer  

The slug of the event.

Body Parameters

content  string  

Contenu du commentaire. validation.max.

Supprime un commentaire appartenant au citoyen authentifié.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/public/perspiciatis/events/1/comments/507" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/perspiciatis/events/1/comments/507"
);

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

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

Request      

DELETE api/public/{companyUuid}/events/{slug}/comments/{comment}

URL Parameters

companyUuid  string  

slug  integer  

The slug of the event.

comment  string  

The comment.

Public Form

Endpoints publics pour la récupération des formulaires (app mobile citoyenne).

List active forms for a company identified by its UUID.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/companies/550e8400-e29b-41d4-a716-446655440000/forms" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/public/companies/550e8400-e29b-41d4-a716-446655440000/forms"
);

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: 1000
x-ratelimit-remaining: 976
vary: Origin
 

{
    "message": "No query results for model [App\\Models\\Company].",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "line": 391,
    "trace": [
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
            "line": 367,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Exceptions/Handler.php",
            "line": 56,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 143,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/app/Http/Middleware/SentryContext.php",
            "line": 36,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\SentryContext",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 126,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 92,
            "function": "handleRequest",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
            "line": 54,
            "function": "handleRequestUsingNamedLimiter",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 797,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 776,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 740,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 729,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 190,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():187}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php",
            "line": 45,
            "function": "{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():139}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestIpMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php",
            "line": 31,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Sentry\\Laravel\\Http\\SetRequestMiddleware",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/fruitcake/laravel-cors/src/HandleCors.php",
            "line": 52,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Fruitcake\\Cors\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():155}:156}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 165,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 134,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 176,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "{closure:Illuminate\\Container\\BoundMethod::call():35}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 661,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 183,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Command/Command.php",
            "line": 326,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 152,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 1098,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 324,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/symfony/console/Application.php",
            "line": 175,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 155,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients/client0/web2/web/crm/releases/200/artisan",
            "line": 35,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/public/companies/{uuid}/forms

URL Parameters

uuid  string  

The UUID of the company.

Roles & Permissions

Chaque mairie possède ses propres rôles : elle les crée, les renomme, en distribue les permissions et les supprime. Réservé à roles.manage.

Les rôles de la mairie, avec leurs permissions et le nombre d'utilisateurs qui les portent.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/484321471538972925/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/484321471538972925/roles"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/roles

URL Parameters

company  string  

Le socle plateforme dont la mairie a reçu une copie à sa création.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/7070/roles/defaults" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/7070/roles/defaults"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/roles/defaults

URL Parameters

company  string  

Le catalogue des permissions distribuables, groupé par domaine et traduit.

requires authentication

grantable dit, pour chaque permission, si l'appelant a le droit de la distribuer : l'écran peut ainsi griser ce qu'il ne détient pas lui-même, plutôt que de laisser l'utilisateur buter sur un 403.

requires porte les prérequis, transitivité comprise : « Modifier un signalement » déclare « Consulter les signalements ». Le front les coche à l'écran, le serveur les ajoute de toute façon à l'écriture — les deux ne peuvent plus diverger, et une nouvelle dépendance ne demande pas de redéploiement.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/52228846073/permissions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/52228846073/permissions"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/permissions

URL Parameters

company  string  

Bascule des permissions sur plusieurs rôles d'un coup.

requires authentication

Body: { "roles": { "1": { "posts.delete": false }, "3": { "comments.create": true } } }

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/076867/roles/permissions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"roles\": [
        [
            false
        ]
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/076867/roles/permissions"
);

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

let body = {
    "roles": [
        [
            false
        ]
    ]
};

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

Request      

PUT api/{company}/roles/permissions

URL Parameters

company  string  

Body Parameters

roles  boolean[][]  

Crée un rôle propre à la mairie.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/455253/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"label\": \"Chef de service voirie\",
    \"description\": \"pxxokwkywlhgkeqqisdmxgnlvuaobfaazklvrscrynxdyauzcfvuzqazcaydelmkfssfjewvhvnihuybpyidqnkhxemclakjxgynihohavglavnfysmczxjvqvnvya\",
    \"permissions\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/455253/roles"
);

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

let body = {
    "label": "Chef de service voirie",
    "description": "pxxokwkywlhgkeqqisdmxgnlvuaobfaazklvrscrynxdyauzcfvuzqazcaydelmkfssfjewvhvnihuybpyidqnkhxemclakjxgynihohavglavnfysmczxjvqvnvya",
    "permissions": [
        "architecto"
    ]
};

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

Request      

POST api/{company}/roles

URL Parameters

company  string  

Body Parameters

label  string  

Nom du rôle tel que la mairie veut le voir. validation.max.

description  string optional  

validation.max.

permissions  string[] optional  

Renomme un rôle et/ou remplace ses permissions.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/568215203/roles/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"label\": \"gctwbv\",
    \"description\": \"sgxliugfmr\",
    \"permissions\": [
        \"et\"
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/568215203/roles/1"
);

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

let body = {
    "label": "gctwbv",
    "description": "sgxliugfmr",
    "permissions": [
        "et"
    ]
};

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

Request      

PUT api/{company}/roles/{role_id}

URL Parameters

company  string  

role_id  integer  

The ID of the role.

Body Parameters

label  string  

validation.max.

description  string optional  

validation.max.

permissions  string[] optional  

Supprime un rôle.

requires authentication

reassign_to bascule ses porteurs vers un autre rôle de la mairie. Sans lui, ils se retrouvent sans rôle : ils se connectent toujours mais toute route métier leur répond 403 jusqu'à réattribution.

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/1492/roles/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/1492/roles/1"
);

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

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

Request      

DELETE api/{company}/roles/{role_id}

URL Parameters

company  string  

role_id  integer  

The ID of the role.

Duplique un rôle existant sous un nouveau nom, permissions comprises.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/5256430869/roles/1/duplicate" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"label\": \"wnuaukghmpnniflepmzglvzvvyuowhnpkxujxjuktlbnkvoiblynddamgsxuhfzsbaxeurlphgpujpvgiaiitpkazehqctlzxvdkbjiddgzdhodlyzwevrhdbwfdmkncjmnjrmlmrwisgnkfaodirhlbmrp\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/5256430869/roles/1/duplicate"
);

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

let body = {
    "label": "wnuaukghmpnniflepmzglvzvvyuowhnpkxujxjuktlbnkvoiblynddamgsxuhfzsbaxeurlphgpujpvgiaiitpkazehqctlzxvdkbjiddgzdhodlyzwevrhdbwfdmkncjmnjrmlmrwisgnkfaodirhlbmrp"
};

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

Request      

POST api/{company}/roles/{role_id}/duplicate

URL Parameters

company  string  

role_id  integer  

The ID of the role.

Body Parameters

label  string  

validation.max.

Bascule des permissions sur un rôle, sans toucher aux autres.

requires authentication

Body: { "permissions": { "posts.delete": false, "posts.export": true } }

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/1935242750/roles/1/permissions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"permissions\": [
        false
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/1935242750/roles/1/permissions"
);

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

let body = {
    "permissions": [
        false
    ]
};

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

Request      

PUT api/{company}/roles/{role_id}/permissions

URL Parameters

company  string  

role_id  integer  

The ID of the role.

Body Parameters

permissions  boolean[]  

Statistics

Statistiques de performance et de volumétrie des signalements.

Public statistics

Statistiques publiques agrégées (sans authentification).

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/public/statistics" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date_from\": \"2026-09-01T16:23:10\",
    \"date_to\": \"2026-09-01T16:23:10\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/public/statistics"
);

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

let body = {
    "date_from": "2026-09-01T16:23:10",
    "date_to": "2026-09-01T16:23:10"
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 958
vary: Origin
 

{
    "error": "UNAUTHORIZED",
    "message": "You can not access this ressource"
}
 

Request      

GET api/public/statistics

Body Parameters

date_from  string optional  

validation.date.

date_to  string optional  

validation.date.

form_id  string optional  

GET api/{company}/stats/performance

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/473188050698/stats/performance" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date_from\": \"2026-09-01T16:23:10\",
    \"date_to\": \"2026-09-01T16:23:10\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/473188050698/stats/performance"
);

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

let body = {
    "date_from": "2026-09-01T16:23:10",
    "date_to": "2026-09-01T16:23:10"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).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/{company}/stats/performance

URL Parameters

company  string  

Body Parameters

date_from  string optional  

validation.date.

date_to  string optional  

validation.date.

GET api/{company}/stats/volumetry

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/6296402931225859/stats/volumetry" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date_from\": \"2026-09-01T16:23:10\",
    \"date_to\": \"2026-09-01T16:23:10\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/6296402931225859/stats/volumetry"
);

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

let body = {
    "date_from": "2026-09-01T16:23:10",
    "date_to": "2026-09-01T16:23:10"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).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/{company}/stats/volumetry

URL Parameters

company  string  

Body Parameters

date_from  string optional  

validation.date.

date_to  string optional  

validation.date.

Statistics dashboard

List available metrics

requires authentication

Retourne le catalogue des métriques disponibles avec leurs labels localisés.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/8486959046932/statistics/catalog" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/8486959046932/statistics/catalog"
);

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

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

Example response (200):


{
    "metrics": [
        {
            "id": "total_posts",
            "label": "Total signalements",
            "description": "Nombre total de signalements reçus sur la période.",
            "type": "count",
            "unit": "none",
            "display": "number"
        }
    ]
}
 

Request      

GET api/{company}/statistics/catalog

URL Parameters

company  string  

Compute metrics

requires authentication

Calcule les métriques demandées par leurs IDs (séparés par virgule). Les IDs inconnus sont ignorés silencieusement.

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/715013394775015/statistics/metrics?ids=total_posts%2Cavg_resolution_time&from=2024-01-01&to=2024-12-31" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": \"deserunt\",
    \"from\": \"2026-09-01T16:23:09\",
    \"to\": \"2068-12-13\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/715013394775015/statistics/metrics"
);

const params = {
    "ids": "total_posts,avg_resolution_time",
    "from": "2024-01-01",
    "to": "2024-12-31",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "ids": "deserunt",
    "from": "2026-09-01T16:23:09",
    "to": "2068-12-13"
};

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

Example response (200):


{
    "metrics": {
        "total_posts": 142,
        "avg_resolution_time": 3.5
    }
}
 

Example response (422, Trop de métriques):


{
    "message": "Cannot request more than 15 metrics at once."
}
 

Request      

GET api/{company}/statistics/metrics

URL Parameters

company  string  

Query Parameters

ids  string  

IDs des métriques séparés par virgule (max 15).

from  string optional  

Date de début de période (format Y-m-d).

to  string optional  

Date de fin de période (format Y-m-d).

Body Parameters

ids  string  

from  string optional  

validation.date.

to  string optional  

validation.date validation.after_or_equal.

Get dashboard metrics

requires authentication

Calcule les métriques configurées pour le tableau de bord de la company (ou les métriques par défaut si aucune config sauvegardée).

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/102677/statistics/dashboard?from=2024-01-01&to=2024-12-31" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"from\": \"2026-09-01T16:23:09\",
    \"to\": \"2085-12-24\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/102677/statistics/dashboard"
);

const params = {
    "from": "2024-01-01",
    "to": "2024-12-31",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

let body = {
    "from": "2026-09-01T16:23:09",
    "to": "2085-12-24"
};

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

Example response (200):


{
    "ids": [
        "total_posts",
        "avg_resolution_time",
        "open_posts"
    ],
    "metrics": {
        "total_posts": 142,
        "avg_resolution_time": 3.5,
        "open_posts": 28
    }
}
 

Request      

GET api/{company}/statistics/dashboard

URL Parameters

company  string  

Query Parameters

from  string optional  

Date de début de période (format Y-m-d).

to  string optional  

Date de fin de période (format Y-m-d).

Body Parameters

from  string optional  

validation.date.

to  string optional  

validation.date validation.after_or_equal.

Get dashboard config

requires authentication

Retourne la sélection de métriques sauvegardée pour le tableau de bord (ou les valeurs par défaut).

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/3647348408575/statistics/dashboard/config" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/3647348408575/statistics/dashboard/config"
);

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

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

Example response (200):


{
    "ids": [
        "total_posts",
        "avg_resolution_time"
    ],
    "is_default": false
}
 

Request      

GET api/{company}/statistics/dashboard/config

URL Parameters

company  string  

Update dashboard config

requires authentication

Sauvegarde la sélection de métriques du tableau de bord. Chaque ID doit exister dans le catalogue — les IDs inconnus sont rejetés.

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/1982/statistics/dashboard/config" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": [
        \"total_posts\",
        \"open_posts\"
    ]
}"
const url = new URL(
    "https://api.dev.bouge.io/api/1982/statistics/dashboard/config"
);

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

let body = {
    "ids": [
        "total_posts",
        "open_posts"
    ]
};

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

Example response (200):


{
    "ids": [
        "total_posts",
        "open_posts"
    ]
}
 

Example response (422, ID inconnu):


{
    "message": "The selected ids.0 is invalid.",
    "errors": {
        "ids.0": [
            "The selected ids.0 is invalid."
        ]
    }
}
 

Request      

PUT api/{company}/statistics/dashboard/config

URL Parameters

company  string  

Body Parameters

ids  string[]  

Liste des IDs de métriques à afficher.

System

Endpoints système (health check, état des services).

GET api/health

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/health" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/health"
);

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: 1000
x-ratelimit-remaining: 978
vary: Origin
 

{
    "status": "ok",
    "timestamp": "2026-09-01T16:23:08+00:00",
    "services": {
        "database": "ok",
        "redis": "ok"
    }
}
 

Request      

GET api/health

Users

search users from given name or email

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/55096655/citizen/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 17
}"
const url = new URL(
    "https://api.dev.bouge.io/api/55096655/citizen/1"
);

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

let body = {
    "id": 17
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).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/{company}/citizen/{id}

URL Parameters

company  string  

id  integer  

The ID of the citizen.

Body Parameters

id  integer optional  

Liste les citoyens connus de la commune, avec leur rôle local.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/8419540877897/citizens?search=dupont&role=technical_agent" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/8419540877897/citizens"
);

const params = {
    "search": "dupont",
    "role": "technical_agent",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/citizens

URL Parameters

company  string  

Query Parameters

search  string optional  

Filtre sur le nom, l'email ou le téléphone.

role  string optional  

Filtre sur le rôle (citizen, technical_agent, neighborhood_committee).

Crée un compte citoyen déjà nommé dans la commune.

requires authentication

Réservé aux rôles métier (technical_agent, neighborhood_committee) : un simple citoyen s'inscrit lui-même depuis l'application.

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/171430313923/citizens" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Marc Bernard\",
    \"email\": \"marc.bernard@maville.fr\",
    \"phone\": \"+33612345678\",
    \"password\": \"secret\",
    \"locale\": \"en\",
    \"role\": \"technical_agent\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/171430313923/citizens"
);

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

let body = {
    "name": "Marc Bernard",
    "email": "marc.bernard@maville.fr",
    "phone": "+33612345678",
    "password": "secret",
    "locale": "en",
    "role": "technical_agent"
};

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

Request      

POST api/{company}/citizens

URL Parameters

company  string  

Body Parameters

name  string  

Nom complet. validation.min validation.max.

email  string optional  

Email, unique sur toute la plateforme.validation.required_without validation.email validation.max.

phone  string optional  

Téléphone, unique sur toute la plateforme.validation.required_without validation.max.

password  string  

Mot de passe initial. Nécessite password_confirmation.

locale  string optional  

Must be one of fr or en.

role  string  

Rôle dans la commune : technical_agent ou neighborhood_committee. citizen est refusé — un simple citoyen s'inscrit depuis l'application. Must be one of technical_agent or neighborhood_committee.

Nomme un citoyen dans la commune (agent technique, comité de quartier, ou retour au simple citoyen).

requires authentication

Le rôle vaut pour cette commune seulement : le compte citoyen est une identité globale, il reste simple citoyen partout ailleurs.

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/3892937165/citizens/12/role" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"role\": \"technical_agent\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/3892937165/citizens/12/role"
);

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

let body = {
    "role": "technical_agent"
};

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

Request      

PUT api/{company}/citizens/{citizenAccount}/role

URL Parameters

company  string  

citizenAccount  integer  

L'identifiant du compte citoyen.

Body Parameters

role  string  

Rôle du citoyen dans cette commune : citizen (défaut), technical_agent (agent technique communal) ou neighborhood_committee (comité de quartier). Must be one of citizen, technical_agent, or neighborhood_committee.

search users from given name or email

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/17059160404/users/find" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/17059160404/users/find"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/users/find

URL Parameters

company  string  

Display a user profile with stats and history

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/078676543/users/1/profile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/078676543/users/1/profile"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/users/{user}/profile

URL Parameters

company  string  

user  integer  

The user.

search users from given name or email

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/149144/users/1/locale" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"locale\": \"en\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/149144/users/1/locale"
);

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

let body = {
    "locale": "en"
};

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

Request      

POST api/{company}/users/{user}/locale

URL Parameters

company  string  

user  integer  

The user.

Body Parameters

locale  string  

Must be one of fr or en.

search users from given name or email

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/99428211/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/99428211/users"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/users

URL Parameters

company  string  

Create a new User on backoffice

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/650637377/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Marie Dupont\",
    \"email\": \"marie.dupont@maville.fr\",
    \"locale\": \"fr\",
    \"job_title\": \"Responsable voirie\",
    \"password\": \"secret\",
    \"role_id\": 12,
    \"role\": \"agent\",
    \"phone\": \"mbypoaxvetmn\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/650637377/users"
);

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

let body = {
    "name": "Marie Dupont",
    "email": "marie.dupont@maville.fr",
    "locale": "fr",
    "job_title": "Responsable voirie",
    "password": "secret",
    "role_id": 12,
    "role": "agent",
    "phone": "mbypoaxvetmn"
};

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

Request      

POST api/{company}/users

URL Parameters

company  string  

Body Parameters

name  string  

Nom complet de l'utilisateur. validation.min.

email  string  

Adresse email (unique dans la plateforme). validation.email.

locale  string  

Langue de l'interface (fr, en…). Must be one of fr or en.

job_title  string  

Intitulé du poste.

password  string  

Mot de passe initial.

role_id  integer optional  

Identifiant du rôle, tel que renvoyé par GET /{company}/roles.validation.required_without.

role  string optional  

Nom du rôle, dans la mairie appelante. Déprécié : préférer role_id.validation.required_without.

phone  string optional  

validation.max.

Display a specific user

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/63520376/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/63520376/users/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/users/{id}

URL Parameters

company  string  

id  integer  

The ID of the user.

Update a User based on its ID

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/81795795202195/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Marie Dupont\",
    \"email\": \"marie.dupont@maville.fr\",
    \"locale\": \"fr\",
    \"job_title\": \"Responsable voirie\",
    \"role_id\": 12,
    \"role\": \"agent\",
    \"phone\": \"nijtalqoxdqacxce\",
    \"password\": \"nouveau_secret\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/81795795202195/users/1"
);

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

let body = {
    "name": "Marie Dupont",
    "email": "marie.dupont@maville.fr",
    "locale": "fr",
    "job_title": "Responsable voirie",
    "role_id": 12,
    "role": "agent",
    "phone": "nijtalqoxdqacxce",
    "password": "nouveau_secret"
};

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

Request      

PUT api/{company}/users/{id}

PATCH api/{company}/users/{id}

URL Parameters

company  string  

id  integer  

The ID of the user.

Body Parameters

name  string  

Nom complet de l'utilisateur. validation.min.

email  string  

Adresse email. validation.email.

locale  string  

Langue de l'interface (fr, en…). Must be one of fr or en.

job_title  string  

Intitulé du poste.

role_id  integer optional  

Identifiant du rôle, tel que renvoyé par GET /{company}/roles.

role  string optional  

Nom du rôle, dans la mairie appelante. Déprécié : préférer role_id.

phone  string optional  

validation.max.

password  string optional  

Nouveau mot de passe (optionnel). Nécessite password_confirmation. Ignoré si vide.

Delete an user based on its ID

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/3768424257842/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/3768424257842/users/1"
);

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

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

Request      

DELETE api/{company}/users/{id}

URL Parameters

company  string  

id  integer  

The ID of the user.

Webhooks

Configuration des webhooks sortants par company.

search users from given name or email

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/5719883577/webhooks" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/5719883577/webhooks"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/webhooks

URL Parameters

company  string  

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.dev.bouge.io/api/62303033937674247/webhooks" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1.614,
    \"name\": \"Notification Slack nouveaux signalements\",
    \"url\": \"https:\\/\\/hooks.slack.com\\/services\\/xxx\\/yyy\\/zzz\",
    \"signature_secret\": \"my_super_secret_key\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/62303033937674247/webhooks"
);

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

let body = {
    "id": 1.614,
    "name": "Notification Slack nouveaux signalements",
    "url": "https:\/\/hooks.slack.com\/services\/xxx\/yyy\/zzz",
    "signature_secret": "my_super_secret_key"
};

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

Request      

POST api/{company}/webhooks

URL Parameters

company  string  

Body Parameters

id  number optional  

name  string  

Nom descriptif du webhook. validation.max.

url  string  

URL de destination (HTTPS recommandé). Must be a valid URL.

signature_secret  string  

Secret partagé pour vérifier la signature HMAC des payloads. validation.max.

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.dev.bouge.io/api/0915503/webhooks/201230446550442" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/0915503/webhooks/201230446550442"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "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/{company}/webhooks/{id}

URL Parameters

company  string  

id  integer  

The ID of the webhook.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.dev.bouge.io/api/9697825/webhooks/486333" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 45817137.68758897,
    \"name\": \"Notification Slack nouveaux signalements\",
    \"url\": \"https:\\/\\/hooks.slack.com\\/services\\/xxx\\/yyy\\/zzz\",
    \"signature_secret\": \"my_super_secret_key\"
}"
const url = new URL(
    "https://api.dev.bouge.io/api/9697825/webhooks/486333"
);

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

let body = {
    "id": 45817137.68758897,
    "name": "Notification Slack nouveaux signalements",
    "url": "https:\/\/hooks.slack.com\/services\/xxx\/yyy\/zzz",
    "signature_secret": "my_super_secret_key"
};

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

Request      

PUT api/{company}/webhooks/{id}

PATCH api/{company}/webhooks/{id}

URL Parameters

company  string  

id  integer  

The ID of the webhook.

Body Parameters

id  number optional  

name  string  

Nom descriptif du webhook. validation.max.

url  string  

URL de destination (HTTPS recommandé). Must be a valid URL.

signature_secret  string  

Secret partagé pour vérifier la signature HMAC des payloads. validation.max.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.dev.bouge.io/api/38527201740/webhooks/818289802613955131" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.dev.bouge.io/api/38527201740/webhooks/818289802613955131"
);

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

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

Request      

DELETE api/{company}/webhooks/{id}

URL Parameters

company  string  

id  integer  

The ID of the webhook.