UCSC Genomic Data Genomes API

Genome assembly discovery and search

OpenAPI Specification

ucsc-genomic-data-genomes-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: UCSC Genome Browser REST Genomes API
  description: The UCSC Genome Browser REST API provides programmatic access to genomic data, sequences, annotation tracks, genome assemblies, and track hubs. All endpoints return JSON and require no authentication. Rate limiting of one request per second is recommended to avoid the botDelay system.
  version: 1.0.0
  contact:
    name: UCSC Genome Browser
    url: https://genome.ucsc.edu
servers:
- url: https://api.genome.ucsc.edu
  description: UCSC Primary API Server
- url: https://genome-euro.ucsc.edu/cgi-bin/hubApi
  description: UCSC Europe Mirror
- url: https://genome-asia.ucsc.edu/cgi-bin/hubApi
  description: UCSC Asia Mirror
tags:
- name: Genomes
  description: Genome assembly discovery and search
paths:
  /findGenome:
    get:
      operationId: findGenome
      summary: Find Genome
      description: Search for genomes by name, accession number, or keywords across NCBI and UCSC assemblies.
      tags:
      - Genomes
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
        description: Search query string (genome name, accession, or keyword).
      - name: browser
        in: query
        required: false
        schema:
          type: string
        description: Filter by browser name.
      - name: year
        in: query
        required: false
        schema:
          type: integer
        description: Filter assemblies by year.
      - name: category
        in: query
        required: false
        schema:
          type: string
        description: Filter by category.
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: Filter by assembly status.
      - name: level
        in: query
        required: false
        schema:
          type: string
        description: Filter by assembly level.
      - name: statsOnly
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
        description: Return only statistics if set to 1.
      - name: maxItemsOutput
        in: query
        required: false
        schema:
          type: integer
          default: 1000000
        description: Maximum number of items to return.
      responses:
        '200':
          description: Matching genomes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenomeSearchResult'
  /list/ucscGenomes:
    get:
      operationId: listUcscGenomes
      summary: List UCSC Genomes
      description: Returns all genome database assemblies available in the UCSC Genome Browser.
      tags:
      - Genomes
      responses:
        '200':
          description: List of UCSC genome assemblies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenomeListResult'
  /list/genarkGenomes:
    get:
      operationId: listGenarkGenomes
      summary: List GenArk Genomes
      description: Returns genome assemblies from the GenArk repository.
      tags:
      - Genomes
      parameters:
      - name: genome
        in: query
        required: false
        schema:
          type: string
        description: Filter by genome assembly name.
      - name: maxItemsOutput
        in: query
        required: false
        schema:
          type: integer
        description: Maximum number of items to return.
      responses:
        '200':
          description: GenArk genome assemblies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenomeListResult'
  /list/files:
    get:
      operationId: listFiles
      summary: List Genome Files
      description: Returns download files available for a genome assembly.
      tags:
      - Genomes
      parameters:
      - name: genome
        in: query
        required: true
        schema:
          type: string
        description: Genome assembly identifier (e.g., hg38, mm39).
      - name: format
        in: query
        required: false
        schema:
          type: string
        description: File format filter (e.g., bigBed, bigWig).
      - name: maxItemsOutput
        in: query
        required: false
        schema:
          type: integer
        description: Maximum number of files to return.
      responses:
        '200':
          description: List of downloadable files for the genome assembly.
          content:
            application/json:
              schema:
                type: object
  /list/chromosomes:
    get:
      operationId: listChromosomes
      summary: List Chromosomes
      description: Returns the list of chromosomes in a genome assembly or specific track.
      tags:
      - Genomes
      parameters:
      - name: genome
        in: query
        required: true
        schema:
          type: string
        description: Genome assembly identifier (e.g., hg38, mm39).
      - name: hubUrl
        in: query
        required: false
        schema:
          type: string
          format: uri
        description: URL of the hub.txt file for a track hub.
      - name: track
        in: query
        required: false
        schema:
          type: string
        description: Filter chromosomes by a specific track.
      responses:
        '200':
          description: List of chromosomes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChromosomeListResult'
components:
  schemas:
    GenomeAssembly:
      type: object
      properties:
        name:
          type: string
          description: Genome assembly identifier.
        organism:
          type: string
          description: Organism name.
        scientificName:
          type: string
          description: Scientific name of the organism.
        description:
          type: string
          description: Assembly description.
        sourceName:
          type: string
          description: Source name for the assembly.
        taxId:
          type: integer
          description: NCBI taxonomy identifier.
        orderKey:
          type: integer
        htmlPath:
          type: string
    GenomeSearchResult:
      type: object
      properties:
        totalAssemblyCount:
          type: integer
          description: Total number of matching assemblies.
        assemblyList:
          type: array
          items:
            $ref: '#/components/schemas/GenomeAssembly'
    GenomeListResult:
      type: object
      properties:
        ucscGenomes:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GenomeAssembly'
    ChromosomeListResult:
      type: object
      properties:
        genome:
          type: string
        chromosomes:
          type: object
          additionalProperties:
            type: integer
            description: Chromosome size in base pairs.