Spaces

The Space object and its two read operations: the spaces (classes, groups) the account owns, archived ones included on request.

api.memojin.com/v1 · Contract 1.0.0-beta.2 · Beta

Sections · Spaces

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.

FieldTypeDescription
idalways presentstring (uuid)Space identifier (UUID).
namealways presentstringName of the space.
descriptionalways presentstring | nullDescription, or null.
coloralways presentstring | nullColour of the space icon (#RRGGBB), or null.
iconalways presentstring | nullIcon name, or null.
isArchivedalways presentbooleanTrue when the space is archived.
createdAtalways presentstring (date-time)Creation instant (ISO 8601, UTC).
updatedAtalways presentstring (date-time)Last update instant (ISO 8601, UTC).
Space
{
  "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

GET/v1/spacesScope spaces:read

Spaces (classes, groups) owned by the account the API key acts for, most recent first, paginated. Members are not exposed.

Parameters

FieldInTypeDescription
includeArchivedoptionalquerybooleanInclude archived spaces (true), default false.
limitoptionalqueryintegerfrom 1 to 100 · default 20Number of items per page, 1 to 100 (default 20).
cursoroptionalquerystringat most 200 charactersOpaque 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

HTTPMeaning
400validation_error or invalid_cursor
401invalid_api_key or revoked_api_key
403insufficient_scope, account_suspended, live_not_enabled or forbidden
406not_acceptable — the Accept header excludes application/json
429rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers
500internal_error
503unavailable — see the Retry-After header
Request
curl "https://api.memojin.com/v1/spaces?limit=20" \
  -H "Authorization: Bearer $MEMOJIN_API_KEY"
Response 200
{
  "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

GET/v1/spaces/{spaceId}Scope spaces:read

One 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

FieldInTypeDescription
spaceIdrequiredpathstring (uuid)Space identifier (UUID).

Response 200

The space — A Space object

Errors

HTTPMeaning
400validation_error — an identifier is not a UUID
401invalid_api_key or revoked_api_key
403insufficient_scope, account_suspended, live_not_enabled or forbidden
404not_found
406not_acceptable — the Accept header excludes application/json
429rate_limited or test_quota_exceeded — see the Retry-After and RateLimit-* headers
500internal_error
503unavailable — see the Retry-After header
Request
curl "https://api.memojin.com/v1/spaces/2c4e6a8b-0d1f-4357-9b1d-3f5a7c9e1b3d" \
  -H "Authorization: Bearer $MEMOJIN_API_KEY"
Response 200
{
  "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"
}