All genes

For manufacturers, registries and data partners

The portal and the API carry the metadata associated with the antibody testing, including the recommendations and the published figures behind them. If you sell antibodies, run a registry, or build tools that cite them, you can show that data beside the products it is about.

The data portal A web page. Browse, filter and download, in a browser.
The API JSON over HTTPS, for keeping your own catalogue in step with ours automatically.

Both show the same data. The portal needs a key; two of the API's feeds do not.

Reading the data needs no key

Two endpoints answer anyone, from anywhere, with no sign-up and nothing to ask for:

curl https://onlygoodantibodies.co.uk/api/v1/genes/ curl https://onlygoodantibodies.co.uk/api/v1/antibodies/

They carry the same knockout-controlled results the gene pages show. Paste either address into a browser if you would rather look than script. Fair use is 30 requests a minute and 300 an hour, and replies can be cached for five minutes.

What a key is for

Keys are issued per organisation, and are worth having if you sync regularly. A key raises your rate limit, filters the feed to your own products, and returns only what has changed since your last sync. It also opens the data portal and the per-gene competitor view.

Email us saying who you are and what you would like to do with the data, and we will set one up.

The data portal

Go to onlygoodantibodies.co.uk/portal/ and paste in your key. Nothing to install.

The API

Base URL https://onlygoodantibodies.co.uk/api/v1/. The two read feeds need no key, as above; everything else does. Send yours as a header on every request:

curl -H "X-API-Key: YOUR_KEY" \ https://onlygoodantibodies.co.uk/api/v1/status/

Send it as a header, not in the address: keys in URLs end up in server logs and browser history.

The endpoints you are most likely to want

/download/ Everything in one zip — every published figure plus a manifest.csv naming each one. Redirects to a prepared archive, so the download is resumable and comes straight from the CDN. Add ?gene=ACE for one gene.
/manifest/ Every published figure you may download, as a URL with its gene, catalogue number, RRID, supplier, application and recommendation. Also available as CSV, or as a plain list of URLs for wget. ?gene=ACE narrows it to one gene, for a partial mirror.
/antibodies/ The antibody records themselves, with metadata and per-application recommendations. No key needed.
/genes/ Every gene with characterisation data, and how much. No key needed.
/status/ What your account can see, and the dataset totals. The quickest way to check a key works.

Bulk image downloads

One request does it. Include -L — the endpoint redirects to a prepared archive.

# everything, one file curl -L -H "X-API-Key: YOUR_KEY" \ https://onlygoodantibodies.co.uk/api/v1/download/ -o oga-figures.zip

If you would rather fetch the figures yourself — to mirror them, to pull only what changed, or to run them through your own pipeline — the manifest contains no image data and every figure has a permanent public address.

# every image URL, one per line curl -H "X-API-Key: YOUR_KEY" \ "https://onlygoodantibodies.co.uk/api/v1/manifest/?format=urls" -o urls.txt wget -i urls.txt -P images/

Send a User-Agent identifying your client when you fetch images. Some libraries' defaults are blocked, and the error you get back reads like a permissions problem.

Picking up only what you do not already have

Each manifest carries an ETag. Send it back next time as If-None-Match and, if nothing has changed, you get an empty 304 answer in a fraction of a second. When something has changed you get the whole list, and comparing it with what you already hold tells you what is new, what has been replaced, and what has been withdrawn.

Compare each file's url, not its filename. Filenames are built from the gene, the catalogue number and the application, so a re-cropped figure keeps its name but gets a new address — match on the name and you will keep the old image. Every reply names the field to compare on, in its sync block.

The reference below has a working sync client, about forty lines.

Full reference

Every endpoint, every parameter, and a sync client you can run:

The API also describes itself in OpenAPI 3.1, which needs no key:

https://onlygoodantibodies.co.uk/api/v1/openapi.json

Import that address into Postman or Insomnia and you get every endpoint, parameter and example as a ready-made collection — or feed it to openapi-generator for a typed client in your own language. There is also a plain-language catalogue at /api/v1/.

What a recommendation means

A recommendation is per application — a pass in western blot says nothing about immunofluorescence.

ValueMeans
recommended Recommended for that application in the conditions tested.
not_recommended Tested and not recommended in the conditions tested.
not_tested Not tested for that application.

Results are based on consensus protocols. Antibody performance is protocol and sample dependent, and these results do not validate or invalidate experiments in other assay systems or sample types. Read the protocols.

What we count

We count requests per key, per endpoint, per day. We do not log individual calls and we store nothing about their content. Requests without a usable key are counted without recording who sent them.

The totals tell us how the API is used, and help us spot a client stuck in a loop.

Licence and citation

The data is published under Creative Commons Attribution 4.0 International (CC BY 4.0). You may copy it, redistribute it, and build on it commercially.

Cite the DOI, not this website. Every gene we have reported carries the DOI of its report, shown on that gene's page and returned with the record. A DOI takes your reader to the experiments themselves, and will not move.

A gene that has no report published yet has no DOI to cite. Attribute it to Only Good Antibodies and link its gene page.

Showing the data

You are welcome to show the figures alongside the products they are about. Please attribute the source and link the gene page that comes with every record, so a reader can reach the full result and the report behind it.

If anything here does not match what the API does, please tell us.