Digitalyser.io for developers
Guides

Quickstart

From nothing to a first authenticated call. Start with the parts that need no credential.

Pick the path that matches what you are building. All three start with calls you can make right now, without an account.

Step 1 — Prove the endpoint is there

Protocol discovery is public. These two calls need no credential and tell you everything a client needs to authorise itself.

curl https://app.digitalyser.io/.well-known/oauth-protected-resource/api/mcp
{
  "resource": "https://app.digitalyser.io/api/mcp",
  "authorization_servers": ["https://app.digitalyser.io"]
}
curl https://app.digitalyser.io/.well-known/oauth-authorization-server
{
  "authorization_endpoint": "https://app.digitalyser.io/api/agent/oauth/authorize",
  "token_endpoint": "https://app.digitalyser.io/api/agent/oauth/token",
  "code_challenge_methods_supported": ["S256"]
}

Step 2 — See what a refusal looks like

Call the endpoint with a credential it cannot recognise. This is worth doing on purpose: the refusal is the most informative response the API produces, and your client should handle it.

curl -i -X POST https://app.digitalyser.io/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Authorization: Bearer not-a-real-token' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"quickstart","version":"1"}}}'

You get 401 with a WWW-Authenticate header pointing back at the resource metadata from step 1. That header is the whole handshake: a conforming client reads it and starts the authorisation flow without being told where to go.

Step 3 — Pick your path

What comes next

Was this page helpful?

On this page