API - Vue d’ensemble

API - Connexion et autorisation

Configurez les clés API, testez la connexion et découvrez la gestion des erreurs et des limites de requêtes.

Vue d’ensemble des points d’accès

MéthodePoint d’accèsDescriptionAccès
GET/public-api/healthzVérification de la disponibilité du service.public
GET/public-api/v1/auth/checkValide les identifiants et renvoie la boutique, les portées et les fonctionnalités de l’offre.tout identifiant authentifié

Authentification et URL de base

https://alterproduct.com/public-api/v1

Créez des identifiants API dans le panneau des paramètres e-commerce. Le jeton d’accès n’est affiché qu’une fois : enregistrez-le immédiatement dans le stockage sécurisé des secrets de votre serveur.

Conservez la clé d’accès et le jeton d’accès sur votre serveur. Les points d’accès authentifiés rejettent les appels provenant du navigateur qui incluent les en-têtes Origin ou Referer.

Les identifiants peuvent avoir des portées limitées. Utilisez GET /auth/check pour vérifier la boutique active, les fonctionnalités de l’offre et les portées renvoyées pour l’identifiant.

x-alter-access-key: YOUR_API_KEY
x-alter-access-token: YOUR_API_TOKEN
ParamètreObligatoireDétails
x-alter-access-keyouiIdentifiant public des accès.
x-alter-access-tokenouiJeton secret associé à la clé d’accès.
x-alter-client-fingerprintnonEmpreinte stable facultative pour la limitation des requêtes de session d’intégration.
Authorizationenvironnement d’exécution uniquementJeton Bearer renvoyé par POST /embed/session, utilisé par /runtime/bootstrap.

Test de connexion

Utilisez le point d’accès de vérification de l’authentification avant d’activer la synchronisation ou les fonctions d’intégration en production.

GET https://alterproduct.com/public-api/v1/auth/check

Exemple de requête (fetch)

const response = await fetch('https://alterproduct.com/public-api/v1/auth/check', {
  method: 'GET',
  headers: {
    'x-alter-access-key': process.env.ALTER_ACCESS_KEY,
    'x-alter-access-token': process.env.ALTER_ACCESS_TOKEN
  }
});

const payload = await response.json();

if (!response.ok) {
  throw new Error(payload?.code || payload?.error || `Alter API ${response.status}`);
}

console.log(payload);

Exemple de réponse

{
  "ok": true,
  "message": "success",
  "storefrontId": 12,
  "userOwnerId": 34,
  "credentialId": 56,
  "scopes": ["orders:read", "orders:write", "products:read"],
  "plan": {
    "requiredPlan": "Business",
    "currentPlanName": "Business",
    "eligible": true,
    "runtimeFlags": {
      "viewer": true,
      "configurator": true,
      "customizer": true
    },
    "limits": {
      "activeRuntimeBindingsLimit": 100,
      "monthlyReassignmentLimit": 1000,
      "monthlyEmbedTokenLimit": 50000
    }
  }
}

La fonction utilitaire ci-dessous est utilisée dans les exemples suivants. Elle repose sur fetch natif et peut s’exécuter dans Node.js 18+ ou dans tout environnement serveur fournissant fetch.

const ALTER_API_BASE = 'https://alterproduct.com/public-api/v1';

const authHeaders = {
  'x-alter-access-key': process.env.ALTER_ACCESS_KEY,
  'x-alter-access-token': process.env.ALTER_ACCESS_TOKEN
};

async function alterFetch(path, options = {}) {
  const response = await fetch(`${ALTER_API_BASE}${path}`, {
    ...options,
    headers: {
      ...authHeaders,
      ...(options.body ? { 'Content-Type': 'application/json' } : {}),
      ...options.headers
    }
  });

  const payload = await response.json().catch(() => null);

  if (!response.ok) {
    throw new Error(payload?.code || payload?.error || `Alter API ${response.status}`);
  }

  return payload;
}

Erreurs et limites de requêtes

La plupart des erreurs des contrôleurs sont normalisées en réponses code. Les intergiciels d’authentification et les limiteurs de requêtes peuvent renvoyer une réponse error à la place.

// Controller error
{
  "code": "assetCatalog.invalidType"
}

// Auth middleware or rate limit
{
  "error": "Unauthorized"
}

{
  "error": "Too Many Requests"
}
TypeLimitePériode
Global600 requêtes60 secondes
GET /auth/check60 requêtes60 secondes
Lecture des commandes/produits300 requêtes60 secondes
Écriture des commandes/sessions d’intégration/associations d’exécution120 requêtes60 secondes
Lecture des ressources/imports de designs180 requêtes60 secondes
Polices300 requêtes60 secondes
Échange de connexion WP30 requêtes60 secondes
GET /model-generator/*600 requêtes60 secondes