Skip to content

Duplicates

NeuralRepo automatically detects potential duplicate ideas using semantic similarity. The duplicates API lets you review, dismiss, or merge detected pairs.

GET /api/v1/ideas/duplicates

Returns pairs of ideas that NeuralRepo has flagged as potential duplicates.

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

Response 200 OK

{
"duplicates": [
{
"id": 1,
"idea_id": 58,
"duplicate_of_id": 42,
"similarity_score": 0.94,
"status": "pending",
"created_at": "2026-03-22T14:00:00Z"
}
]
}

The similarity_score field is a score between 0 and 1 indicating how closely the two ideas match.

POST /api/v1/ideas/duplicates/:id/dismiss

Marks a duplicate pair as not-a-duplicate. The pair will no longer appear in the duplicates list.

Terminal window
curl -X POST https://neuralrepo.com/api/v1/ideas/duplicates/1/dismiss \
-H "X-API-Key: nrp_YOUR_KEY"

Response 200 OK

{
"success": true
}

POST /api/v1/ideas/duplicates/:id/merge

Merges the duplicate pair. One idea absorbs the other — the absorbed idea’s body, tags, links, and relations are folded into the surviving idea. The absorbed idea is archived.

Terminal window
curl -X POST https://neuralrepo.com/api/v1/ideas/duplicates/1/merge \
-H "X-API-Key: nrp_YOUR_KEY"

Response 200 OK

{
"success": true
}

A typical duplicate review workflow:

  1. List duplicates with GET /ideas/duplicates.
  2. For each pair, decide whether to dismiss (false positive) or merge (true duplicate).
  3. Dismissed pairs are hidden from future listings.
  4. Merged pairs consolidate content and archive the duplicate.
StatusMeaning
200 OKDuplicates listed, dismissed, or merged
401 UnauthorizedMissing or invalid auth
404 Not FoundDuplicate pair not found
409 ConflictMerge conflict (e.g., one idea already archived)