Documentation Index
Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
Use this file to discover all available pages before exploring further.
Tous les endpoints de liste dans les API Organization et Enterprise utilisent la pagination par curseur. Elle offre une pagination cohérente et efficace, quelle que soit la taille du jeu de résultats.
Chaque endpoint de liste accepte deux paramètres de requête :
| Paramètre | Type | Description |
|---|
first | integer | Nombre maximal d’éléments à renvoyer par page (la valeur par défaut varie selon l’endpoint) |
after | string | Curseur opaque provenant d’une réponse précédente. À omettre pour la première page |
Les réponses de type liste incluent des métadonnées de pagination :
{
"items": [...],
"has_next_page": true,
"end_cursor": "eyJsYXN0X2lkIjoiYWJjMTIzIn0=",
"total": 142
}
| Champ | Description |
|---|
items | Liste de résultats pour la page actuelle |
has_next_page | true s’il y a d’autres résultats |
end_cursor | Passez cette valeur en paramètre after pour obtenir la page suivante. null lorsque has_next_page est false |
total | Nombre total d’éléments correspondants (peut être omis par certains endpoints pour des raisons de performances) |
curl "https://api.devin.ai/v3/organizations/$DEVIN_ORG_ID/sessions?first=10" \
-H "Authorization: Bearer $DEVIN_API_KEY"
Utilisez la valeur end_cursor de la réponse précédente :
curl "https://api.devin.ai/v3/organizations/$DEVIN_ORG_ID/sessions?first=10&after=eyJsYXN0X2lkIjoiYWJjMTIzIn0=" \
-H "Authorization: Bearer $DEVIN_API_KEY"
Récupérer tous les résultats
import os
import requests
org_id = os.environ["DEVIN_ORG_ID"]
url = f"https://api.devin.ai/v3/organizations/{org_id}/sessions"
headers = {"Authorization": f"Bearer {os.environ['DEVIN_API_KEY']}"}
all_sessions = []
cursor = None
while True:
params = {"first": 50}
if cursor:
params["after"] = cursor
response = requests.get(url, headers=headers, params=params).json()
all_sessions.extend(response["items"])
if not response.get("has_next_page"):
break
cursor = response["end_cursor"]
print(f"Fetched {len(all_sessions)} sessions")
Si vous migrez depuis l’API v1 ou v2, remplacez offset/limit par after/first :
# Before (v1/v2)
curl ".../v1/sessions?offset=50&limit=25"
# After
curl ".../v3/organizations/{org_id}/sessions?first=25&after=CURSOR_FROM_PREVIOUS_PAGE"
La pagination par curseur est plus fiable que la pagination par offset, car elle n’est pas affectée par l’ajout ou la suppression d’éléments entre les pages.