Przejdź do głównej zawartości

GeneBe Hub REST API

Most people manage GeneBe Hub databases through GeneBeClient (annotation push, annotation pull, ...). If you are integrating GeneBe Hub into your own tooling instead, the same functionality is also available as a REST API, under https://api.genebe.net/cloud/api-public/v1/hub/*.

Interactive, always up to date documentation (with a "Try it out" button) is available at https://api.genebe.net/cloud/gb-api-doc/swagger-ui/index.html. Below is a human-curated reference of the endpoints most useful for external integrations.

Authentication uses the same API key as the rest of the GeneBe API, sent as a Basic or Bearer credential.

Browsing and reading databases​

These endpoints are read-only. Most of them do not require authentication -- an API key is only needed to see your own private databases.

Browse databases​

MethodURL
POST/api-public/v1/hub/browse

Search/list databases matching a filter. All fields in the request body are optional.

Request body:

{
"name": "abraom",
"type": "VARIANT",
"genome": "GRCh38",
"status": "ACTIVE"
}

Response (200) -- array of database summaries:

[
{
"id": "@genebe/abraom:0.0.1",
"owner": "@genebe",
"name": "abraom",
"version": "0.0.1",
"status": "ACTIVE",
"createdDate": "2026-09-10T18:29:27.926Z",
"labels": ["frequency", "population", "brazilian"],
"title": "ABraOM/SABE allele frequencies",
"genome": "GRCh38",
"species": "homo_sapiens",
"type": "VARIANT",
"publiclyAvailable": true,
"licenseType": "NOT_SPECIFIED"
}
]

Get a database's page model​

MethodURL
GET/api-public/v1/hub/find

Parameters​

NameInDescriptionRequired
idqueryDatabase identifier, formatted as owner/name:versionRequired

Returns the description, license text, creation date, status and available versions of a database -- everything needed to render a database's page.

Example: GET /api-public/v1/hub/find?id=@genebe/abraom:0.0.1

List versions of a database​

MethodURL
GET/api-public/v1/hub/versions

Parameters​

NameInDescriptionRequired
idqueryDatabase identifier, formatted as owner/name:version (the version part is ignored)Required

Response (200):

["0.0.3-20260205170148", "0.0.2", "0.0.1"]

List databases by owner​

MethodURL
GET/api-public/v1/hub/owner/{owner}

Parameters​

NameInDescriptionRequired
ownerpathDatabase owner, e.g. @genebe for an organization, or a usernameRequired
showAllTypesqueryIf true and you can access the owner's private databases, also include non-active statuses (e.g. during upload)Optional

Returns the newest version of each database belonging to the given owner.

Get a database entity​

MethodURL
GET/api-public/v1/hub/owner/{owner}/name/{name}
GET/api-public/v1/hub/owner/{owner}/name/{name}/version/{version}

Returns the full database entity: metadata, column descriptions and files. Omit version (use the first form) to get the newest version accessible to you.

Response (200):

{
"id": "@genebe/abraom:0.0.1",
"owner": "@genebe",
"name": "abraom",
"version": "0.0.1",
"status": "ACTIVE",
"title": "ABraOM/SABE allele frequencies",
"genome": "GRCh38",
"species": "homo_sapiens",
"type": "VARIANT",
"publiclyAvailable": true,
"licenseType": "NOT_SPECIFIED",
"columns": [
{ "name": "af", "type": "float64", "description": "Alternate allele frequency in ABraOM/SABE." },
{ "name": "ac", "type": "int32", "description": "Alternate allele count in ABraOM/SABE." }
],
"files": [
{ "fileName": "parquet/_seq=1/part-00000-061081da.c000.zstd.parquet", "size": 41460999, "xxh32sum": "688ea158" }
]
}

Download a database​

MethodURL
POST/api-public/v1/hub/download

Requires authentication. Generates time-limited download URLs for a database's files -- this is what powers annotation pull in GeneBeClient.

Request body:

{
"owner": "@genebe",
"name": "abraom",
"version": "0.0.1",
"format": "parquet"
}

The response includes a files map of relative file path to download URL, plus the database's description, descriptionText and licenseText.

Query rows from a database​

MethodURL
POST/api-public/v1/hub/view

Requires authentication. Runs a query directly against a database's rows on the server and returns matching rows as JSON -- useful for quick lookups without downloading the whole database.

Request body:

{
"owner": "@genebe",
"name": "abraom",
"version": "0.0.1",
"seq": "17",
"start": 43000000,
"end": 43100000
}

seq/start/end are optional but recommended: querying without at least seq is much slower, since it can't take advantage of the database's Hive partitioning.

Managing your own databases​

Update database metadata​

MethodURL
POST/api-public/v1/hub/save

Requires authentication and ownership of the database. Updates metadata (title, description, license, visibility, labels, column descriptions, ...) of an existing database entry -- it does not create new databases or upload files.

Delete a database​

MethodURL
DELETE/api-public/v1/hub/delete

Parameters​

NameInDescriptionRequired
idqueryDatabase identifier, formatted as owner/name:versionRequired

Requires authentication and ownership of the database.

Uploading new databases (admin only)​

Creating brand new databases through the API -- POST /api-public/v1/hub/upload, POST /api-public/v1/hub/upload/complete, POST /api-public/v1/hub/initiate-multipart and POST /api-public/v1/hub/complete-multipart -- is currently restricted to GeneBe administrators. If you want to publish your own database, use GeneBeClient annotation push as described in Creating a database; it drives this same upload flow for you.