Flowstates messaging platform logo
    Documentation Développeur

    Développez avec la plateforme Flowstates

    Authentifiez-vous avec une clé API, créez des liens courts de marque, générez des mots de passe à usage unique et validez-les. D'autres points de terminaison seront ajoutés à mesure que la plateforme se développera.

    Démarrage rapide

    Tous les points de terminaison sont servis à partir d'une seule URL de base. Chaque requête nécessite votre clé API dans l'en-tête clé x-api et les requêtes JSON utilisent Content-Type: application/json.

    URL de base
    https://cpt.cx
    En-têtes requis
    x-api-key: YOUR_API_KEY
    Content-Type: application/json
    Créer un lien court
    curl -X POST "https://cpt.cx/shortlink/public-generate" \
      -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "BBC News",
        "url": "https://www.bbc.com/news",
        "domain": "cpt.cx",
        "tags": ["News", "BBC"]
      }'

    Authentification

    Chaque point de terminaison public est authentifié avec une clé API envoyée dans l'en-tête clé x-api. Les clés sont associées à votre compte, aux domaines qui y sont enregistrés et aux fournisseurs configurés pour vos canaux. Traitez les clés comme des secrets — ne les intégrez jamais dans le code côté client.

    En-tête requis
    x-api-key: YOUR_API_KEY

    API OTP

    Générez des mots de passe à usage unique pour la livraison par SMS ou e-mail et validez-les ultérieurement avec l'otpId renvoyé. La valeur OTP n'est jamais renvoyée par l'API — elle est livrée au destinataire et stockée uniquement sous forme de hachage avec un TTL.

    POST/otp/generate
    Générer un OTP

    Corps de la requête

    • channel — requis, email ou sms
    • provider — requis, le fournisseur configuré pour ce canal sur votre compte (par exemple, generic, twilio, sendgrid)
    • destination — requis, adresse e-mail ou numéro de téléphone E.164
    • type — requis, numeric ou alphanumeric
    • length — requis, entre 4 et 12
    • expiresInSeconds — requis, doit être supérieur à 0
    Requête
    {
      "channel": "email",
      "provider": "generic",
      "destination": "test@example.com",
      "type": "alphanumeric",
      "length": 8,
      "expiresInSeconds": 300
    }
    200 OK
    {
      "otpId": "51a6fcc7-efc8-4e69-8bc1-ebb999befb2c",
      "destination": "test@example.com",
      "createdAt": "2025-09-10T14:05:41Z",
      "expiresAt": "2025-09-10T14:10:41Z"
    }
    POST/otp/validate
    Valider un OTP

    Envoyez l'otpId renvoyé par /otp/generate ainsi que la valeur OTP fournie par l'utilisateur. Une validation réussie consomme l'OTP — les codes sont à usage unique.

    Requête
    {
      "otpId": "c4f8814c-7a9d-4e13-b7d8-d4e66d272611",
      "otp": "z4dGyBPQ"
    }
    200 OK
    {
      "success": true,
      "message": "OTP validated successfully."
    }

    Après des tentatives infructueuses répétées, la validation renverra Trop de tentatives infructueuses. Réessayez plus tard. jusqu'à l'expiration du verrouillage temporaire.

    Erreurs et lacunes connues

    Les erreurs de validation sont renvoyées avec des messages descriptifs tels que Format d'URL invalide. ou Fournisseur introuvable pour ce client et ce canal.. Les détails suivants ne sont pas encore documentés publiquement — considérez-les comme des TODO et contactez-nous si vous avez besoin d'une réponse définitive pour une utilisation en production :

    • Charges utiles d'échec d'authentification et formes exactes de réponse 4xx/5xx
    • Limites de débit par point de terminaison et par compte
    • Taille maximale du lot pour la création de liens courts
    • Structure d'échec par élément dans un lot partiellement réussi
    • Possibilité de personnaliser l'expiration des liens courts au-delà des 30 jours par défaut
    • Durée du verrouillage temporaire OTP après trop de tentatives infructueuses

    Ressources lisibles par machine

    Fichiers pour les agents IA, les crawlers LLM, la génération de clients API et la découverte technique. Liés depuis l'en-tête HTML du site et robots.txt pour une découvrabilité fiable.

    Besoin d'une clé API ou d'un bac à sable ?

    Nous vous fournirons les clés, enregistrerons vos domaines et configurerons vos fournisseurs — généralement en une journée.