SDK status
Choose the stable REST API or evaluate source-only preview clients without assuming registry availability.
Choose the stable REST API or evaluate source-only preview clients without assuming registry availability.
The versioned REST API is the supported public integration surface today. JavaScript, Python, and framework client source exists in the product repository, but the packages are not currently published to npm or PyPI.
Availability#
| Client | Status | How to use it |
|---|---|---|
| REST over HTTPS | Available | Call https://makeagent.fast/api/v1 from any server HTTP client |
| OpenAPI document | Available | Download /api/openapi.json and inspect it before generating a client |
@make-agent-fast/sdk | Source preview — not on npm | Do not add this import to a production project until a registry release is linked here |
makeagentfast Python package | Source preview — not on PyPI | Use requests, httpx, or the Python standard library until a PyPI release is linked here |
| React, Vue, Svelte adapters | Source preview — not on npm | Prefer the documented script-loader pattern for the framework |
| Web component | Source preview — not on npm | Prefer the standard embed.js loader |
JavaScript without an SDK#
const response = await fetch("https://makeagent.fast/api/v1/sites?limit=100", {
headers: {
Authorization: `Bearer ${process.env.MAF_API_KEY}`,
Accept: "application/json",
},
});
const body = await response.json();
if (!response.ok) {
console.error(body.error.code, body.error.request_id);
throw new Error(`Make Agent Fast request failed (${response.status})`);
}
for (const site of body.data) console.log(site.id, site.title);Keep the API key on the server. A React, Vue, or Svelte browser bundle should call your own backend or install the public embed loader; it should not call the management API with a secret.
Python without an SDK#
import json
import os
import urllib.request
request = urllib.request.Request(
"https://makeagent.fast/api/v1/sites?limit=100",
headers={
"Authorization": f"Bearer {os.environ['MAF_API_KEY']}",
"Accept": "application/json",
},
)
with urllib.request.urlopen(request, timeout=20) as response:
payload = json.load(response)
for site in payload["data"]:
print(site["id"], site["title"])Catch urllib.error.HTTPError in production and parse its JSON body using the stable error envelope.
Generated clients#
OpenAPI generation is useful only when the document contains the operations and schemas your application depends on. Pin the downloaded specification, generate into a reviewable directory, and inspect every diff before upgrading.
curl --fail-with-body https://makeagent.fast/api/openapi.json \
--output make-agent-fast.openapi.jsonDo not automatically regenerate and deploy a client from the live URL. A new additive field should not break a client, but generator behavior and generated method names can still change.
What a public SDK release must include#
Before any preview client is marked available, it must have:
- A public registry page and immutable semantic version.
- Installation, upgrade, and supported-runtime instructions.
- Typed request and response models generated from the complete API contract.
- Structured errors that retain the HTTP status and request ID.
- Pagination helpers that treat cursors as opaque.
- Explicit idempotency-key support for mutations.
- CI tests against the current
/api/v1contract and a published changelog.
Until those conditions are met, use the REST examples in API quickstart and API recipes.