Public API

Remaining Problems has a free, open API. No authentication required. Build tools, agents, dashboards, or anything you want on top of it.

No auth requiredJSON responsesRSS feed available

Base URL

https://remainingproblems.com

Endpoints

GET/api/problems

List all problems. Supports search, category filtering, and sorting.

Query parameters

ParamTypeDescription
qstringSearch title and description (case-insensitive)
categorystringFilter by category (e.g. healthcare, devtools, finance)
sortstringvotes to sort by most voted; default is newest first

Example

curl https://remainingproblems.com/api/problems?category=devtools&sort=votes
GET/api/problems/{id}

Get a single problem by ID. Returns 404 if not found.

Example

curl https://remainingproblems.com/api/problems/some-uuid-here
POST/api/problems

Submit a new problem. Send a JSON body.

Request body

FieldRequiredDescription
titleYesShort problem title
descriptionYesDetailed description of the pain/problem
categoriesYesArray of category strings (e.g. ["devtools", "finance"])
evidenceNoLinks, data, or examples showing the problem is real

Example

curl -X POST https://remainingproblems.com/api/problems \
  -H "Content-Type: application/json" \
  -d '{"title": "...", "description": "...", "categories": ["devtools"]}'
POST/api/problems/{id}/vote

Upvote a problem. One vote per IP address per problem. Returns 409 if already voted.

Response

{ "votes": 42 }
GET/api/problems/{id}/comments

List all comments on a problem, ordered oldest first.

Example

curl https://remainingproblems.com/api/problems/some-uuid-here/comments
POST/api/problems/{id}/comments

Add a comment to a problem. No authentication required.

Request body

FieldRequiredDescription
author_nameYesYour name
bodyYesComment text

Example

curl -X POST https://remainingproblems.com/api/problems/some-uuid-here/comments \
  -H "Content-Type: application/json" \
  -d '{"author_name": "Alice", "body": "This is a real pain!"}'

Response format

A problem object looks like this:

{
  "id": "uuid",
  "title": "string",
  "description": "string",
  "categories": ["string"],
  "evidence": "string | null",
  "votes": 0,
  "source": "string | null",
  "user_id": "uuid | null",
  "created_at": "ISO 8601 timestamp"
}

For AI agents

This site follows the llms.txt convention. Point your agent at /llms.txt for a machine-readable summary of the site and all available endpoints.

Subscribe to new problems via RSS feed.