API REST d'automatisation

Automatisez OrbitPage sans partager une session de tableau de bord.

Créez des jetons étendus et gérez le tableau de bord OrbitPage de bout en bout à partir de scripts, n8n, backends ou CI.

Dernière révision : 4 août 2026

Gérez OrbitPage avec des jetons personnels : modifiez et publiez des pages, puis utilisez médias, domaines, analyse, IA, Shop, newsletters et facturation.

API v1https://orbitpage.com/api/v1HTTPS · JSON · UTF-8
  1. 01Jeton personnel
  2. 02Contrôle de révision
  3. 03Valider et publier
Limites de l'API

Trois limites de titres de compétences couvrent trois emplois différents.

Cette page documente la limite REST versionnée. Un jeton OrbitPage n'est pas une clé de fournisseur OpenAI et n'authentifie jamais les points de terminaison du tableau de bord privé.

SurfaceIdentifiantObjectif et prise en charge
API REST d'automatisationop_pat_...API externe prise en charge pour les scripts, n8n, les backends de serveur et CI. Il gère l'espace de travail lié aux jetons via /api/v1.
OrbitPage AIop_pat_... + ai:read/ai:writeLe flux de plan/engagement public prépare et applique des propositions d'IA validées. Tout identifiant de fournisseur OpenAI reste une préoccupation distincte côté serveur et n'est jamais un jeton de porteur OrbitPage.
API du tableau de bordSession Firebase sur SaaS ; session d'administration sur OSSRoutes privées du navigateur vers l'application. Ils ne constituent pas un contrat d’intégration externe stable et ne doivent pas recevoir de tokens API personnels.
Contrat

Les ressources versionnées couvrent le tableau de bord ; les points de terminaison du lien affichent la boucle de mise à jour sécurisée.

Chaque requête est liée à l'espace de travail sélectionné lors de la création du token. Un jeton ne peut pas choisir un autre locataire dans l'URL ou le corps de la demande, et les autorisations actuelles de l'espace de travail sont vérifiées à nouveau à chaque appel.

Le contrat utilise les opérations HTTPS JSON standard (GET, POST, PUT, PATCH et DELETE) et prend en charge curl, le nœud de requête HTTP de n8n et les clients OpenAPI générés.

01
GET/api/v1/links

Lire chaque bloc de page

Renvoie la collection ordonnée, l'identité de l'espace de travail et la révision actuelle.

Portée: links:read
02
PATCH/api/v1/links/{linkId}

Modifier un bloc existant

Fusionne les champs modifiables, valide la page entière et publie la nouvelle révision.

Portée: links:write
03
PUT/api/v1/links

Remplacer la collection complète

Utilisez ceci pour ajouter, supprimer ou réorganiser des blocs après avoir lu et préservé la collection actuelle.

