Requêtes, réponses et en-têtes

JSON seulement, champs en camelCase, dates ISO 8601 UTC, codes 201, 202 et 204, et tous les en-têtes de requête et de réponse de l’API Memojin.

api.memojin.com/v1 · Contrat 1.0.0-beta.2 · Bêta

Sections · Requêtes et réponses

Une API REST en JSON, à l’adresse https://api.memojin.com/v1. Ces règles valent pour toutes les opérations ; la référence de chaque ressource les rappelle au besoin.

Format des requêtes et des réponses

  • JSON seulement : envoyez Content-Type: application/json avec un corps (sinon 415 unsupported_media_type) et acceptez application/json (sinon 406 not_acceptable). Un corps ne dépasse pas 1 Mo (413 payload_too_large).
  • Champs en camelCase ; identifiants en UUID ; instants en ISO 8601 UTC (2026-10-01T14:03:00.000Z). Une valeur absente vaut null, une liste vide [] : les champs d’un objet sont toujours présents.
  • Une ressource est rendue telle quelle ; une liste, sous la forme { "data": [...], "nextCursor": "…", "hasMore": true }.
  • Les URL d’image (imageUrl) sont signées et de courte durée : téléchargez l’image si vous en avez besoin, ne conservez pas l’URL.

Statuts de succès

StatutQuandCorps
200 OKLecture, modificationL’objet, ou une page
201 CreatedCréationL’objet créé, et l’en-tête Location
202 AcceptedGénération IA lancéeLe travail à suivre (jobId)
204 No ContentSuppressionAucun
304 Not ModifiedIf-None-Match qui correspondAucun

Soyez tolérant

De nouveaux champs, de nouvelles valeurs d’énumération (un statut, un type de travail) et de nouveaux codes d’erreur peuvent apparaître sans préavis dans /v1. Ignorez les champs que vous ne connaissez pas et traitez une valeur inconnue comme un cas générique. Voir versions.

En-têtes

En-têteSensRôle
AuthorizationrequêteBearer mj_live_… ou mj_test_… (authentification)
Idempotency-KeyrequêteUn UUID par opération POST, réutilisé à chaque nouvelle tentative (idempotence)
If-None-MatchrequêteL’ETag détenu : 304 si rien n’a changé (requêtes conditionnelles)
If-MatchrequêteL’ETag lu : 412 sur PATCH ou DELETE si la ressource a changé depuis
Accept-LanguagerequêteLangue des messages d’erreur : en (défaut), fr, es, de, it
X-Request-Idles deuxVotre identifiant, renvoyé tel quel (généré sinon) ; citez-le si vous nous contactez
ETagréponseVersion de la représentation rendue par un GET
Cache-Controlréponseprivate, no-cache sur les lectures (revalidez avec If-None-Match)
LocationréponseChemin de la ressource créée par un 201
Linkréponserel="next" (page suivante), rel="help" (documentation d’un code d’erreur), rel="deprecation"
RateLimit-Limit, RateLimit-Remaining, RateLimit-ResetréponseVotre fenêtre de limite en cours (limites)
Retry-AfterréponseSecondes à attendre, sur 429, 503 et 409 idempotency_in_progress
Idempotent-Replayedréponsetrue quand la réponse rejoue une réponse antérieure
Memojin-VersionréponseVersion du contrat qui a servi la requête (versions)
Memojin-Credits-EstimateréponseUnités de crédit IA qu’une génération prévoit (ai_card=12)
Deprecation, SunsetréponsePosés sur une opération dont le retrait est programmé (RFC 9745, RFC 8594)