Mojo UpDocs
API reference

Catalogue

GET/catalogue/v1

The teams, roles, skills and prompts the organisation publishes, for workbenches to pull into their templates. Tool servers (mcp), approved local models (model) and document templates are served only to a caller that asks for them with include. Supports If-None-Match.

Authorization

AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Query Parameters

include?string

Comma-separated extra kinds: mcp adds tool servers, model adds the approved local models (AIOE 0.37.0); any value adds document templates.

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Response Body

application/json

application/json

curl -X GET "https://example.com/catalogue/v1"
{  "version": 1,  "publishedAt": "string",  "entries": [    {      "id": "string",      "kind": "team",      "name": "string",      "summary": "string",      "version": "string",      "content": null,      "fit": {        "modelClass": "fast",        "suits": [          "string"        ],        "tools": [          "string"        ],        "stacks": [          "string"        ]      },      "delivery": "offered",      "files": {        "property1": "string",        "property2": "string"      },      "evaluation": {        "at": "string",        "deviceId": "string",        "deviceName": "string",        "contentDigest": "string",        "worker": "string",        "judge": "string",        "result": {          "worker": "string",          "judge": "string",          "tasks": [            {              "id": "string",              "withSkill": {                "passed": true,                "tokens": 0,                "ms": 0,                "sentence": "string"              },              "without": {                "passed": true,                "tokens": 0,                "ms": 0,                "sentence": "string"              },              "loaded": true            }          ],          "unrelated": [            {              "id": "string",              "loaded": true            }          ],          "necessity": "needed",          "retrieval": "right",          "verdict": "pass",          "sentence": "string"        },        "stale": true      },      "loads90d": 0,      "lastLoadedAt": "string",      "evaluating": {        "orderId": "string",        "deviceId": "string",        "deviceName": "string",        "issuedAt": "string",        "state": "pending",        "message": "string"      },      "status": "published",      "pinned": true,      "changedAt": "string",      "usedByTeams": [        "string"      ],      "scan": {        "at": "string",        "level": "clean",        "findings": [          {            "rule": "string",            "words": "string",            "where": "string",            "line": 1          }        ]      },      "verified": {        "at": "string",        "fingerprint": "string",        "deviceId": "string",        "deviceName": "string",        "tools": [          "string"        ],        "undeclared": [          "string"        ],        "missing": [          "string"        ],        "sentence": "string",        "stale": true      },      "verifying": {        "orderId": "string",        "deviceId": "string",        "deviceName": "string",        "issuedAt": "string",        "state": "pending",        "message": "string"      }    }  ]}
POST/catalogue/v1/usage

A device reports how many times each catalogue skill loaded, by the hour (AIOE 0.41.0). An entry the catalogue no longer holds is ignored, not refused.

Authorization

deviceToken
AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/catalogue/v1/usage" \  -H "Content-Type: application/json" \  -d '{    "loads": [      {        "entryId": "string",        "hour": "2019-08-24T14:15:22Z",        "loads": 0      }    ]  }'
{  "accepted": 0,  "ignored": 0}

Submit a design system

POST/catalogue/v1/submissions/design-system

A member sends a design-system zip (raw bytes, or a multipart file; at most 40 MB). It is checked and its files stored on arrival. An administrator, or anyone where members may publish, publishes it at once (201); otherwise it waits for review (202, its files held 30 days). A device token or a person's sign-in works.

Authorization

AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Request Body

TypeScript Definitions

Use the request body type in TypeScript.

body*file
Formatbinary

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/catalogue/v1/submissions/design-system"
{  "state": "published",  "id": "string"}
GET/catalogue/v1/design-systems/{id}/export.zip

The published system as the zip an administrator's export gives, which a team hub imports. Supports If-None-Match. Audited once per device (or person) per version.

Authorization

AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Path Parameters

id*string

The design system.

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Response Body

application/zip

application/json

application/json

curl -X GET "https://example.com/catalogue/v1/design-systems/string/export.zip"
"string"
GET/catalogue/v1/design-systems/{id}/checklist

The rules to review work against, for the version the catalogue serves (or an earlier kept version with version). They come from the system's component rules, then its voice, then the checklist lists in its reference files, each with an id (rule-1, voice-1, check-1) at most 200 in all. A device (a desktop or a node) or a person of the organisation can read it.

Authorization

AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Path Parameters

id*string

The design system.

Query Parameters

version?string

An earlier kept version. Absent, the version the catalogue serves.

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/catalogue/v1/design-systems/string/checklist"
{  "version": "string",  "rules": [    {      "id": "string",      "text": "string",      "detail": "string"    }  ]}

Record a design review

POST/catalogue/v1/design-systems/{id}/review

An agent, or a person, reports what it found when it reviewed work against the system's checklist. Send exactly one of html (the page, at most 2 MB; it is hashed and measured, never kept) and description (a screenshot or the work in words, at most 16 KiB; kept). checked lists the rule ids looked at (absent, every rule); a rule a finding names counts as checked. The review is kept with the version and shown to administrators beside it.

Authorization

AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Path Parameters

id*string

The design system.

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/catalogue/v1/design-systems/string/review" \  -H "Content-Type: application/json" \  -d '{    "findings": [      {        "rule": "string",        "note": "string"      }    ]  }'
{}
GET/catalogue/v1/design-systems/{id}/reviews

The reviews sent for the system, newest first.

Authorization

AuthorizationBearer <token>

A device access token from the device-code flow (aioe_at_…). A DPoP-bound token is sent as Authorization: DPoP <token> with a fresh DPoP proof on every request.

In: header

Path Parameters

id*string

The design system.

Query Parameters

version?string

Only reviews of this version.

limit?integer

How many to return. 20 by default, at most 100.

Range1 <= value <= 100
Default20

Header Parameters

X-Aioe-Organisation?string

Mojo Up AI Cloud only, with a person's access token: the id of the organisation the request is for. A person's session is not tied to one organisation, so each request names it. Device tokens already carry their organisation.

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/catalogue/v1/design-systems/string/reviews"
{  "reviews": [    {}  ]}