Developer Documentation

Access the Proton Roadmap satire data programmatically. No Quasy_Complete and no strings attached.

Base URL: https://carlostkd.ch/roadmap/api.php
Supports: JSON, Plain Text, HTML
GET /api.php?action=stats

Get global statistics and a list of all available post IDs.

Parameters

ParamTypeDescription
actionstringMust be stats
formatstringjson (default), text, or html

Example Request

curl "https://carlostkd.ch/roadmap/api.php?action=stats&format=json"

Example Response (JSON)

{ "success": true, "data": { "total_posts": 7, "total_upvotes": 3, "total_downvotes": 0, "available_ids": [ {"id": 7, "title": "Proton Mail Finally Adds..."}, {"id": 8, "title": "Proton 2026 spring..."} ] } }
GET /api.php?action=posts

Retrieve a paginated list of all satirical posts.

Parameters

ParamTypeDescription
actionstringMust be posts
pageintPage number (default: 1)
per_pageintItems per page (max 50, default: 5)
formatstringjson, text, or html

Example Request

curl "https://carlostkd.ch/roadmap/api.php?action=posts&page=1&per_page=3&format=json"
GET /api.php?action=single

Get a specific post by ID.

Parameters

ParamTypeDescription
actionstringMust be single
idintThe post ID (required)
formatstringjson, text, or html

Example Request

curl "https://carlostkd.ch/roadmap/api.php?action=single&id=7&format=html"
Note: If you use format=html, the API returns a fully styled HTML page ready to be embedded in an iframe or displayed directly.
Error Handling

If an error occurs, the API returns a standard HTTP status code and a JSON or text error message.

{ "error": "Post with ID 999 not found. Use ?action=stats to see available data." }