Roman Slack API

This is the developer portal for the Roman Slack Portfolio API. Everything here is read-only, public, and served over plain HTTPS. No API key, sign-up, or sandbox provisioning is required: the live endpoints are the sandbox.

Quickstart

List Roman Slack's projects as JSON:

curl -s https://romanslack.com/projects.json

Query the portfolio through the MCP server (Streamable HTTP):

npx @modelcontextprotocol/inspector https://romanslack.com/mcp

Fetch the agent-oriented site overview:

curl -s https://romanslack.com/llms.txt

REST / JSON data API

Machine-readable description: /openapi.json (OpenAPI 3.1). All endpoints are HTTP GET and return application/json.

Command-line tool (CLI)

The official romanslack CLI wraps the same read-only endpoints so agents and developers can script against the portfolio without writing HTTP calls. Zero dependencies; no API key.

npx romanslack projects --limit 5
npx romanslack search "reinforcement learning"
npx romanslack project 1 --json
npx romanslack hobbies

Source and install instructions: cli/ on GitHub.

Versioning and deprecation

This is API version 1. Every resource is available both unversioned and under the stable /v1 base path; the two are identical aliases.

MCP server

A read-only Model Context Protocol server exposes the same portfolio data as callable tools.

Authentication

The data API and the MCP server are open by default because everything served is public portfolio data. When bearer auth is enabled, agents authenticate with OAuth 2.1. Details and the agent runbook:

Error responses

Unknown API paths and failures return a real HTTP 4xx or 5xx status with a typed JSON error object (documented as the Error schema in /openapi.json) so agents can parse and recover:

{
  "error": {
    "code": "not_found",
    "status": 404,
    "message": "No resource exists at /api/unknown.",
    "hint": "This path is not part of the site. Check the OpenAPI spec ...",
    "documentation": "https://romanslack.com/developers",
    "openapi": "https://romanslack.com/openapi.json",
    "sitemap": "https://romanslack.com/sitemap.xml",
    "llms": "https://romanslack.com/llms.txt"
  }
}

Machine-readable files

Contact

Questions about the API or the portfolio: contact Roman Slack or email romanslack1@gmail.com.