Portée: links:write
Surface du tableau de bordChemins d'APIPortées
Espace de travail et brouillon complet/workspace · /draftworkspace:read
Profil, thème et sous-pages/profile · /theme · /pagesprofile:* · theme:* · pages:*
Paramètres généraux, de confidentialité et de menu/settings/*settings:*
Publication, versions et sauvegarde/publication · /versions · /backuppublication:* · backup:*
Médias et domaines personnalisés/media/* · /domains/*media:* · domains:*
Analyses et révision des modifications apportées à l'IA/analytics · /ai/*analytics:read · ai:*
Boutique et newsletter/shop/* · /newsletter/*shop:* · newsletter:*
Équipe et facturation/team/* · /billing/*team:* · billing:*
Ouvrir la spécification OpenAPI 3.1
API v1 · 65 opérations

Chaque opération de tableau de bord prise en charge, regroupée en fonction de la surface qu'elle contrôle.

Les chemins ci-dessous sont relatifs à https://orbitpage.com/api/v1. La méthode, le chemin et la portée constituent le contrat d'intégration stable ; les schémas de requête, les formats, les valeurs d'énumération et les modèles de réponse se trouvent dans le document OpenAPI 3.1 lié. Les routes inconnues renvoient 404 et les méthodes non prises en charge ne sont jamais converties en silence.

01
Espace de travail, contenu et apparenceInspectez l'espace de travail lié au jeton et gérez son brouillon complet, son profil, ses blocs, son thème et ses sous-pages.
11 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/workspaceLire l'espace de travail, le plan, l'accès, l'utilisation et la révisionworkspace:read
GET/draftLire le brouillon complet de la page modifiableworkspace:read
GET/linksListe des blocs de page et la révision actuellelinks:read
PUT/linksRemplacer la collection complète de blocs ordonnéslinks:writeLinksReplaceRequest · If-Match
PATCH/links/{linkId}Mettre à jour les champs modifiables sur un bloclinks:writeLinkPatch · If-Match
GET/profileLire l'identité et les métadonnées du profilprofile:read
PATCH/profileMettre à jour les champs du profilprofile:writeJSON · If-Match · ?publish=1
GET/themeLire le brouillon de thème actiftheme:read
PUT/themeRemplacer le brouillon de thèmetheme:writeJSON · If-Match · ?publish=1
GET/pagesListe des sous-pages configuréespages:read
PUT/pagesRemplacer les sous-pages configuréespages:writearray | { pages } · If-Match · ?publish=1
02
Paramètres et publicationContrôlez les menus, la confidentialité, les fichiers publics gérés, la génération de plans de site et le cycle de vie explicite de la version préliminaire au public.
9 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/settingsLire les paramètres du menu, de la confidentialité, du fichier texte et du plan du sitesettings:read
PUT/settings/menuMettre à jour les paramètres du menusettings:writeJSON · If-Match · ?publish=1
PUT/settings/privacyMettre à jour les paramètres de consentement et de confidentialitésettings:writeJSON · If-Match · ?publish=1
POST/settings/text-filesCréer un fichier texte public gérésettings:writeTextFileCreateRequest · If-Match
PUT/settings/text-files/{key}Mettre à jour un fichier texte public gérésettings:writeTextFileUpdateRequest · If-Match
DELETE/settings/text-files/{key}Supprimer un fichier texte public gérésettings:writeIf-Match
POST/settings/sitemapRégénérer le plan du site gérésettings:writeIf-Match
GET/publicationLire le brouillon et l'état de publicationpublication:read
POST/publicationPublier le dernier brouillon validépublication:write
03
Versions, sauvegardes et supportsRestaurez le contenu révisé, exportez ou importez les données de l'espace de travail et exécutez le cycle de vie du support de réservation-téléchargement-finalisation.
9 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/versionsRépertorier les versions publiées de la page pouvant être restauréesbackup:read
POST/versions/{revision}/restoreRestaurer une version historique et la publier immédiatementbackup:writeIf-Match
GET/backupExporter une sauvegarde d'espace de travail gérébackup:read?sections=profile,links,…
POST/backup/restoreValider et restaurer une sauvegarde gérée, puis la publier immédiatementbackup:writeBackupRestoreRequest · If-Match
GET/mediaRépertorier les métadonnées et l'utilisation des médias de l'espace de travailmedia:read
POST/media/cleanupPrévisualiser ou supprimer les médias non référencésmedia:writeMediaCleanupRequest
POST/media/uploads/reserveRéserver un téléchargement multimédia directmedia:writeMediaUploadReserveRequest
POST/media/uploads/finalizeFinaliser et enregistrer un objet téléchargémedia:writeUploadTokenRequest
DELETE/media/uploadsAbandonner un téléchargement de média réservémedia:writeUploadTokenRequest
04
Domaines, analyses et IAGérez l'activation DNS, lisez les rapports de performances liés au plan et appliquez les modifications de l'IA uniquement après un aperçu validé.
8 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/domainsLire l'état du domaine et les exigences DNSdomains:read
POST/domainsConnecter un domaine personnalisédomains:writeDomainConnectRequest
POST/domains/refreshActualiser la vérification et l'activationdomains:write
DELETE/domainsDéconnecter le domaine personnalisédomains:write
GET/analyticsLire le rapport d'analyse du tableau de bordanalytics:read?days=7|30|90
GET/ai/allowanceLire l'allocation IA et l'utilisation actuelleai:read
POST/ai/planGénérer un aperçu validé des modifications de l'IAai:writeAiPlanRequest
POST/ai/commitValider un aperçu de l'IA préalablement validéai:writeAiCommitRequest
05
ShopConnectez le commerce, gérez les produits et l'apparence, téléchargez des fichiers protégés, puis publiez ou dépublierez le bloc Boutique synchronisé.
10 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/shopLire les produits, les commandes, les clients et l’état de Shop ; l’opération peut initialiser les données privées de Shop et actualiser l’état Stripeshop:read?refresh=0|1
POST/shop/connectCréer ou poursuivre l'intégration de Stripe Connectshop:write
POST/shop/productsCréer ou mettre à jour un produit Shopshop:writeShopProductRequest
DELETE/shop/products/{productId}Supprimer un produit de la boutiqueshop:write
PUT/shop/appearanceRemplacer toute l’apparence de la boutiqueshop:writeShopAppearanceRequest
POST/shop/publishPublier Shop et son bloc de page synchroniséshop:write
POST/shop/unpublishDépublier la boutiqueshop:write
POST/shop/uploads/reserveRéserver un téléchargement de fichier produitshop:writeShopFileUploadReserveRequest
POST/shop/uploads/finalizeFinaliser le téléchargement d'un fichier produitshop:writeShopUploadTokenRequest
DELETE/shop/uploadsAnnuler le téléversement réservé d’un fichier produitshop:writeShopUploadTokenRequest
06
BulletinConfigurez la livraison SMTP cryptée, gérez les abonnés autorisés et contrôlez le cycle de vie complet de la campagne.
9 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/newsletterLire les abonnés, les campagnes et l'état SMTPnewsletter:read
PUT/newsletter/settingsMettre à jour les paramètres SMTP cryptésnewsletter:writeNewsletterSmtpRequest
POST/newsletter/settings/testEnvoyer un test de configurationnewsletter:writeEmailRecipientRequest
POST/newsletter/subscribersAjouter ou mettre à jour un abonné autorisénewsletter:writeNewsletterSubscriberRequest
DELETE/newsletter/subscribers/{subscriberId}Supprimer un abonnénewsletter:write
POST/newsletter/campaignsCréer ou mettre à jour une campagnenewsletter:writeNewsletterCampaignRequest
DELETE/newsletter/campaigns/{campaignId}Supprimer une campagnenewsletter:write
POST/newsletter/campaigns/{campaignId}/sendMettre en file d'attente ou planifier une campagnenewsletter:writeNewsletterSendRequest
DELETE/newsletter/campaigns/{campaignId}/sendAnnuler une campagne en file d'attentenewsletter:write
07
Équipe et facturationGérez les collaborateurs et les invitations, inspectez les abonnements et ouvrez des sessions de paiement ou de portail Stripe authentifiées.
9 opérations
Méthode et cheminFonctionnementPortée requiseEntrée et commandes
GET/teamListe des membres et invitations en attenteteam:read
POST/team/invitationsCréer un lien d'invitation à un espace de travail sans envoyer d'e-mailteam:writeTeamInvitationRequest
PATCH/team/members/{memberUid}Mettre à jour un rôle de membreteam:writeTeamRoleRequest
DELETE/team/members/{memberUid}Supprimer un membre de l'espace de travailteam:write
DELETE/team/invitations/{invitationId}Révoquer une invitation en attenteteam:write
GET/billingLire le plan et l'état de l'abonnementbilling:read
POST/billing/checkoutCréer un paiement de plan Stripebilling:writeBillingCheckoutRequest
POST/billing/portalCréer une session de portail de facturation Stripebilling:writeBillingPortalRequest
POST/billing/promotion-codeUtiliser un code promotionnel et synchroniser les droits associés au forfaitbilling:writePromotionCodeRedeemRequest
Ouvrir le contrat OpenAPI 3.1 complet
Authentification

Créez un jeton pour une automatisation et un environnement.

Ouvrez le tableau de bord > Compte > Jetons d'API personnels. Donnez au jeton un nom qui identifie son propriétaire et son objectif, choisissez un espace de travail complet, un espace de travail en lecture seule, des liens uniquement ou des étendues de ressources individuelles, puis sélectionnez une expiration de 30, 90 ou 365 jours, ou aucune expiration lorsqu'un processus de rotation documenté existe déjà.

01

Confirmez votre identité

La création de token est une action de compte sensible et nécessite une authentification récente par Google ou par mot de passe.

02

Choisissez la plus petite portée

Les étendues de lecture et d'écriture sont distinctes pour chaque ressource, par exemple theme:read, theme:write, shop:read et shop:write. Une étendue d'écriture inclut automatiquement sa portée de lecture correspondante.

03

Copiez le secret une fois

OrbitPage stocke un hachage SHA-256, pas le secret récupérable. S'il est perdu, révoquez-le et créez un autre jeton.

04

Stockez-le en dehors du code

Utilisez une variable d'environnement ou un magasin de secrets CI. Ne placez jamais le jeton dans une URL, un référentiel, une capture d'écran, un ensemble de navigateur ou un journal de build.

macOS / Linuxbash
export ORBITPAGE_TOKEN='op_pat_...'

curl --silent --show-error --include \
  --header "Authorization: Bearer $ORBITPAGE_TOKEN" \
  https://orbitpage.com/api/v1/links
WindowsPowerShell
$env:ORBITPAGE_TOKEN = 'op_pat_...'
$headers = @{ Authorization = "Bearer $env:ORBITPAGE_TOKEN" }

Invoke-RestMethod -Uri 'https://orbitpage.com/api/v1/links' -Headers $headers
GET /links

Lisez la collection et capturez sa révision avant chaque modification.

Le corps de la réponse contient les blocs ordonnés dans les données et la révision numérique actuelle. La même révision apparaît dans X-OrbitPage-Revision et sous forme d'ETag faible. Enregistrez l'une ou l'autre valeur pour If-Match ; ne le devinez pas et ne le mettez pas en cache sur des exécutions non liées.

Exemple de réponseHTTP + JSON
HTTP/2 200
etag: W/"42"
x-orbitpage-revision: 42
content-type: application/json; charset=utf-8

{
  "object": "list",
  "data": [
    {
      "id": "portfolio-main",
      "type": "link",
      "title": "Selected work",
      "description": "Recent projects and case studies",
      "url": "https://example.com/work",
      "isActive": true,
      "status": "live",
      "availability": "available",
      "clickCount": 18,
      "position": 0
    }
  ],
  "revision": 42,
  "workspace": {
    "tenantId": "tenant_...",
    "pageId": "page_...",
    "username": "your-page"
  }
}
dataLa collection complète de blocs ordonnés. L’ordre du tableau est l’ordre visuel des pages.
revisionVersion à concurrence optimiste utilisée par chaque écriture.
workspaceLe locataire, la page et le nom d'utilisateur liés de manière permanente à ce jeton.
ETagLa valeur la plus sûre à transmettre directement comme prochain en-tête If-Match.
PATCH /links/{linkId}

Utilisez PATCH pour la plus petite modification apportée à un bloc existant.

Encodez en URL l'ID renvoyé par GET et envoyez uniquement les champs qui doivent changer. OrbitPage fusionne le correctif dans le bloc existant, protège les champs d'identité et d'analyse, valide la page complète par rapport à son schéma et son plan, puis publie immédiatement.

Mettre à jour un bloccurl
curl --request PATCH \
  --url https://orbitpage.com/api/v1/links/portfolio-main \
  --header "Authorization: Bearer $ORBITPAGE_TOKEN" \
  --header 'Content-Type: application/json' \
  --header 'If-Match: W/"42"' \
  --data '{
    "title": "Book a consultation",
    "url": "https://example.com/book",
    "isActive": true
  }'
Groupe de champsExemplesComportement
Contenutitle, description, url, content, textItemsModifiable lorsqu'il est valide pour le type de bloc existant.
Visibilité et timingisActive, status, availability, startDate, endDate, timezoneValidé avec les règles de planification et de planification.
Apparence et supporticon, coverImage, backgroundColor, alignment, sizeAccepté uniquement lorsque les valeurs correspondent au schéma de la page.
Protégéid, type, clickCount, ctaClicks, systemKeyIgnoré ou rejeté. Les blocs gérés par le système ne peuvent pas être corrigés.
PUT /links

Utilisez PUT uniquement lorsque la collection elle-même doit changer.

PUT remplace la collection complète ordonnée. Il s'agit de l'opération permettant d'ajouter un bloc, de supprimer un bloc ou de modifier l'ordre des pages. Il ne s'agit pas d'un raccourci pour mettre à jour un titre : omettre un bloc le supprime de la page.

01GETLire chaque bloc et ETag
02Modifier localementPréserver les identifiants et les blocs intacts
03PUT + If-MatchValider et publier
Script de lecture-modification-écriture sécuriséNode.js 22+
const token = process.env.ORBITPAGE_TOKEN;
if (!token) throw new Error("ORBITPAGE_TOKEN is missing");

const endpoint = "https://orbitpage.com/api/v1/links";
const authorization = { Authorization: `Bearer ${token}` };

const read = await fetch(endpoint, { headers: authorization });
if (!read.ok) throw new Error(`GET failed: ${read.status} ${await read.text()}`);

const current = await read.json();
const revision = read.headers.get("etag") ?? String(current.revision);

// Preserve the full collection and change only the intended block.
const links = current.data.map((block) =>
  block.id === "portfolio-main"
    ? { ...block, title: "Work and case studies" }
    : block
);

const write = await fetch(endpoint, {
  method: "PUT",
  headers: {
    ...authorization,
    "Content-Type": "application/json",
    "If-Match": revision
  },
  body: JSON.stringify({ links })
});

if (!write.ok) throw new Error(`PUT failed: ${write.status} ${await write.text()}`);
console.log(await write.json());
curl · n8n · OpenAPI

Utilisez le nœud n8n natif ou le même contrat à partir d'un client HTTP, d'un client généré, d'un backend ou d'un exécuteur CI.

OrbitPage ne nécessite pas de SDK : tout client HTTPS capable d'envoyer du JSON, de l'authentification Bearer et des requêtes standards GET, POST, PUT, PATCH et DELETE est compatible. Les modèles ci-dessous couvrent les parties avec état qu'une intégration doit gérer explicitement.

01

Nœud n8n natif

Installez n8n-nodes-orbitpage et créez des identifiants OrbitPage API avec le jeton personnel et la Base URL. Le test de connexion effectue une lecture sûre de l’espace de travail ; les actions guidées gèrent ensuite les chemins, les autorisations, les liaisons entre éléments et les écritures tenant compte des révisions, sans stocker le secret dans le JSON du workflow.

02

Projet et publication

Les écritures de profils, de thèmes, de pages et de paramètres pris en charge nécessitent If-Match et mettent à jour le brouillon par défaut. Ajoutez ?publish=1 pour une publication immédiate éligible, ou examinez plusieurs modifications différées et appelez POST /publication une fois. Link PATCH et PUT publient immédiatement.

03

Téléchargement multimédia direct

Réservez d'abord, téléchargez les octets vers l'URL de stockage renvoyée, puis finalisez. Envoyez le jeton au porteur OrbitPage uniquement à orbitpage.com ; utilisez uniquement la méthode et les en-têtes temporaires renvoyés pour la demande de stockage.

04

Validation IA révisée

Plan renvoie un aperçu validé sans muter la page. Stockez et examinez son previewToken, puis validez exactement cette proposition. Définissez la publication dans le corps du commit uniquement lorsque l'automatisation est autorisée à rendre le résultat public.

Démarrage rapide n8n natifn8n
Install community node: n8n-nodes-orbitpage

Credential: OrbitPage API
OrbitPage API Token: op_pat_...
OrbitPage Base URL: https://orbitpage.com
Connection test: GET /api/v1/workspace

First safe workflow step:
Node: OrbitPage
Resource: Workspace & Draft
Operation: Get Workspace Overview

First revision-controlled write:
Resource: Theme
Operation: Replace Entire Theme Draft
Revision Check: Use Latest Automatically (Recommended)
Téléchargement multimédia en trois étapesHTTP + JSON
# 1. Reserve an upload and receive uploadUrl, slot and uploadToken
POST /api/v1/media/uploads/reserve
{ "filename": "cover.jpg", "contentType": "image/jpeg", "sizeBytes": 245760 }

# 2. Upload the bytes directly using the returned URL, method and headers
# Do not forward the OrbitPage Authorization header to the storage URL.

# 3. Register the uploaded object in the workspace
POST /api/v1/media/uploads/finalize
{ "slot": "<slot>", "uploadToken": "<uploadToken>" }
Examen du premier flux d'IAHTTP + JSON
# 1. Generate a validated preview without changing the page
POST /api/v1/ai/plan
{ "message": "Make the primary CTA clearer" }

# 2. Review the returned operations and previewToken

# 3. Apply the exact reviewed preview; publishing remains explicit
POST /api/v1/ai/commit
{ "previewToken": "<previewToken>", "publish": false }
Test d'accréditation

Utilisez la Base URL https://orbitpage.com, sans /api/v1. Un enregistrement réussi lit /api/v1/workspace et vérifie le jeton, l’association à l’espace de travail et l’autorisation workspace:read sans modifier les données.

Dépannage n8n

Une erreur 401 exige un jeton de remplacement valide ; une erreur 403, l’autorisation manquante. Si les redirections se répètent, vérifiez la Base URL ou le proxy inverse. Transmettez au support le statut et le code JSON, jamais le secret.

Lire le guide complet des nœuds n8n natifs

Opérations

Traitez les informations d'identification d'automatisation comme des cycles de vie courts et observables.

Un espace de travail prend en charge jusqu'à dix jetons personnels actifs par utilisateur. La liste des comptes affiche le préfixe, les étendues, les dates de création et d'expiration de chaque jeton, ainsi que son utilisation récente. Les horodatages de dernière utilisation sont intentionnellement écrits au maximum une fois toutes les cinq minutes.

GitHub ActionsYAML
name: Update OrbitPage
on: workflow_dispatch

jobs:
  update:
    runs-on: ubuntu-latest
    env:
      ORBITPAGE_TOKEN: ${{ secrets.ORBITPAGE_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: node scripts/update-orbitpage.mjs
  • Nommez les jetons par système et environnement, par exemple « Actions GitHub · production ».
  • Effectuez une rotation en créant le remplacement, en mettant à jour le magasin secret, en testant une lecture, puis en révoquant l'ancien jeton.
  • Révoquer immédiatement après une divulgation suspectée, un changement de propriétaire ou un retrait du flux de travail. La révocation prend effet à la prochaine demande.
  • Ne créez pas de jeton partagé de longue durée. Des informations d'identification distinctes rendent les journaux, la rotation et la réponse aux incidents compréhensibles.
Gestion des échecs

Branche sur le statut HTTP et le code lisible par machine.

Les erreurs utilisent JSON avec l'erreur et le code. N'analysez pas la phrase humaine pour contrôler un flux de travail. La plupart des réponses 4xx nécessitent de modifier la demande ou les informations d'identification ; seuls les conflits de révision et les limites de débit appartiennent à un chemin de nouvelle tentative automatique.

400INVALID_JSON · LINKS_REQUIRED · LINK_PATCH_INVALIDCorrection du corps de la requête ou des champs rejetés par le schéma de la page.
401PERSONAL_TOKEN_*Remplacez un jeton manquant, invalide, expiré ou révoqué. Ne réessayez pas avec le même secret.
403PERSONAL_TOKEN_SCOPE_DENIED · SYSTEM_LINK_PROTECTEDUtilisez la portée requise ou arrêtez : l'identité actuelle n'est pas autorisée à effectuer cette opération.
404LINK_NOT_FOUNDActualiser la collection ; l'ID de bloc a peut-être été supprimé ou remplacé.
409revision_conflictGET à nouveau, réappliquez la modification prévue au nouvel état et réessayez avec la nouvelle révision.
413REQUEST_TOO_LARGEConservez le corps JSON à 768 Ko ou moins.
415UNSUPPORTED_CONTENT_ENCODINGEnvoyez un corps de requête JSON non compressé.
428revision_requiredAjoutez If-Match à l'aide de la révision ou de l'ETag renvoyé par le dernier GET.
429RATE_LIMITEDAttendez Retry-After, puis réessayez avec un intervalle exponentiel et une instabilité.

Les garde-fous actuels autorisent 120 requêtes par minute et 5 000 requêtes par jour et par jeton. Les limites peuvent devenir plus strictes pendant la protection contre les abus ; honorez toujours Retry-After.

Sécurité

Une intégration sécurisée est étroite, secrète et sensible aux révisions.

01

Moindre privilège

Utiliser en lecture seule, sauf si le travail doit être publié. Les capacités des jetons ne peuvent jamais dépasser le rôle actuel du propriétaire dans l'espace de travail.

02

Côté serveur uniquement

Appelez l'API à partir d'un script, d'un backend ou d'un exécuteur CI approuvé. Un bundle de navigateur, un client mobile ou un référentiel public ne peut pas garder de secret au porteur.

03

Aucune écriture aveugle

Effectuez une requête GET juste avant une écriture et utilisez If-Match. Si une erreur 409 renvoie revision_conflict, relisez la ressource et réappliquez la modification voulue ; pour tout autre code, résolvez la condition métier documentée.

04

Valider les résultats

Vérifiez l'état de la réponse, la révision et les données renvoyées. Pour les modifications importantes, ouvrez la page publique après la publication et alertez en cas d'échec sans enregistrer le jeton.

Limite de l'édition

L'API REST Automation à jeton personnel est une fonctionnalité SaaS gérée.

Le référentiel open source contient une API Express utilisée par son tableau de bord fourni, mais cette API de session d'administration interne n'est pas le même contrat d'automatisation versionné. N'envoyez pas de jeton op_pat à un serveur auto-hébergé et n'envoyez pas de JWT d'administrateur auto-hébergé à orbitpage.com/api/v1.

Espace de travail géré

Utilisez ce guide, le contrat OpenAPI et les jetons personnels créés dans le compte.

Instance auto-hébergée

Utilisez le tableau de bord fourni sur la même origine approuvée. La documentation du référentiel explique les limites internes pour les contributeurs et les responsables.

Lire la limite de l'API open source
Automation REST API and personal tokens | OrbitPage