Introduction
Authentification
Tous les endpoints (sauf /ping) requièrent une clé API personnelle, disponible dans votre espace utilisateur → Mon compte.
La clé peut être transmise via l'en-tête Authorization: Bearer {VOTRE_CLE_API} ou X-API-Key: {VOTRE_CLE_API}.
Limites de débit (Rate limiting)
| Formule | Requêtes / minute |
|---|---|
| Free | 60 |
| Pro | 600 |
| Business | 6000 |
Les en-têtes X-RateLimit-Limit et X-RateLimit-Remaining indiquent votre consommation. Au-delà, l'API renvoie 429.
Codes de réponse
| Code | Signification |
|---|---|
| 200/201 | Succès / Création |
| 204 | Suppression réussie |
| 401 | Non authentifié |
| 402 | Limite du plan atteinte |
| 403 | Module indisponible sur votre plan |
| 404 | Introuvable |
| 429 | Trop de requêtes |
Exemple rapide
curl -H "Authorization: Bearer {VOTRE_CLE_API}" https://fassiki.com/api/v1/user
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {VOTRE_CLE_API}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Récupérez votre clé API dans votre espace utilisateur → Mon compte. Vous pouvez l'envoyer via l'en-tête Authorization: Bearer <clé> ou X-API-Key: <clé>.
Analytics
Lister les sites analytics
requires authentication
Renvoie tous les sites web analytics de l'utilisateur authentifié, avec le nombre de visiteurs.
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/analytics/websites" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/analytics/websites"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Liste):
{
"data": [
{
"id": 1,
"name": "Mon site",
"host": "example.com",
"tracking_type": "normal",
"visitors_count": 0,
"is_enabled": true
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
data
object[]
Liste des sites.
Créer un site analytics
requires authentication
Crée un nouveau site web à tracker. Une pixel_key est générée automatiquement
pour intégrer le script de tracking. Le plan doit avoir le module Analytics activé
et ne pas avoir atteint sa limite de sites.
Example request:
curl --request POST \
"https://fassiki.com/api/v1/analytics/websites" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Mon blog\",
\"host\": \"example.com\",
\"tracking_type\": \"normal\"
}"
const url = new URL(
"https://fassiki.com/api/v1/analytics/websites"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Mon blog",
"host": "example.com",
"tracking_type": "normal"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Site créé):
{
"id": 2,
"name": "Mon blog",
"host": "example.com",
"pixel_key": "aB3x...",
"tracking_type": "normal",
"is_enabled": true
}
Example response (402, Limite atteinte):
{
"message": "Limite de sites atteinte pour votre plan (1)."
}
Example response (403, Module désactivé):
{
"message": "Votre plan ne permet pas d'accéder à cette ressource."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Afficher un site analytics
requires authentication
Renvoie les détails d'un site analytics spécifique appartenant à l'utilisateur.
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/analytics/websites/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/analytics/websites/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Site trouvé):
{
"id": 1,
"name": "Mon site",
"host": "example.com",
"tracking_type": "normal"
}
Example response (404, Introuvable):
{
"message": "Ressource introuvable."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Mettre à jour un site analytics
requires authentication
Met à jour les champs fournis d'un site analytics.
Example request:
curl --request PUT \
"https://fassiki.com/api/v1/analytics/websites/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Nouveau nom\",
\"host\": \"newdomain.com\",
\"tracking_type\": \"normal\",
\"is_enabled\": false
}"
const url = new URL(
"https://fassiki.com/api/v1/analytics/websites/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Nouveau nom",
"host": "newdomain.com",
"tracking_type": "normal",
"is_enabled": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Site mis à jour):
{
"id": 1,
"name": "Nouveau nom",
"host": "newdomain.com",
"is_enabled": true
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Supprimer un site analytics
requires authentication
Supprime définitivement un site analytics et toutes ses données associées.
Example request:
curl --request DELETE \
"https://fassiki.com/api/v1/analytics/websites/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/analytics/websites/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Site supprimé):
Empty response
Example response (404, Introuvable):
{
"message": "Ressource introuvable."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Audit
Lister les audits
requires authentication
Renvoie tous les audits de sites web de l'utilisateur, triés par date.
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/audits" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/audits"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Liste):
{
"data": [
{
"id": 1,
"url": "https://example.com",
"host": "example.com",
"score": 78,
"total_tests": 22,
"passed_tests": 17
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Créer et lancer un audit
requires authentication
Crée un audit pour l'URL fournie et le lance immédiatement en arrière-plan
(tests SEO, performance, sécurité, accessibilité). Si l'IA est activée, un résumé
IA est également demandé. Le score et les détails sont remplis après exécution
(récupérables via GET /audits/{id}). Le plan doit avoir le module Audit activé.
Example request:
curl --request POST \
"https://fassiki.com/api/v1/audits" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/example.com\",
\"type\": \"single\"
}"
const url = new URL(
"https://fassiki.com/api/v1/audits"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/example.com",
"type": "single"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Audit lancé):
{
"audit": {
"id": 1,
"url": "https://example.com",
"host": "example.com",
"type": "single",
"is_queued": true
},
"message": "Audit lancé en arrière-plan. Le score sera disponible sous peu."
}
Example response (402, Limite atteinte):
{
"message": "Limite d'audits mensuels atteinte (100)."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Relancer un audit (refresh)
requires authentication
Relance un audit existant : l'ancien résultat est archivé, un nouveau score est calculé, et un résumé IA est régénéré si l'IA est activée.
Example request:
curl --request POST \
"https://fassiki.com/api/v1/audits/1/run" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/audits/1/run"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Audit relancé):
{
"message": "Audit relancé.",
"audit_id": 1
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Compte
Profil & formule
requires authentication
Renvoie le profil de l'utilisateur authentifié ainsi que sa formule (plan) et les modules auxquels il a accès. Idéal pour vérifier qu'une clé API est valide.
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/user" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/user"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Profil récupéré):
{
"id": 1,
"name": "Administrateur",
"email": "admin@fassiki.com",
"locale": "fr",
"plan": {
"name": "Business",
"slug": "business",
"modules": {
"analytics": true,
"pusher": true,
"uptime": true,
"audit": true
}
},
"plan_expiration_date": null,
"has_active_subscription": false
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
id
integer
Identifiant de l'utilisateur.
name
string
Nom complet.
email
string
Adresse email.
plan
object
Formule souscrite (name, slug, modules activés).
has_active_subscription
boolean
Présence d'un abonnement payant actif.
Endpoints
GET api/v1/ping
requires authentication
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/ping" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/ping"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"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
access-control-allow-origin: *
{
"name": "Fassiki SaaS",
"version": "v1",
"time": "2026-07-30T10:33:09+00:00"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /api/v1/pusher/campaigns/{campaign}
requires authentication
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/pusher/campaigns/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/pusher/campaigns/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"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
x-ratelimit-limit: 6000
x-ratelimit-remaining: 5999
access-control-allow-origin: *
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT /api/v1/pusher/campaigns/{campaign}
requires authentication
Example request:
curl --request PUT \
"https://fassiki.com/api/v1/pusher/campaigns/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"title\": \"n\",
\"description\": \"Eius et animi quos velit et.\",
\"url\": \"http:\\/\\/www.ernser.org\\/harum-mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html\",
\"image\": \"http:\\/\\/swift.com\\/quidem-nostrum-qui-commodi-incidunt-iure-odit.html\",
\"status\": \"sending\"
}"
const url = new URL(
"https://fassiki.com/api/v1/pusher/campaigns/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"title": "n",
"description": "Eius et animi quos velit et.",
"url": "http:\/\/www.ernser.org\/harum-mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html",
"image": "http:\/\/swift.com\/quidem-nostrum-qui-commodi-incidunt-iure-odit.html",
"status": "sending"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE /api/v1/pusher/campaigns/{campaign}
requires authentication
Example request:
curl --request DELETE \
"https://fassiki.com/api/v1/pusher/campaigns/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/pusher/campaigns/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /api/v1/uptime/monitors/{monitor}
requires authentication
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/uptime/monitors/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/uptime/monitors/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"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
x-ratelimit-limit: 6000
x-ratelimit-remaining: 5999
access-control-allow-origin: *
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT /api/v1/uptime/monitors/{monitor}
requires authentication
Example request:
curl --request PUT \
"https://fassiki.com/api/v1/uptime/monitors/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"type\": \"port\",
\"target\": \"n\",
\"port\": 16,
\"is_enabled\": true
}"
const url = new URL(
"https://fassiki.com/api/v1/uptime/monitors/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"type": "port",
"target": "n",
"port": 16,
"is_enabled": true
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE /api/v1/uptime/monitors/{monitor}
requires authentication
Example request:
curl --request DELETE \
"https://fassiki.com/api/v1/uptime/monitors/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/uptime/monitors/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /api/v1/audits/{audit}
requires authentication
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/audits/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/audits/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"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
x-ratelimit-limit: 6000
x-ratelimit-remaining: 5999
access-control-allow-origin: *
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT /api/v1/audits/{audit}
requires authentication
Example request:
curl --request PUT \
"https://fassiki.com/api/v1/audits/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"is_public\": false,
\"password\": \"|]|{+-\",
\"is_archived\": false
}"
const url = new URL(
"https://fassiki.com/api/v1/audits/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"is_public": false,
"password": "|]|{+-",
"is_archived": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE /api/v1/audits/{audit}
requires authentication
Example request:
curl --request DELETE \
"https://fassiki.com/api/v1/audits/architecto" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/audits/architecto"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Pusher
Lister les campagnes push
requires authentication
Renvoie toutes les campagnes de notifications push de l'utilisateur, triées par date.
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/pusher/campaigns" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/pusher/campaigns"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Liste):
{
"data": [
{
"id": 1,
"name": "Promo été",
"title": "-20% aujourd'hui",
"status": "draft",
"website": {
"name": "Mon site",
"host": "example.com"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Créer une campagne push
requires authentication
Crée une nouvelle campagne de notifications push (au statut draft). Elle pourra
ensuite être planifiée/envoyée depuis l'interface ou via le cron pusher:process-scheduled.
Example request:
curl --request POST \
"https://fassiki.com/api/v1/pusher/campaigns" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"website_id\": 1,
\"name\": \"Promo été\",
\"title\": \"-20% aujourd\'hui\",
\"description\": \"Eius et animi quos velit et.\",
\"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\",
\"image\": \"http:\\/\\/swift.com\\/quidem-nostrum-qui-commodi-incidunt-iure-odit.html\"
}"
const url = new URL(
"https://fassiki.com/api/v1/pusher/campaigns"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"website_id": 1,
"name": "Promo été",
"title": "-20% aujourd'hui",
"description": "Eius et animi quos velit et.",
"url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html",
"image": "http:\/\/swift.com\/quidem-nostrum-qui-commodi-incidunt-iure-odit.html"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Campagne créée):
{
"id": 1,
"name": "Promo été",
"title": "-20% aujourd'hui",
"status": "draft"
}
Example response (403, Module désactivé):
{
"message": "Votre plan ne permet pas d'accéder à cette ressource."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Uptime
Lister les moniteurs
requires authentication
Renvoie tous les moniteurs (HTTP/HTTPS, port, ping) de l'utilisateur avec leurs statistiques d'uptime et de latence.
Example request:
curl --request GET \
--get "https://fassiki.com/api/v1/uptime/monitors" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/uptime/monitors"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Liste):
{
"data": [
{
"id": 1,
"name": "Mon site",
"type": "website",
"target": "https://example.com",
"is_ok": true,
"uptime": 100,
"average_response_time": 0.419999999999999984456877655247808434069156646728515625
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Créer un moniteur
requires authentication
Crée un nouveau moniteur. Le prochain check est planifié automatiquement selon
l'intervalle configuré (settings.interval, défaut 5 minutes). Le plan doit avoir
le module Uptime activé et ne pas avoir atteint sa limite de moniteurs.
Example request:
curl --request POST \
"https://fassiki.com/api/v1/uptime/monitors" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Mon site\",
\"type\": \"website\",
\"target\": \"https:\\/\\/example.com\",
\"port\": 16,
\"is_enabled\": false,
\"settings\": []
}"
const url = new URL(
"https://fassiki.com/api/v1/uptime/monitors"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Mon site",
"type": "website",
"target": "https:\/\/example.com",
"port": 16,
"is_enabled": false,
"settings": []
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Moniteur créé):
{
"id": 1,
"name": "Mon site",
"type": "website",
"target": "https://example.com",
"is_ok": true,
"next_check_datetime": "2026-07-30T10:26:14.000000Z"
}
Example response (402, Limite atteinte):
{
"message": "Limite de moniteurs atteinte pour votre plan (50)."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Lancer une vérification immédiate
requires authentication
Déclenche un check manuel du moniteur (mis en file d'attente). Le résultat (uptime, latence, incident éventuel) sera mis à jour après exécution.
Example request:
curl --request POST \
"https://fassiki.com/api/v1/uptime/monitors/1/check" \
--header "Authorization: Bearer {VOTRE_CLE_API}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://fassiki.com/api/v1/uptime/monitors/1/check"
);
const headers = {
"Authorization": "Bearer {VOTRE_CLE_API}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Check lancé):
{
"message": "Vérification lancée.",
"monitor_id": 1
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.