Search a single collection by name
Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's collections form to search several at once.
/api/v1/search/{collection}Authorization
BearerAuth API key authentication. Pass your key in the Authorization header as Bearer sk_live_.... An X-API-Key: sk_live_... header is also accepted as an alternative. Keys are created in the Redpine Connect dashboard under Settings > API Keys.
Keys come in two kinds. A live key (sk_live_...) searches real content and spends credits. A sandbox key (sk_test_...) returns canned results at no cost and never reaches licensed content, so you can build and test an integration before spending anything. Sandbox responses have the same shape as live ones and every result is marked synthetic, so going live is a matter of swapping the key. Check the X-Billing-Mode response header to confirm which you are using.
In: header
Path Parameters
Name of the collection to search.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Same knobs as SearchRequest minus collection/collections — the target collection is the path segment, so a collection key in the body is rejected.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/search/string" \ -H "Content-Type: application/json" \ -d '{ "query": "string" }'{ "discovery": { "callout": { "kind": "add_payment_method", "message": "string" }, "intent": "sources", "metricsNote": null, "nextActions": [ { "action": "string", "hint": "string" } ], "queryId": "string", "scopes": [ { "collection": "string", "displayName": "string", "issnValuesSeen": 0, "items": [ { "hIndex": null, "impactFactor": null, "issnL": null, "issns": [ "string" ], "kind": "journal", "publisher": null, "title": "string" } ], "note": null, "offset": 0, "publishers": [ "string" ], "rankedBy": null, "sampledEntries": 0, "shown": 0, "titleOnly": 0, "total": 0, "truncatedInventory": false, "unranked": [ { "hIndex": null, "impactFactor": null, "issnL": null, "issns": [ "string" ], "kind": "journal", "publisher": null, "title": "string" } ], "unresolvedIssns": 0 } ], "text": "string", "topic": null }, "filterWarnings": null, "filtersApplied": null, "journalMetricExpansions": null, "latencyMs": 0, "queryId": "string", "results": [ { "collection": null, "id": "string", "metadata": null, "relevance": null, "text": "string" } ]}Assisted search (verified results only) POST
Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned. **Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine. Accepts the same `filters` as `/search/query`, applied to every internal search.
Preview search results without charging POST
Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota. Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full. Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.