Chaque endpoint, une seule URL de base.
Aucun SDK requis - n'importe quel client HTTP convient. URL de base https://api.wontopos.com, authentification via l'en-tête X-API-Key, JSON en entrée comme en sortie. Les opérations mémoire sont en POST ; la gestion des stores utilise POST / GET / DELETE sur /collection. Un store doit exister au préalable (voir Stores), sinon les opérations dans le store renvoient 404.
En-têtes
| En-tête | Ce qu'il fait |
|---|---|
| X-API-Key | Requis à chaque appel. Votre clé, émise dans la console. |
| X-WOS-Model | Optionnel. Détermine quel moteur répond. Omettez-le et la valeur par défaut du compte est utilisée. GET /api/v1/models liste les modèles que votre clé peut sélectionner ; un endpoint qu'un moteur plus ancien ne peut pas servir répond 501 et nomme ce modèle. |
| Idempotency-Key | Optionnel, sur les écritures. La même clé avec le même corps rejoue la première réponse au lieu de stocker à nouveau - voir la note ci-dessous. |
Endpoint
| Endpoint | Rôle | Champs du corps |
|---|---|---|
| POST /api/v1/memory/collection | créer un store | user_id |
| GET /api/v1/memory/collections | lister vos stores | (aucun) |
| DELETE /api/v1/memory/collection | supprimer un store + ses souvenirs | user_id |
| /api/v1/memory/store | stocker un souvenir | user_id · content · metadata? (event_date · speaker) · image? |
| /api/v1/memory/store-turn | stocker un tour de conversation | user_id · user_msg · assistant_msg |
| POST /api/v1/memory/speakers | enregistrer un locuteur (explicite, 50 max) | user_id · speaker |
| GET /api/v1/memory/speakers | lister les locuteurs enregistrés + compteurs | user_id |
| DELETE /api/v1/memory/speakers | désinscrire un locuteur (souvenirs conservés) | user_id · speaker |
| /api/v1/memory/by-speaker | ce qu’une personne a dit, du plus récent au plus ancien (« me » = l’agent) | user_id · speaker · limit? · before? · skip_ids? |
| POST /api/v1/memory/image | l’image que nous conservons pour un souvenir image - pas votre original | user_id · memory_id |
| DELETE /api/v1/memory/image | retirer l’image, garder la légende | user_id · memory_id · preview? |
| /api/v1/memory/images | les images d’un store, du plus récent (+ le total) | user_id · limit? · before? · skip_ids? |
| /api/v1/memory/lineage | la chaîne de modifications d’un souvenir, du plus ancien | user_id · memory_id |
| GET /api/v1/won/usage | Ce que cette clé a dépensé et ce qu'il reste — pour qu'un modèle décide s'il continue. Gratuit. | days? |
| GET /api/v1/memory/usage | Ce que cette clé a dépensé et ce qu'il reste — pour qu'un modèle décide s'il continue. Gratuit. | days? |
| /api/v1/won/revisions | quelle part d’un store a été réécrite. Gratuit | user_id · include? · limit? · before? · skip_ids? |
| /api/v1/memory/revisions | le même appel sous le plan memory. Gratuit | user_id · include? · limit? · before? · skip_ids? |
| /api/v1/memory/bulk-store | importer un bloc de texte | user_id · content · category? · timestamp? |
| /api/v1/memory/search | recherche sémantique | user_id · query · max_results? · speaker? · cache_control? · filters? · verify? · max_images? |
| /api/v1/memory/recall | court + long + contexte | user_id · query · limit? · context_limit? |
| /api/v1/memory/get | un souvenir par id | user_id · memory_id |
| /api/v1/memory/list | parcourir un magasin page par page | user_id · limit? · cursor? |
| /api/v1/memory/history | tours récents | user_id |
| /api/v1/memory/stats | compteurs de souvenirs | user_id |
| /api/v1/memory/supersede | remplacer un fait modifié | user_id · old_memory_id · new_content |
| /api/v1/memory/forget | en supprimer un (ou tous) | user_id · memory_id? (omis = tout supprimer) |
| GET /api/v1/engram | engrammes que ce modèle peut exécuter | (aucun) |
| POST /api/v1/engram/run | exécuter un engramme | name · user_id · query · form? · tz? |
| GET /api/v1/models | modèles disponibles | (aucun) |
Les écritures acceptent un en-tête
Idempotency-Key. La même clé avec le même corps rejoue la première réponse au lieu de stocker à nouveau (10 minutes) ; la même clé avec un corps différent répond 422. Seuls les 2xx sont mis en cache, un appel en échec est donc immédiatement réessayable.# create the store once (stores are explicit) curl -X POST https://api.wontopos.com/api/v1/memory/collection \ -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \ -d '{"user_id":"alice"}' # store a memory curl -X POST https://api.wontopos.com/api/v1/memory/store \ -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \ -d '{"user_id":"alice","content":"she prefers tea over coffee"}' # recall - one call, ready for your prompt curl -X POST https://api.wontopos.com/api/v1/memory/recall \ -H "X-API-Key: $WOS_API_KEY" -H "Content-Type: application/json" \ -d '{"user_id":"alice","query":"what does alice drink?"}'
Réponse réelle - store
{"id": "576700aa-f0e0-4c26-99a0-10e2d5b0d624", "status": "stored (1 chunks)"}