Client libraries
The Manabu2 API is a plain HTTPS API that exchanges JSON. You can call it from the standard HTTP client in any language.
There's no official SDK package today. If you want a typed client, generate one from the OpenAPI spec.
1. OpenAPI spec and reference
The API is published as an OpenAPI spec.
- OpenAPI spec (JSON): https://api.manabu2.com/openapi/v1.json
- Interactive API reference: https://api.manabu2.com/scalar/v1
■ Generating a client from the spec
# .NET (NSwag) nswag openapi2csclient /input:https://api.manabu2.com/openapi/v1.json /output:Manabu2Client.cs # TypeScript (openapi-typescript) npx openapi-typescript https://api.manabu2.com/openapi/v1.json -o manabu2.d.ts # Python (openapi-python-client) openapi-python-client generate --url https://api.manabu2.com/openapi/v1.json
These are examples of common open-source generators; Manabu2 doesn't provide or maintain them.
2. Calling it from an HTTP client
Use an API key for server-to-server integrations, and an OAuth access token for apps that run on a user's device.
C# (.NET)
using var http = new HttpClient { BaseAddress = new Uri("https://api.manabu2.com/") };
http.DefaultRequestHeaders.Add("X-Api-Key", Environment.GetEnvironmentVariable("MANABU2_API_KEY"));
var courses = await http.GetStringAsync("api/v1/courses");
JavaScript / TypeScript
const res = await fetch("https://api.manabu2.com/api/v1/courses", {
headers: { Authorization: `Bearer ${accessToken}` },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const courses = await res.json();
Python
import os, requests
res = requests.get(
"https://api.manabu2.com/api/v1/courses",
headers={"X-Api-Key": os.environ["MANABU2_API_KEY"]},
timeout=30,
)
res.raise_for_status()
courses = res.json()
Load keys from environment variables or a secret manager; don't write them into source code.
3. MCP (for AI assistants)
An MCP-capable AI assistant can connect to Manabu2 by adding this URL:
https://api.manabu2.com/mcp
On first connection the user goes through OAuth sign-in and a consent screen, and the assistant then acts within that user's own permissions. Connecting with an API key also works.
4. Errors and retries
- Errors come back as RFC 7807 problem details (title, status, detail).
- On 429, wait the number of seconds in the Retry-After header before retrying.
- Add an Idempotency-Key header to a write request and a resend with the same key returns the original response, so nothing is recorded twice.
Next: REST API docs →