---
title: Developer portal
canonical: https://seminalysisgoesagentic.swarmlabs.eu/developers.md
---
# Developer portal

Everything you need to integrate SemiAnalysis as an agent.

## API overview

- Base URL: `/api/v1`
- OpenAPI 3.1 spec: [`/openapi.json`](/openapi.json)
- Auth: `Authorization: Bearer sa_demo_...` (demo) or OAuth2
- Scopes: `articles:read`, `mcp:connect`
- Errors: `{ "error": { "code", "message", "docs_url" } }`
- Pagination: `?page` / `?per_page` with `next`/`prev` links
- Rate limits: `X-RateLimit-Limit/Remaining/Reset` headers

## Self-serve demo key

Call the subscribe mock to get a key instantly:

```bash
curl -X POST https://seminalysisgoesagentic.swarmlabs.eu/api/v1/agent/subscribe -H "Idempotency-Key: demo-1"
```

## Sandbox

A full sandbox mirrors `/api/v1` at `/api/sandbox/v1/*` with `X-Sandbox: true`
and demo data. **This entire domain is the sandbox** — test freely, nothing is
billed. The sandbox is also listed in the OpenAPI `servers` array.

## MCP

Two MCP servers, both streamable-HTTP JSON-RPC 2.0:

- **Product**: `POST /mcp` — tools: `search_articles`, `get_article`, `get_pricing`
- **Docs**: `POST /mcp/docs` — tools: `search_docs`, `read_doc`

Server card: [`/.well-known/mcp/server-card.json`](/.well-known/mcp/server-card.json)

```bash
curl -X POST https://seminalysisgoesagentic.swarmlabs.eu/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
```

## Versioning & deprecation

- API path versioned (`/api/v1`). Breaking changes ship under `/api/v2`.
- Deprecations announced via the `Sunset` response header and the changelog on
  this page, with a minimum 90-day overlap.
- MCP protocol version advertised in `initialize` (`2025-03-26`).

## Auth guide

Full walkthrough: [`/auth.md`](/auth.md). OAuth metadata:
[`/.well-known/oauth-authorization-server`](/.well-known/oauth-authorization-server).
