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.
Base URL
Section titled “Base URL”https://neuralrepo.com/api/v1All endpoints are served over HTTPS. HTTP requests are rejected.
Authentication
Section titled “Authentication”Authenticate every request with your API key in the X-API-Key header:
X-API-Key: nrp_your_api_key_hereGenerate an API key in Settings > API Keys on the web dashboard. Keys use the format nrp_ followed by 64 hexadecimal characters.
Quick Example: Create an Idea
Section titled “Quick Example: Create an Idea”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" }'const response = await fetch("https://neuralrepo.com/api/v1/ideas", { method: "POST", headers: { "Content-Type": "application/json", "X-API-Key": "nrp_your_api_key_here", }, body: JSON.stringify({ 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", }),});
const idea = await response.json();console.log(idea);import requests
response = requests.post( "https://neuralrepo.com/api/v1/ideas", headers={ "Content-Type": "application/json", "X-API-Key": "nrp_your_api_key_here", }, json={ "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", },)
idea = response.json()print(idea)Request Body
Section titled “Request Body”| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Idea title (1-500 characters) |
body | string | No | Idea body in plain text or Markdown |
tags | string[] | No | Array of tags (max 20) |
status | string | No | One of: captured, exploring, building, shipped, shelved. Defaults to captured |
Response
Section titled “Response”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"], "links": [], "relations": [], "processing": true, "created_at": "2026-03-24T14:22:00Z", "updated_at": "2026-03-24T14:22:00Z"}Error Responses
Section titled “Error Responses”The API returns standard HTTP status codes with a JSON error body:
{ "error": { "code": "validation_error", "message": "Title is required and must be between 1 and 500 characters." }}| Status Code | Meaning |
|---|---|
400 | Bad request — invalid or missing parameters |
401 | Unauthorized — missing or invalid API key |
403 | Forbidden — action not allowed (e.g., free tier limit reached) |
404 | Not found — idea or resource does not exist |
429 | Rate limited — daily request quota exceeded |
500 | Server error — try again or contact support |
Rate Limits
Section titled “Rate Limits”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. 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.