The Cell Line Verifier API is the easiest way to automate cell line extraction from PDFs
within your own workflow. The daily usage limit is indexed to that of your online CLV
account, which can be increased upon request. Please note that this service is running on
the free-tier data sharing plan offered by OpenAI. So please do not input any sensitive
data, or anything that you're not worth sharing with OpenAI.
To get started, click on Generate API key in your account settings and follow the instructions below.
Making a request
The only endpoint intended for external use is api/analyse, making the base URL:
https://cell-line-verifier.com/api/analyse
You can test the endpoint and your API key with a curl request. Send your key as a Bearer token in the Authorization header,
and upload your PDF as multipart/form-data:
curl https://cell-line-verifier.com/api/analyse -H "Authorization: Bearer YOUR_API_KEY" -F "pdfs=@/path/to/paper.pdf"
Please note that requests are processed one at a time per account, and only one PDF can be sent per request. If you send a second request while one is still running, it will be rejected.
Response format
On success, every request returns the same object:
{
"tool_version": "v1",
"filename": "test_paper_1.pdf",
"extracted": ["AGS", "HT-22", "MKN45", "MKN47", "MNK45", "SGC-7901"],
"verified": [["AGS", "CVCL_0139"], ["HT-22", "CVCL_0321"], ["MKN45", "CVCL_0434"]],
"problematic": [["SGC-7901", "CVCL_0520"]],
"proprietary": ["SKBR-3/Tr", "MHCC97/SR"],
"unverifiable": ["MKN47", "MNK45"]
}
| Field | Description |
tool_version | The extraction pipeline version used for this file (only v1 is available for now) |
filename | The name of the uploaded file |
extracted | Every cell line name found in the text, before verification |
verified | [name, CVCL accession] pairs confirmed against Cellosaurus |
problematic | [name, CVCL accession] pairs flagged as problematic (e.g. contaminated, misidentified) |
proprietary | Names identified as proprietary/self-derived lines, based on an identifiable name |
unverifiable | Names that could not be matched against Cellosaurus |
Please note that cell lines classified as proprietary or unverifiable might require further verifications as this tool can make mistakes.
Python code example
Here's a Python example. Wrap this in a loop to process multiple files sequentially.
import os
import requests
API_KEY = os.environ["CLV_API_KEY"]
def analyse_pdf(path, tool_version="v1"):
with open(path, "rb") as f:
r = requests.post("https://cell-line-verifier.com/api/analyse",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"pdfs": (os.path.basename(path), f, "application/pdf")},
data={"tool_version": tool_version},
timeout=30,)
r.raise_for_status()
return r.json()
print(analyse_pdf("test_paper_1.pdf"))
The same process can be repeated in the programming language of your choice.