accounts
Institflow Account
Sign-up, email verification, sign-in, password reset, sessions, profile, email change, export and delete for the Institflow account — the control-plane identity a student, guardian or institute owner uses across every institute they belong to (id.institflow.com). Cloud/control-plane only: answers 404 on a self-hosted install.
20 endpoints
POST /api/v1/accounts/forgot-password
Request a password-reset email (always 200, whether or not the account exists).
Request body
| Name | Type | Constraints |
|---|---|---|
emailrequired | string (email) | — |
Example
{
"email": "ada.lovelace@example.com"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/forgot-password" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"email": "ada.lovelace@example.com"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/logout
Revoke the current account session.
curl example
curl -X POST "https://your-institute.example/api/v1/accounts/logout" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/logout-all
Revoke every session (every device) for the current account.
curl example
curl -X POST "https://your-institute.example/api/v1/accounts/logout-all" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
DELETE /api/v1/accounts/me
Delete the account (typed confirmation: the current password). Institute links and sessions cascade.
Request body
| Name | Type | Constraints |
|---|---|---|
currentPasswordrequired | string | ≥1 chars |
Example
{
"currentPassword": "string"
}curl example
curl -X DELETE "https://your-institute.example/api/v1/accounts/me" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"currentPassword": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
curl example
curl -X GET "https://your-institute.example/api/v1/accounts/me" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
idrequired | string (uuid) | — |
emailrequired | string (email) | — |
usernamerequired | string | — |
phonerequired | string | null | — |
phoneVerifiedrequired | boolean | — |
localerequired | enum: "ar" | "en" | "he" | — |
statusrequired | enum: "active" | "disabled" | — |
emailVerifiedrequired | boolean | — |
signupIntentrequired | enum: "institute_owner" | "student" | "guardian" | null | null | — |
createdAtrequired | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"email": "ada.lovelace@example.com",
"username": "string",
"phone": "+15551234567",
"phoneVerified": true,
"locale": "ar",
"status": "active",
"emailVerified": true,
"signupIntent": "institute_owner",
"createdAt": "2026-03-02T09:00:00.000Z"
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
PATCH /api/v1/accounts/me
Update username, locale or phone. Changing the phone resets its verification.
Request body
| Name | Type | Constraints |
|---|---|---|
username | string | — |
locale | enum: "ar" | "en" | "he" | — |
phone | string | null | — |
Example
{
"username": "string",
"locale": "ar",
"phone": "+15551234567"
}curl example
curl -X PATCH "https://your-institute.example/api/v1/accounts/me" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"username": "string",
"locale": "ar",
"phone": "+15551234567"
}'Responses
| Name | Type | Constraints |
|---|---|---|
idrequired | string (uuid) | — |
emailrequired | string (email) | — |
usernamerequired | string | — |
phonerequired | string | null | — |
phoneVerifiedrequired | boolean | — |
localerequired | enum: "ar" | "en" | "he" | — |
statusrequired | enum: "active" | "disabled" | — |
emailVerifiedrequired | boolean | — |
signupIntentrequired | enum: "institute_owner" | "student" | "guardian" | null | null | — |
createdAtrequired | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"email": "ada.lovelace@example.com",
"username": "string",
"phone": "+15551234567",
"phoneVerified": true,
"locale": "ar",
"status": "active",
"emailVerified": true,
"signupIntent": "institute_owner",
"createdAt": "2026-03-02T09:00:00.000Z"
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/me/change-email
Request an email change — sends a confirmation link to the NEW address.
Request body
| Name | Type | Constraints |
|---|---|---|
newEmailrequired | string (email) | — |
currentPasswordrequired | string | ≥1 chars |
Example
{
"newEmail": "ada.lovelace@example.com",
"currentPassword": "string"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/me/change-email" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"newEmail": "ada.lovelace@example.com",
"currentPassword": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/me/change-password
Change your own password. Revokes every OTHER session (this one stays signed in).
Request body
| Name | Type | Constraints |
|---|---|---|
currentPasswordrequired | string | ≥1 chars |
newPasswordrequired | string | ≥10 chars |
Example
{
"currentPassword": "string",
"newPassword": "string"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/me/change-password" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"currentPassword": "string",
"newPassword": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/me/confirm-email
Confirm a pending email change from the link sent to the new address.
Request body
| Name | Type | Constraints |
|---|---|---|
tokenrequired | string | ≥1 chars |
Example
{
"token": "string"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/me/confirm-email" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"token": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
GET /api/v1/accounts/me/export
A JSON export of the account fields and the institutes it belongs to.
curl example
curl -X GET "https://your-institute.example/api/v1/accounts/me/export" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
accountrequired | object | — |
termsVersionrequired | string | null | — |
termsAcceptedAtrequired | string (date-time) | null | — |
institutesrequired | array<object> | — |
{
"account": {
"id": "37386ae0-3738-7738-8386-37386ae03738",
"email": "ada.lovelace@example.com",
"username": "string",
"phone": "+15551234567",
"phoneVerified": true,
"locale": "ar",
"status": "active",
"emailVerified": true,
"signupIntent": "institute_owner",
"createdAt": "2026-03-02T09:00:00.000Z"
},
"termsVersion": "string",
"termsAcceptedAt": "2026-03-02T09:00:00.000Z",
"institutes": [
{
"tenantId": "4332af8b-4332-7332-832a-4332af8b4332",
"installId": "2472867d-2472-7472-8728-2472867d2472",
"kind": "student",
"status": "invited",
"invitedAt": "2026-03-02T09:00:00.000Z",
"activatedAt": "2026-03-02T09:00:00.000Z"
}
]
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
GET /api/v1/accounts/me/institutes
The account's invited/active institute links (K-52) — name and install address included, for My institutes' "Open" action.
curl example
curl -X GET "https://your-institute.example/api/v1/accounts/me/institutes" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
[
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"tenantId": "4332af8b-4332-7332-832a-4332af8b4332",
"kind": "student",
"status": "invited",
"invitedAt": "2026-03-02T09:00:00.000Z",
"activatedAt": "2026-03-02T09:00:00.000Z",
"instituteName": "string",
"address": "string"
}
]Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/me/institutes/{id}/decline
Decline an institute's invitation (phase 19). The link becomes `declined` and the institute sees the answer; the institute may invite you again.
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
idrequired | path | string | — |
curl example
curl -X POST "https://your-institute.example/api/v1/accounts/me/institutes/37386ae0-3738-7738-8386-37386ae03738/decline" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
GET /api/v1/accounts/me/sessions
Every active session for the current account.
curl example
curl -X GET "https://your-institute.example/api/v1/accounts/me/sessions" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
[
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"userAgent": "string",
"ip": "string",
"lastUsedAt": "2026-03-02T09:00:00.000Z",
"createdAt": "2026-03-02T09:00:00.000Z"
}
]Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
DELETE /api/v1/accounts/me/sessions/{id}
Revoke one of your own sessions.
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
idrequired | path | string | — |
curl example
curl -X DELETE "https://your-institute.example/api/v1/accounts/me/sessions/37386ae0-3738-7738-8386-37386ae03738" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/refresh
Rotate the refresh token (from the cookie) and issue a new access token.
curl example
curl -X POST "https://your-institute.example/api/v1/accounts/refresh" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
accessTokenrequired | string | — |
{
"accessToken": "string"
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/resend-verification
Resend the verification code (always 202, whether or not the email exists or is already verified).
Request body
| Name | Type | Constraints |
|---|---|---|
emailrequired | string (email) | — |
Example
{
"email": "ada.lovelace@example.com"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/resend-verification" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"email": "ada.lovelace@example.com"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/reset-password
Reset a password using a token from the forgot-password email. Clears any lockout (K-47).
Request body
| Name | Type | Constraints |
|---|---|---|
tokenrequired | string | ≥1 chars |
passwordrequired | string | ≥10 chars |
Example
{
"token": "string",
"password": "string"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/reset-password" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"token": "string",
"password": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
{
"ok": true
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/sign-in
Sign in with an email or username + password. Refuses ACCOUNT_EMAIL_UNVERIFIED until the address is verified.
Request body
| Name | Type | Constraints |
|---|---|---|
identifierrequired | string | ≥1 chars |
passwordrequired | string | ≥1 chars |
Example
{
"identifier": "string",
"password": "string"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/sign-in" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"identifier": "string",
"password": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
accessTokenrequired | string | — |
accountrequired | object | — |
{
"accessToken": "string",
"account": {
"id": "37386ae0-3738-7738-8386-37386ae03738",
"email": "ada.lovelace@example.com",
"username": "string",
"phone": "+15551234567",
"phoneVerified": true,
"locale": "ar",
"status": "active",
"emailVerified": true,
"signupIntent": "institute_owner",
"createdAt": "2026-03-02T09:00:00.000Z"
}
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/sign-up
Create an Institflow account and mail a 6-digit verification code.
Request body
| Name | Type | Constraints |
|---|---|---|
emailrequired | string (email) | — |
usernamerequired | string | — |
passwordrequired | string | ≥10 chars |
phone | string | — |
localerequired | enum: "ar" | "en" | "he" | — |
termsVersionrequired | enum: "2026-09-23" | — |
signupIntentrequired | enum: "institute_owner" | "student" | "guardian" | — |
Example
{
"email": "ada.lovelace@example.com",
"username": "string",
"password": "string",
"phone": "+15551234567",
"locale": "ar",
"termsVersion": "2026-09-23",
"signupIntent": "institute_owner"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/sign-up" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"email": "ada.lovelace@example.com",
"username": "string",
"password": "string",
"phone": "+15551234567",
"locale": "ar",
"termsVersion": "2026-09-23",
"signupIntent": "institute_owner"
}'Responses
| Name | Type | Constraints |
|---|---|---|
idrequired | string (uuid) | — |
emailrequired | string (email) | — |
usernamerequired | string | — |
phonerequired | string | null | — |
phoneVerifiedrequired | boolean | — |
localerequired | enum: "ar" | "en" | "he" | — |
statusrequired | enum: "active" | "disabled" | — |
emailVerifiedrequired | boolean | — |
signupIntentrequired | enum: "institute_owner" | "student" | "guardian" | null | null | — |
createdAtrequired | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"email": "ada.lovelace@example.com",
"username": "string",
"phone": "+15551234567",
"phoneVerified": true,
"locale": "ar",
"status": "active",
"emailVerified": true,
"signupIntent": "institute_owner",
"createdAt": "2026-03-02T09:00:00.000Z"
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
POST /api/v1/accounts/verify-email
Verify an email address with the 6-digit code sent at sign-up (5 attempts per code). Returns signupIntent for post-verify routing (docs/specs/phase17-unified-login.md §4).
Request body
| Name | Type | Constraints |
|---|---|---|
emailrequired | string (email) | — |
coderequired | string | — |
Example
{
"email": "ada.lovelace@example.com",
"code": "string"
}curl example
curl -X POST "https://your-institute.example/api/v1/accounts/verify-email" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"email": "ada.lovelace@example.com",
"code": "string"
}'Responses
| Name | Type | Constraints |
|---|---|---|
okrequired | enum: true | — |
signupIntentrequired | enum: "institute_owner" | "student" | "guardian" | null | null | — |
{
"ok": true,
"signupIntent": "institute_owner"
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.