Skip to content

Tags

Tags let you categorize and filter ideas. Each tag has a name, an optional color, and a count of associated ideas.

GET /api/v1/tags

Returns all tags for the authenticated user, including the number of ideas associated with each tag.

Terminal window
curl https://neuralrepo.com/api/v1/tags \
-H "X-API-Key: nrp_YOUR_KEY"

Response 200 OK

{
"tags": [
{
"id": 1,
"name": "feature-request",
"color": "#4f46e5",
"idea_count": 12
},
{
"id": 2,
"name": "bug",
"color": "#dc2626",
"idea_count": 5
}
]
}

GET /api/v1/tags/similar

Find semantically similar tags using vector embeddings.

ParameterTypeRequiredDescription
tagstringYesTag name to find similar tags for
limitnumberNoMax results (default 5, max 20)
Terminal window
curl "https://neuralrepo.com/api/v1/tags/similar?tag=frontend&limit=5" \
-H "X-API-Key: nrp_YOUR_KEY"

Response 200 OK

{
"similar": [
{ "name": "ui", "idea_count": 8, "similarity": 0.82 },
{ "name": "react", "idea_count": 5, "similarity": 0.76 },
{ "name": "css", "idea_count": 3, "similarity": 0.71 }
]
}

If the tag has no embedding yet, the response includes "message": "Tag has no embedding yet".

POST /api/v1/tags

FieldTypeRequiredDescription
namestringYes1-50 characters, must be unique
colorstringNoHex color in #rrggbb format
Terminal window
curl -X POST https://neuralrepo.com/api/v1/tags \
-H "X-API-Key: nrp_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "backend", "color": "#059669"}'

Response 201 Created

{
"tag": {
"id": 3,
"name": "backend",
"color": "#059669",
"created_at": "2026-03-24T09:00:00Z"
}
}

PATCH /api/v1/tags/:id

Update the name, color, or both. Only provided fields are changed.

FieldTypeRequiredDescription
namestringNo1-50 characters
colorstringNoHex color in #rrggbb format
Terminal window
curl -X PATCH https://neuralrepo.com/api/v1/tags/3 \
-H "X-API-Key: nrp_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"color": "#0ea5e9"}'

Response 200 OK

{
"tag": {
"id": 3,
"name": "backend",
"color": "#0ea5e9"
}
}

DELETE /api/v1/tags/:id

Removes the tag. Ideas that had this tag will have it detached but are not otherwise affected.

Terminal window
curl -X DELETE https://neuralrepo.com/api/v1/tags/3 \
-H "X-API-Key: nrp_YOUR_KEY"

Response 200 OK

{
"success": true
}
FieldTypeDescription
idnumberUnique tag identifier
namestringDisplay name
colorstring | nullHex color code
idea_countnumberNumber of ideas using this tag
StatusMeaning
200 OKSuccessful read, update, or delete
201 CreatedTag created
400 Bad RequestValidation error (name too long, invalid color)
401 UnauthorizedMissing or invalid auth
404 Not FoundTag not found
409 ConflictTag with that name already exists