> ## Documentation Index
> Fetch the complete documentation index at: https://docs.catalog.igvf.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Genes Structure

> Retrieve genes structure.

you can filter by one of the four categories: gene, transcript, protein or region.

Example: organism = Homo sapiens,

region = chr1:212565300-212620800,

gene_id = ENSG00000187642 (Ensembl ids),

gene_name = ATF3,

transcript_id = ENST00000443707 (Ensembl ids),

type = exon,

protein_id = ENSP00000305769,

protein_name = SMAD1.

The limit parameter controls the page size and can not exceed 500.

Pagination is 0-based.



## OpenAPI

````yaml /openapi/catalog-dev.openapi.json get /genes-structure
openapi: 3.0.3
info:
  title: IGVF Catalog - Development
  description: >-
    Development IGVF Catalog OpenAPI compliant REST API built using tRPC with
    Express.


    Our database uses 0-based, half-open coordinates for genomic coordinates in
    the GRCh38 (human) and GRCm39 (mouse) reference genomes.


    Data is licensed under the Creative Commons license and the software is
    licensed under the MIT license.
  version: 1.2.0 - DEV
servers:
  - url: https://catalog-api-dev.demo.igvf.org/api
security: []
externalDocs:
  url: https://api-dev.catalog.igvf.org/openapi
paths:
  /genes-structure:
    get:
      summary: Genes Structure
      description: >-
        Retrieve genes structure.


        you can filter by one of the four categories: gene, transcript, protein
        or region.


        Example: organism = Homo sapiens,


        region = chr1:212565300-212620800,


        gene_id = ENSG00000187642 (Ensembl ids),


        gene_name = ATF3,


        transcript_id = ENST00000443707 (Ensembl ids),


        type = exon,


        protein_id = ENSP00000305769,


        protein_name = SMAD1.


        The limit parameter controls the page size and can not exceed 500.


        Pagination is 0-based.
      operationId: genesStructure
      parameters:
        - name: gene_id
          in: query
          required: false
          schema:
            type: string
        - name: gene_name
          in: query
          required: false
          schema:
            type: string
        - name: transcript_id
          in: query
          required: false
          schema:
            type: string
        - name: transcript_name
          in: query
          required: false
          schema:
            type: string
        - name: protein_id
          in: query
          required: false
          schema:
            type: string
        - name: protein_name
          in: query
          required: false
          schema:
            type: string
        - name: region
          in: query
          required: false
          schema:
            type: string
        - name: type
          in: query
          required: false
          schema:
            type: string
            enum:
              - CDS
              - UTR
              - exon
              - intron
              - start_codon
              - stop_codon
        - name: organism
          in: query
          required: false
          schema:
            type: string
            enum:
              - Mus musculus
              - Homo sapiens
            default: Homo sapiens
        - name: page
          in: query
          required: false
          schema:
            type: number
            default: 0
        - name: limit
          in: query
          required: false
          schema:
            type: number
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    _id:
                      type: string
                    name:
                      type: string
                    chr:
                      type: string
                    start:
                      type: number
                      nullable: true
                    end:
                      type: number
                      nullable: true
                    strand:
                      type: string
                    type:
                      type: string
                    gene_id:
                      type: string
                    gene_name:
                      type: string
                    transcript_id:
                      type: string
                    transcript_name:
                      type: string
                    protein_id:
                      type: string
                      nullable: true
                    exon_number:
                      type: string
                    exon_id:
                      type: string
                      nullable: true
                    organism:
                      type: string
                    source:
                      type: string
                    version:
                      type: string
                    source_url:
                      type: string
                  required:
                    - _id
                    - name
                    - chr
                    - start
                    - end
                    - strand
                    - type
                    - gene_id
                    - gene_name
                    - transcript_id
                    - transcript_name
                    - exon_number
                    - exon_id
                    - organism
                    - source
                    - version
                    - source_url
                  additionalProperties: false
        default:
          $ref: '#/components/responses/error'
components:
  responses:
    error:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
              code:
                type: string
              issues:
                type: array
                items:
                  type: object
                  properties:
                    message:
                      type: string
                  required:
                    - message
                  additionalProperties: false
            required:
              - message
              - code
            additionalProperties: false

````