Skip to content
NeuralRepo
Get Support

REST API

The NeuralRepo REST API gives you full programmatic access to your ideas. Build custom integrations, automate idea capture from other tools, or create your own front-end — the API supports everything the web dashboard does.

https://neuralrepo.com/api/v1

All endpoints are served over HTTPS. HTTP requests are rejected.

Authenticate every request with your API key in the X-API-Key header:

X-API-Key: nrp_your_api_key_here

Generate an API key in Settings > API Keys on the web dashboard. Keys use the format nrp_ followed by 64 hexadecimal characters.

Terminal window
curl -X POST https://neuralrepo.com/api/v1/ideas \
-H "Content-Type: application/json" \
-H "X-API-Key: nrp_your_api_key_here" \
-d '{
"title": "Build a personal finance dashboard",
"body": "Track spending, budgets, and investments in one place. Use Plaid for bank integration.",
"tags": ["fintech", "side-project"],
"status": "exploring"
}'
FieldTypeRequiredDescription
titlestringYesIdea title (1-200 characters)
bodystringNoIdea body in plain text or Markdown
tagsstring[]NoArray of tags (max 20)
statusstringNoOne of: captured, exploring, building, shipped, shelved. Defaults to captured
sourcestringNoCapture channel to record: web, cli, claude-mcp, siri, email, api, shortcut, ios. Defaults to api
source_urlstringNoURL where the idea originated (max 2,000 characters)
parent_idnumberNoParent idea ID. Background processing turns this into a parent relation

Bodies are capped at 50,000 characters and titles at 200.

A successful request returns 201 Created with the full idea object:

{
"id": 42,
"title": "Build a personal finance dashboard",
"body": "Track spending, budgets, and investments in one place. Use Plaid for bank integration.",
"status": "exploring",
"source": "api",
"tags": ["fintech", "side-project"],
"processing": true,
"created_at": "2026-03-24T14:22:00Z",
"updated_at": "2026-03-24T14:22:00Z"
}

The API returns standard HTTP status codes with a JSON error body. Validation failures put the offending fields in error, one array of messages per field:

{
"error": {
"title": ["String must contain at most 200 character(s)"]
}
}
Status CodeMeaning
400Bad request — invalid or missing parameters
401Unauthorized — missing or invalid API key
403Forbidden — action not allowed (e.g., free tier limit reached)
404Not found — idea or resource does not exist
429Rate limited — daily request quota exceeded
500Server error — try again or contact support

Hitting the free plan’s idea limit returns a 403 with a machine-readable shape you can branch on:

{
"error": "idea_limit_reached",
"message": "You've captured 50 ideas on the free plan. Upgrade to Pro for unlimited ideas.",
"currentCount": 50,
"limit": 50,
"upgradeUrl": "https://neuralrepo.com/upgrade",
"featureRequestUrl": "https://support.neuralrepo.com/feature-requests"
}

Pro-only endpoints return 403 with pro_required: true and the feature name.

API endpoints are rate-limited per user per day. Free plans allow 100 requests per day, and Pro plans allow 10,000 requests per day, counted per UTC day and reset at midnight UTC. If you exceed this, the API returns 429 Too Many Requests. Rate limits apply to API key and Bearer token requests only — web UI sessions are exempt. Multiple keys share one quota, and MCP calls count against it too.