Fonctionnement
Format de réponse
Exemple : pagination des sessions
Première page
Page suivante
end_cursor de la réponse précédente :
Récupérer tous les résultats
Migration depuis une pagination par offset
offset/limit par after/first :
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Fonctionnement de la pagination par curseur dans l’API Devin
| 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 |
{
"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"
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"
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")
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"
