API and developer access
School Manager exposes a documented REST API for the citation service. The full machine-readable specification is at /openapi.json.
Getting a key
API keys are generated by signed-in users, not issued on request. Create a School Manager account, open the account menu (☰) in the top right, and use New key there. The key is shown once and cannot be retrieved again. There is no sandbox environment and no self-service trial key.
Authentication
Send the key as a bearer token on every request.
Authorization: Bearer YOUR_API_KEY
Requests that are not authenticated return 401 with a JSON body.
Repeated calls are rate limited and return 429 with a
Retry-After header.
Endpoints
| Endpoint | Purpose |
|---|---|
GET /citations/health | Check that the service is responding. No auth required. |
POST /citations/v1/parse | Split a document into paragraphs and extract its References section. |
POST /citations/v1/cite | Add academic citations and return the rewritten document. |
GET /citations/api/me | Current account, usage counters, and key list. Session cookie. |
Example: add citations to an essay
curl -X POST https://aiia.ro/citations/v1/cite \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"essay": "Climate models project warming across all emission scenarios.",
"mode": "every",
"minCitations": 1,
"maxCitations": 2
}'
The response carries the rewritten document as base64 in
documentBase64. Pass fileBase64 instead of
essay to work with a .docx or .pptx.
Limits
- Request body: 12 MB maximum.
- Citation density:
every,every_other, orrandom. - Citations per paragraph: configurable minimum and maximum.
Machine-readable entry points
- /openapi.json — full OpenAPI 3.1 specification
- /llms.txt — when an agent should use this product
- /llms-full.txt — full tool reference
- /sitemap.xml — indexable URLs