> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mesolab.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# API reference

> Base URLs, transport and the shape of every MESO endpoint.

## Base URL

MESO runs on two backends. Both expose the same function paths.

```bash Supabase Cloud theme={null}
https://<project-ref>.supabase.co/functions/v1
```

```bash Self-hosted theme={null}
https://api.mesolab.ai/functions/v1
```

> [!NOTE]
>
> The first-party application currently deploys against Supabase Cloud. The
> self-hosted stack on GKE serves the same contract.

## Shape of every call

```bash theme={null}
curl -X POST "$BASE_URL/<capability>" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ }'
```

Almost all endpoints are `POST`, take JSON, return JSON, and share the
[response envelope](https://docs.mesolab.ai/concepts/conventions.md#response-envelope). Two exceptions:
[`/whisper-transcribe`](https://docs.mesolab.ai/api-reference/assist/whisper-transcribe) takes
`multipart/form-data`, and several capability handlers answer a
`GET /health` sub-path.

## Endpoint names changed on 2026-08-18

> [!WARNING]
>
> The `-bedrock`, `generate-` and `-unified` suffixes were dropped when the
> capability handlers moved to the Vertex agents. The endpoints now carry the
> plain capability names used throughout this reference.
>
> **There are no compatibility aliases.** The old deployed instances were removed,
> so a client built against a pre-August 2026 endpoint list will get a `404`, not
> a redirect. Client and functions must ship together.

These names were deliberately left alone, because none of them carried a
provider or migration word: `account-lookup`, `admin-invite-user`, `ai-actions`,
`chat`, `ingest-teacher-document`, `recommend-as`, `recommend-lo`,
`redeem-signup-code`, `retrieval-proxy`, `unit-hero-image`,
`validate-signup-token`, `whisper-transcribe`.

> [!NOTE]
>
> There is no `/v1` path prefix and no version header. The endpoint name *is* the
> contract, which is why a rename is a breaking change rather than a deprecation.

## Endpoint index

> [card] [Unit planning](https://docs.mesolab.ai/api-reference/planning/unit-planning.md)

> [card] [Lesson planning](https://docs.mesolab.ai/api-reference/planning/lesson-planning.md)

> [card] [Rubric](https://docs.mesolab.ai/api-reference/assessment/rubric.md)

> [card] [Assessment](https://docs.mesolab.ai/api-reference/assessment/assessment.md)

> [card] [Resource](https://docs.mesolab.ai/api-reference/content/resource.md)

> [card] [Slides](https://docs.mesolab.ai/api-reference/content/slides.md)

> [card] [Hero image](https://docs.mesolab.ai/api-reference/content/unit-hero-image.md)

> [card] [Chat](https://docs.mesolab.ai/api-reference/assist/chat.md)

> [card] [AI actions](https://docs.mesolab.ai/api-reference/assist/ai-actions.md)

> [card] [Transcription](https://docs.mesolab.ai/api-reference/assist/whisper-transcribe.md)

> [card] [Recommend outcomes](https://docs.mesolab.ai/api-reference/curriculum/recommend-lo.md)

> [card] [Recommend assessments](https://docs.mesolab.ai/api-reference/curriculum/recommend-as.md)

> [card] [Document ingestion](https://docs.mesolab.ai/api-reference/documents/ingest-teacher-document.md)

> [!WARNING]
>
> MESO does not currently offer a public, self-serve API programme. These endpoints
> back the first-party application and are documented here for integration
> partners and publishers working with us directly. Contact
> [contact@mesolab.ai](mailto:contact@mesolab.ai) to discuss access.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.