---
title: Robskan Developers
description: Robskan Developers — robskan.nl
canonical: https://robskan.nl/developers
formats:
  markdown: https://robskan.nl/developers.md
  text: https://robskan.nl/developers.txt
last-updated: 2026-11-01
---

# Robskan Developers

Public, anonymous read APIs for Robbie's portfolio and live Spotify listening. No API keys required — respect rate limits.

## Quickstart

```
curl https://robskan.nl/api/v1/health
curl https://robskan.nl/api/v1/profile
curl https://robskan.nl/api/v1/music/now-playing
curl https://robskan.nl/openapi.json
```

## Documentation

- [OpenAPI 3.1](https://robskan.nl/openapi.json)
- [auth.md](https://robskan.nl/auth.md) — agent authentication walkthrough
- [llms.txt](https://robskan.nl/llms.txt) — agent navigation index
- [plugin.json](https://robskan.nl/plugin.json) — Agent Plugins manifest
- [pricing.md](https://robskan.nl/pricing.md) — free public API and MCP
- [Cursor MCP example config](https://robskan.nl/.well-known/agent-configs/cursor-mcp.example.json)
- [wikidata-setup.md](https://robskan.nl/wikidata-setup.md) — entity linking for Is Agentic
- Publishing checklist: `docs/AGENT_PUBLISHING.md` in the repo
- npm: `@robskan/public-api`, CLI `npx @robskan/mcp-cli`
- MCP docs: https://robskan.nl/mcp/docs
- MCP product: https://robskan.nl/mcp/product

## Sandbox test mode

The **sandbox** base URL is `https://robskan.nl/sandbox`. Use **test mode** fixtures with the same `/api/v1/...` paths under that prefix (no production data):

```
curl https://robskan.nl/sandbox/api/v1/health
curl https://robskan.nl/sandbox/api/v1/profile
curl https://robskan.nl/sandbox/api/v1/music/now-playing
```

You can also send `?sandbox=true` or header `X-Robskan-Sandbox: 1` on `/api/v1/health`, `/api/v1/profile`, and `/api/v1/music/now-playing` to receive fixture JSON.

Legacy index: `https://robskan.nl/api/v1/sandbox` (OpenAPI server **Sandbox**). Responses include `X-Robskan-Environment: sandbox`.

## For agents

### Verify the API

`GET https://robskan.nl/api/v1/health` returns JSON with `status: "ok"` and links to OpenAPI.

### Public REST endpoints

| Method | Path | Purpose |
|--------|------|---------|
| GET | `/api/v1/health` | Liveness + discovery |
| GET | `/api/v1/profile` | Public profile + decimal age |
| GET | `/api/v1/music/now-playing` | Spotify snapshot |
| GET | `/api/v1/music/listening-summary` | Paginated listening summary |
| GET | `/api/v1/sandbox` | Sandbox / preview metadata |
| GET | `/api/v1/sandbox/profile` | Fixture profile (safe for tests) |
| GET | `/api/v1/sandbox/music/now-playing` | Fixture now-playing |
| POST | `/api/v1/batch` | Batch read-only GET (max 10) |
| POST | `/api/v1/jobs/nlweb-query` | Async site search (202 + poll) |

OpenAPI 3.1: https://robskan.nl/openapi.json

Errors: `application/problem+json` with `code`, `detail`, `hint`.

### Idempotency

Send **Idempotency-Key** on `POST /ask`, `POST /api/v1/batch`, and `POST /api/v1/jobs/nlweb-query`.

### MCP

| Server | URL |
|--------|-----|
| Product | https://robskan.nl/mcp/product |
| Documentation | https://robskan.nl/mcp/docs |

Registry card: https://robskan.nl/.well-known/mcp/server-card.json

### SDK & CLI

- npm SDK: `@robskan/public-api`
- MCP CLI: `npx @robskan/mcp-cli`
- stdio MCP: `npx @robskan/mcp-server`
- Python: `robskan-public-api`
- Go: `github.com/Robskan/robskan-public-api-go`
- Agent skills: see https://robskan.nl/.well-known/agent-skills/index.json
