Developer sign-in required
The Developer & Integration section is restricted to signed-in developer accounts. Sign in with your AI2N.ai developer credentials to continue.
API Conventions
This selector is illustrative ā there is no live public API to switch against yet. All requests/responses below use non-production example data.
The AI2N.ai API follows a small, consistent set of conventions across every resource group (content, search, training, release, support, administration).
Base URL and versioning
Every request goes to a versioned base path. A breaking change always ships as a new version, never as a silent change to an existing one.
curl https://api.ai2n.ai/v1/courses \
-H "Authorization: Bearer $ACCESS_TOKEN"
Pagination, filtering and sorting
List endpoints return a stable cursor rather than an offset, so results stay consistent even if records are added or removed between pages.
const res = await fetch(
"https://api.ai2n.ai/v1/courses?limit=25&cursor=" + cursor,
{ headers: { Authorization: `Bearer ${accessToken}` } }
);
const { data, nextCursor } = await res.json();
import requests
resp = requests.get(
"https://api.ai2n.ai/v1/courses",
params={"limit": 25, "cursor": cursor},
headers={"Authorization": f"Bearer {access_token}"},
)
data = resp.json()["data"]
curl "https://api.ai2n.ai/v1/courses?limit=25&cursor=eyJvZmZzZXQiOjI1fQ" \ -H "Authorization: Bearer $ACCESS_TOKEN"
Idempotency
Every create/publish request accepts an Idempotency-Key header. Retrying the same request with the same key returns the original result instead of creating a duplicate ā safe to use whenever a network timeout makes it unclear if the first attempt succeeded.
curl -X POST https://api.ai2n.ai/v1/enrollments \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Idempotency-Key: 8f14e45f-ceea-4c9e-9e15-example" \
-H "Content-Type: application/json" \
-d '{"personId":"per_123","courseId":"crs_456"}'
Errors and rate limits
Errors follow the RFC 7807 "problem details" shape and always include a correlation ID for support requests. Rate limits are returned as standard X-RateLimit-* response headers; exceeding them returns 429 with a Retry-After header.
This page describes the platform's intended public API conventions per the development specification. There is no live production endpoint documented here yet.