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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
]
}
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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.
GET api/banoc/geocode/search
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"
]
}
}
Received response:
Request failed with error:
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"
]
}
}
Received response:
Request failed with error:
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"
]
}
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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
}
Received response:
Request failed with error:
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
}
Received response:
Request failed with error:
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
}
Received response:
Request failed with error:
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
}
Received response:
Request failed with error:
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
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
« 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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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."
]
}
}
Received response:
Request failed with error:
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]"
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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 :
- citoyen connecté (Sanctum) : il doit être l'auteur du post ;
- citoyen anonyme : identifié par device_uuid, sur un post encore anonyme (author_id nul) rattaché à ce même device_uuid (même modèle de confiance que le claim). Les messages ainsi créés (author_id nul) seront rapatriés vers le compte s'il s'approprie le signalement plus tard.
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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": "->"
}
]
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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"
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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"
}
]
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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
}
}
Received response:
Request failed with error:
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
}
Received response:
Request failed with error:
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."
]
}
}
Received response:
Request failed with error:
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"
}
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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."
}
Received response:
Request failed with error:
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());Received response:
Request failed with error:
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());Received response:
Request failed with error: