On this page
A space brings a class or a group together around shared contents. The API exposes them read-only: the list returns the spaces the account owns; reading one space works for those where it has a role (owner, co-teacher, member). Members are never exposed, nor any data of another account.
The Space object
A space: a class or a group that shares contents. Members and their data are not exposed.
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Space identifier (UUID). |
name | string | Name of the space. |
description | string | null | Description, or null. |
color | string | null | Colour of the space icon (#RRGGBB), or null. |
icon | string | null | Icon name, or null. |
isArchived | boolean | True when the space is archived. |
createdAt | string (date-time) | Creation instant (ISO 8601, UTC). |
updatedAt | string (date-time) | Last update instant (ISO 8601, UTC). |
{
"id": "2c4e6a8b-0d1f-4357-9b1d-3f5a7c9e1b3d",
"name": "Biology — Year 12",
"description": "Shared study space.",
"color": "#10B981",
"icon": "flask",
"isArchived": false,
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-10-02T08:30:12.000Z"
}List the spaces
/v1/spacesScope spaces:readSpaces (classes, groups) owned by the account the API key acts for, most recent first, paginated. Members are not exposed.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
includeArchived | query | boolean | Include archived spaces (true), default false. |
limit | query | integerfrom 1 to 100 · default 20 | Number of items per page, 1 to 100 (default 20). |
cursor | query | stringat most 200 characters | Opaque cursor: the nextCursor of the previous page. Keep the same limit from one page to the next. |
Response 200
A page of spaces — A page of Space { data, nextCursor, hasMore }
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error or invalid_cursor |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
406 | not_acceptable — the Accept header excludes application/json |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl "https://api.memojin.com/v1/spaces?limit=20" \
-H "Authorization: Bearer $MEMOJIN_API_KEY"{
"data": [
{
"id": "2c4e6a8b-0d1f-4357-9b1d-3f5a7c9e1b3d",
"name": "Biology — Year 12",
"description": "Shared study space.",
"color": "#10B981",
"icon": "flask",
"isArchived": false,
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-10-02T08:30:12.000Z"
}
],
"nextCursor": null,
"hasMore": false
}Retrieve a space
/v1/spaces/{spaceId}Scope spaces:readOne space where the account the API key acts for has a role (owner, co-teacher, member). Answers 304 to a matching If-None-Match.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
spaceIdrequired | path | string (uuid) | Space identifier (UUID). |
Response 200
The space — A Space object
Errors
| HTTP | Meaning |
|---|---|
400 | validation_error — an identifier is not a UUID |
401 | invalid_api_key or revoked_api_key |
403 | insufficient_scope, account_suspended, live_not_enabled or forbidden |
404 | not_found |
406 | not_acceptable — the Accept header excludes application/json |
429 | rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers |
500 | internal_error |
503 | unavailable — see the Retry-After header |
curl "https://api.memojin.com/v1/spaces/2c4e6a8b-0d1f-4357-9b1d-3f5a7c9e1b3d" \
-H "Authorization: Bearer $MEMOJIN_API_KEY"{
"id": "2c4e6a8b-0d1f-4357-9b1d-3f5a7c9e1b3d",
"name": "Biology — Year 12",
"description": "Shared study space.",
"color": "#10B981",
"icon": "flask",
"isArchived": false,
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-10-02T08:30:12.000Z"
}