Appuyez sur / pour rechercher

Toute la documentation
docs Appeler depuis votre logiciel Endpoints gérés

S’exécute surWrit Cloud

rest ▸ routes publiées

N’importe quel workflow, une route REST.

Publiez un workflow — ou une tâche d’extraction de page enregistrée — et Writ le sert sur /v1/{slug}/{path} : pas de préfixe /api, aucun serveur à faire tourner, et vos appelants détiennent leurs propres clés consommateur, jamais vos identifiants.

Writ s’exécute sur vos propres comptes, avec vos propres identifiants et données, sur les sites que vous êtes autorisé à utiliser.

route ▸ résolution d’un appel

La route, résolue.

La passerelle n’a aucun chemin fixe à elle : le slug nomme votre tenant, le chemin correspond à un endpoint que vous avez enregistré, et tout ce qui ne se résout pas est un 404.

PartieComment elle se résout
{slug}Le public_id de votre tenant (canonique) ou son slug personnalisé. La passerelle répond aussi sur le sous-domaine {slug}.api.usewrit.app et sur les domaines personnalisés vérifiés.
{path}Confronté à vos endpoints enregistrés sur (méthode, chemin) — un littéral comme /products, ou un motif comme /search/{query}.
MéthodesGET · POST · PUT · DELETE · PATCH
BackendUn run de workflow enregistré, ou un scrape_job — une tâche d’extraction de page enregistrée.
Sans correspondance404 — tenant inconnu, ou aucun endpoint enregistré sur ce (méthode, chemin).

appel ▸ post, lire les données

Le premier appel.

Envoyez les entrées en POST, relisez les données — ces exemples sont tout le client :

call.sh

curl -X POST https://api.usewrit.app/v1/acme/price-check \
  -H "Authorization: Bearer $WRIT_CONSUMER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/product/42"}'

Les appelants s’authentifient sur cette voie avec une clé consommateur csk_ que vous émettez par appelant ; votre clé wt_ reste sur la surface de gestion /api et n’a jamais à leur parvenir. Émettez, plafonnez, suspendez et faites tourner les clés dans clés consommateur.

attente ▸ synchrone par défaut

Synchrone par défaut, asynchrone à la demande.

Il n’existe pas de paramètre wait= sur cette voie. Un appel s’exécute de façon synchrone jusqu’au timeout_seconds de l’endpoint (5–300, 120 par défaut) et répond 200 avec le résultat en ligne ; au-delà du budget, il répond 504 — en portant toujours la référence du run, rien n’est perdu.

Synchrone — le défaut

200 avec le résultat en ligne, jusqu’à timeout_seconds.

Asynchrone à la demande

Envoyez Prefer: respond-async (RFC 7240) ou ?async=true202 plus une référence de run.

Interroger

GET /v1/{slug}/_runs/{run_id} — répond avec Retry-After: 2 tant que le run n’est pas terminal.

Fraîcheur

Envoyez Cache-Control: max-age=N ou ?max_age=N par appel. 0 force un run à neuf ; sans indication, c’est le cache_ttl_seconds propre à l’endpoint (0–86400) qui décide.

Les paramètres de contrôle ne fuient jamais dans votre workflow : async et max_age sont retirés avant que le reste de la chaîne de requête ne soit fusionné dans les entrées du run.

forme ▸ response_format

Une enveloppe parmi trois.

Chaque endpoint choisit l’emballage de sa charge utile :

response_formatForme
rawLa sortie du run, sans emballage.
json_wrappedLe défaut — {"success":true,"data":…}.
with_metadata{"data":…,"metadata":{endpoint_id,latency_ms,cached,timestamp}}.

Les erreurs ne varient jamais avec le format : toujours {"success":false,"error":…,"detail":…}.

ordre ▸ les contrôles

L’ordre des contrôles, exactement.

Chaque appel franchit les mêmes contrôles, dans le même ordre. Connaître cet ordre vous dit quelle limite vous avez atteinte et quel en-tête lire :

  1. 01
    Tenant

    {slug} inconnu → 404.

  2. 02
    Endpoint

    Aucun endpoint enregistré sur ce (méthode, chemin) → 404.

  3. 03
    Clé consommateur

    Clé consommateur Bearer absente ou invalide → 401.

  4. 04
    Limite de débit par clé

    Fenêtre glissante de 60 secondes — le rate_limit_per_minute de la clé, sinon le rate_limit_override de l’endpoint, sinon 60/min. Au-delà → 429 avec X-RateLimit-* et Retry-After: 60.

  5. 05
    Fair-use quotidien

    Un plafond quotidien à l’échelle de l’organisation sur les appels relayés vers les endpoints publiés — de 2 000/jour en Free à 250 000/jour en Enterprise. Au-delà → 429 avec Retry-After: 3600.

  6. 06
    Quota mensuel par clé

    Le monthly_quota de la clé, décompté avant l’envoi — au-delà → 429 « Used {n}/{quota} calls this month ».

  7. 07
    Quota mensuel de l’organisation

    Le quota mensuel d’appels managed-API de votre plan (managed_api_calls_per_month).

  8. 08
    Cache

    Un résultat en cache plus jeune que l’âge autorisé est renvoyé ici, sans démarrer de run.

  9. 09
    Envoi

    Le workflow — ou la tâche d’extraction enregistrée — s’exécute sur son lieu d’exécution configuré.

  10. 10
    Usage

    L’appel atterrit dans les analyses d’usage par clé et par endpoint.

Quotas par plan

Les routes publiées sont plafonnées en nombre ; les appels le sont par mois à l’échelle de l’organisation et par jour en fair-use. Le trafic en clé inconnue ou en 404 ne compte jamais contre vous :

PlanEndpoints publiésAppels · moisAppels relayés · jour
Free210 0002 000
Starter550 00010 000
Pro15250 00025 000
Growth401 000 00050 000
Scale100Illimité100 000
EnterpriseIllimitéIllimité250 000

faq

Vos questions, nos réponses.

Quelle est la différence entre un endpoint et un tool MCP ?
Deux surfaces sur le même workflow. Un managed endpoint est une route REST sur /v1/{slug}/{path} ; un tool MCP est le même workflow parlé via le Model Context Protocol. Publiez l’un, l’autre, les deux ou aucun.
Quelle clé vos appelants utilisent-ils ?
Une clé consommateur csk_ — émise par vous, restreinte à vos endpoints, limitée en débit et en quota par clé. Votre propre clé API wt_ gère les endpoints sur la surface /api ; ce n’est pas elle que vous remettez aux appelants.
Que se passe-t-il quand un run dépasse le timeout ?
L’appel répond 504 avec la référence du run toujours attachée. Interrogez GET /v1/{slug}/_runs/{run_id} jusqu’à ce que le run soit terminal — ou évitez l’attente d’emblée avec Prefer: respond-async et prenez le 202 dès le départ.
Où l’exécution a-t-elle lieu ?
Sur votre propre agent local ou auto-hébergé, gratuitement et sans compteur, ou sur la flotte cloud managée facturée au temps d’exécution — vous choisissez le lieu par workflow. Writ s’exécute sur vos propres comptes, avec vos propres identifiants et données, sur les sites que vous êtes autorisé à utiliser.

go ▸ publier

Publiez votre premier endpoint.

Choisissez un workflow, enregistrez une route, et remettez à vos appelants une URL qui répond en un POST.