API reference
Reference papers
Method papers and papers that used CogniChem tools: search them, get one paper, or list the papers linked to a job type or to another paper. Titles, venues, and licensed abstracts; no full text.
On this page
Search reference papers
GET/api/v1/reference/papers
API key or token
Ranked search over method papers, papers that used CogniChem tools, and general papers (title, venue, licensed abstract). No full text.
Parameters
| Name | Type | Description |
|---|---|---|
qrequired | string | Limits: |
paper_set | string | One of: |
limit | integer | Default: |
Example request
curl "https://api.cognichem.com/api/v1/reference/papers?q=pKa%20protonation" \
-H "X-Api-Key: $COGNICHEM_API_KEY"from cognichem_client import CogniChem
client = CogniChem.from_env()
result = client.reference.search("pKa protonation")
print(result)Python SDK pip install cognichem-client (1.1 or later). from_env() reads COGNICHEM_API_KEY.
Responses
Successful Response · application/json · ReferenceSearchResponse
| Field | Type | Description |
|---|---|---|
mode | string |
Default: |
papers[]required | ReferencePaper[] | |
papers.abstract | string | null | Only on get, and only when stored under CC0 / CC BY (Europe PMC). Show it with the title, authors, |
papers.abstract_license | string | null | One of: |
papers.abstract_license_url | string | null | Creative Commons page for |
papers.abstract_notice | string | null | How the stored abstract differs from the original (only on get). |
papers.abstract_source | string | null | "Europe PMC" when an abstract is stored. |
papers.authors[] | string[] | First authors (capped). |
papers.authors_total | integer | Default: |
papers.doi | string | null | |
papers.idrequired | string | |
papers.oa_url | string | null | |
papers.paper_setrequired | string | One of: |
papers.retrieved_at | string | null | |
papers.sourcerequired | string | |
papers.titlerequired | string | |
papers.url | string | null | Public landing link (DOI, else open-access or OpenAlex). |
papers.venue | string | null | |
papers.year | integer | null | |
provenancerequired | ReferenceProvenance | Where an answer came from. |
provenance.entity_ids[] | string[] | |
provenance.outbound[] | map<string, string>[] | |
provenance.source | "cognichem_reference_kg" | Default: |
queryrequired | string |
Errors are RFC 7807 problem details (application/problem+json) with status, title, detail, request_id, and a retryability hint (validation, auth, quota, conflict, upstream, timeout, or terminal). Handling errors
| Status | When |
|---|---|
400 | Empty query. |
401 | Missing or invalid credentials. |
402 | Wallet cannot cover the Assistant turn hold. |
403 | Authenticated but not allowed to access the resource. |
404 | Resource not found or not owned by the user. |
409 | Conflict (e.g. idempotency key reuse with a different body). |
413 | Request body or workflow spec exceeds size caps. |
422 | Request body or query failed validation. |
429 | Rate limit exceeded. |
500 | Unexpected server error. |
503 | Dependency temporarily unavailable. |
Get one reference paper
GET/api/v1/reference/papers/{paper_id}
API key or token
Paper metadata, its links (method_of / uses_tool Product KG ids, cites papers) and how many KG papers cite it. The abstract is present only when stored under CC0 / CC BY / CC BY-SA, with its licence.
Parameters
| Name | Type | Description |
|---|---|---|
paper_idrequired | string |
Example request
curl "https://api.cognichem.com/api/v1/reference/papers/PAPER_ID" \
-H "X-Api-Key: $COGNICHEM_API_KEY"from cognichem_client import CogniChem
client = CogniChem.from_env()
result = client.reference.get("PAPER_ID")
print(result)Python SDK pip install cognichem-client (1.1 or later). from_env() reads COGNICHEM_API_KEY.
Responses
Successful Response · application/json · ReferencePaperResponse
| Field | Type | Description |
|---|---|---|
cited_by_count | integer | Papers in the reference KG that cite this one. Default: |
edges[]required | ReferenceEdge[] | |
edges.dst_idrequired | string | |
edges.dst_kindrequired | string | One of: |
edges.kindrequired | string | One of: |
edges.src_paper_idrequired | string | |
paperrequired | ReferencePaper | One paper: public metadata and links. No full text in v1. |
paper.abstract | string | null | Only on get, and only when stored under CC0 / CC BY (Europe PMC). Show it with the title, authors, |
paper.abstract_license | string | null | One of: |
paper.abstract_license_url | string | null | Creative Commons page for |
paper.abstract_notice | string | null | How the stored abstract differs from the original (only on get). |
paper.abstract_source | string | null | "Europe PMC" when an abstract is stored. |
paper.authors[] | string[] | First authors (capped). |
paper.authors_total | integer | Default: |
paper.doi | string | null | |
paper.idrequired | string | |
paper.oa_url | string | null | |
paper.paper_setrequired | string | One of: |
paper.retrieved_at | string | null | |
paper.sourcerequired | string | |
paper.titlerequired | string | |
paper.url | string | null | Public landing link (DOI, else open-access or OpenAlex). |
paper.venue | string | null | |
paper.year | integer | null | |
provenancerequired | ReferenceProvenance | Where an answer came from. |
provenance.entity_ids[] | string[] | |
provenance.outbound[] | map<string, string>[] | |
provenance.source | "cognichem_reference_kg" | Default: |
Errors are RFC 7807 problem details (application/problem+json) with status, title, detail, request_id, and a retryability hint (validation, auth, quota, conflict, upstream, timeout, or terminal). Handling errors
| Status | When |
|---|---|
400 | Malformed paper id. |
401 | Missing or invalid credentials. |
402 | Wallet cannot cover the Assistant turn hold. |
403 | Authenticated but not allowed to access the resource. |
404 | Unknown paper id. |
409 | Conflict (e.g. idempotency key reuse with a different body). |
413 | Request body or workflow spec exceeds size caps. |
422 | Request body or query failed validation. |
429 | Rate limit exceeded. |
500 | Unexpected server error. |
503 | Dependency temporarily unavailable. |
List papers linked to a job type or paper
GET/api/v1/reference/neighborhood
API key or token
One hop: for node_id the papers that are its method or that used it; for paper_id the papers it cites and that cite it.
Parameters
| Name | Type | Description |
|---|---|---|
node_id | string | Limits: |
paper_id | string | Limits: |
kind | string | One of: |
limit | integer | Default: |
Example request
curl "https://api.cognichem.com/api/v1/reference/neighborhood?node_id=job_type%3Aprotein-prepare" \
-H "X-Api-Key: $COGNICHEM_API_KEY"from cognichem_client import CogniChem
client = CogniChem.from_env()
result = client.reference.neighborhood(node_id="job_type:protein-prepare")
print(result)Python SDK pip install cognichem-client (1.1 or later). from_env() reads COGNICHEM_API_KEY.
Responses
Successful Response · application/json · ReferenceNeighborhoodResponse
| Field | Type | Description |
|---|---|---|
centerrequired | string | |
edges[]required | ReferenceEdge[] | |
edges.dst_idrequired | string | |
edges.dst_kindrequired | string | One of: |
edges.kindrequired | string | One of: |
edges.src_paper_idrequired | string | |
papers[]required | ReferencePaper[] | |
papers.abstract | string | null | Only on get, and only when stored under CC0 / CC BY (Europe PMC). Show it with the title, authors, |
papers.abstract_license | string | null | One of: |
papers.abstract_license_url | string | null | Creative Commons page for |
papers.abstract_notice | string | null | How the stored abstract differs from the original (only on get). |
papers.abstract_source | string | null | "Europe PMC" when an abstract is stored. |
papers.authors[] | string[] | First authors (capped). |
papers.authors_total | integer | Default: |
papers.doi | string | null | |
papers.idrequired | string | |
papers.oa_url | string | null | |
papers.paper_setrequired | string | One of: |
papers.retrieved_at | string | null | |
papers.sourcerequired | string | |
papers.titlerequired | string | |
papers.url | string | null | Public landing link (DOI, else open-access or OpenAlex). |
papers.venue | string | null | |
papers.year | integer | null | |
provenancerequired | ReferenceProvenance | Where an answer came from. |
provenance.entity_ids[] | string[] | |
provenance.outbound[] | map<string, string>[] | |
provenance.source | "cognichem_reference_kg" | Default: |
Errors are RFC 7807 problem details (application/problem+json) with status, title, detail, request_id, and a retryability hint (validation, auth, quota, conflict, upstream, timeout, or terminal). Handling errors
| Status | When |
|---|---|
400 | Pass exactly one well-formed id. |
401 | Missing or invalid credentials. |
402 | Wallet cannot cover the Assistant turn hold. |
403 | Authenticated but not allowed to access the resource. |
404 | Resource not found or not owned by the user. |
409 | Conflict (e.g. idempotency key reuse with a different body). |
413 | Request body or workflow spec exceeds size caps. |
422 | Request body or query failed validation. |
429 | Rate limit exceeded. |
500 | Unexpected server error. |
503 | Dependency temporarily unavailable. |