STRING Enrichment API

Functional enrichment analysis

Operations 4

GET /api/{format}/enrichment Functional Enrichment #
POST /api/{format}/enrichment Functional Enrichment (POST) #
GET /api/{format}/enrichmentfigure Enrichment Figure #
GET /api/{format}/ppi_enrichment PPI Enrichment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/string-db-enrichment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

string-db-enrichment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: STRING REST Enrichment API
  description: 'STRING is a protein-protein interaction network database providing scored associations between proteins across thousands of organisms. The REST API enables programmatic access to interaction scores, network visualizations, functional enrichment analysis, homology data, and protein annotations. STRING integrates data from genomic context, co-expression, text mining, biochemical and genetic experiments, and curated databases.

    '
  version: '12.0'
  contact:
    name: STRING Consortium
    url: https://string-db.org
  license:
    name: Creative Commons Attribution
    url: https://string-db.org/cgi/access?footer_active_subpage=licensing
  termsOfService: https://string-db.org/cgi/info?footer_active_subpage=cookies
servers:
- url: https://string-db.org
  description: STRING Production Server
security: []
tags:
- name: enrichment
  description: Functional enrichment analysis
paths:
  /api/{format}/enrichment:
    get:
      operationId: getFunctionalEnrichment
      summary: Functional Enrichment
      description: 'Perform functional enrichment analysis for a set of proteins. Returns enriched GO terms (biological process, molecular function, cellular component), KEGG pathways, Reactome pathways, Pfam domains, InterPro domains, SMART domains, and tissue/disease annotations.

        '
      tags:
      - enrichment
      parameters:
      - $ref: '#/components/parameters/format'
      - name: identifiers
        in: query
        required: true
        description: Protein identifiers, newline-separated (%0d in URL)
        schema:
          type: string
      - $ref: '#/components/parameters/species'
      - name: background_string_identifiers
        in: query
        required: false
        description: Custom background gene set as STRING identifiers for enrichment calculation
        schema:
          type: string
      - name: allow_pubmed
        in: query
        required: false
        description: Include PubMed text mining term enrichment (1=include)
        schema:
          type: integer
          enum:
          - 0
          - 1
          default: 0
      - $ref: '#/components/parameters/caller_identity'
      responses:
        '200':
          description: Enriched functional terms with statistics
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TsvResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EnrichmentResult'
        '400':
          $ref: '#/components/responses/BadRequest'
    post:
      operationId: getFunctionalEnrichmentPost
      summary: Functional Enrichment (POST)
      tags:
      - enrichment
      parameters:
      - $ref: '#/components/parameters/format'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - identifiers
              properties:
                identifiers:
                  type: string
                species:
                  type: integer
                background_string_identifiers:
                  type: string
                allow_pubmed:
                  type: integer
                  enum:
                  - 0
                  - 1
                caller_identity:
                  type: string
      responses:
        '200':
          description: Enriched functional terms
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TsvResponse'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EnrichmentResult'
  /api/{format}/enrichmentfigure:
    get:
      operationId: getEnrichmentFigure
      summary: Enrichment Figure
      description: Generate a visual figure (image) of enrichment analysis results for a protein set.
      tags:
      - enrichment
      parameters:
      - $ref: '#/components/parameters/formatImage'
      - name: identifiers
        in: query
        required: true
        description: Protein identifiers, newline-separated (%0d in URL)
        schema:
          type: string
      - $ref: '#/components/parameters/species'
      - $ref: '#/components/parameters/caller_identity'
      responses:
        '200':
          description: Enrichment figure image
          content:
            image/png:
              schema:
                type: string
                format: binary
            image/svg+xml:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
  /api/{format}/ppi_enrichment:
    get:
      operationId: getPpiEnrichment
      summary: PPI Enrichment
      description: 'Test whether the interactions in a set of proteins are more significant than expected by random chance given the size and connectivity of the proteome. Returns an observed interaction count, expected count, p-value, and average interaction score.

        '
      tags:
      - enrichment
      parameters:
      - $ref: '#/components/parameters/formatPpi'
      - name: identifiers
        in: query
        required: true
        description: Protein identifiers, newline-separated (%0d in URL)
        schema:
          type: string
      - $ref: '#/components/parameters/species'
      - $ref: '#/components/parameters/required_score'
      - $ref: '#/components/parameters/network_type'
      - $ref: '#/components/parameters/caller_identity'
      responses:
        '200':
          description: PPI enrichment statistics
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TsvResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/PpiEnrichment'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  parameters:
    format:
      name: format
      in: path
      required: true
      description: Output format
      schema:
        type: string
        enum:
        - tsv
        - tsv-no-header
        - json
        - xml
        example: json
    formatPpi:
      name: format
      in: path
      required: true
      description: Output format
      schema:
        type: string
        enum:
        - tsv
        - json
        - xml
        example: json
    species:
      name: species
      in: query
      required: false
      description: 'NCBI taxon ID to restrict results to a specific organism. Common values: 9606 (human), 10090 (mouse), 10116 (rat), 7227 (D. melanogaster), 6239 (C. elegans), 4932 (S. cerevisiae), 3702 (A. thaliana), 7955 (zebrafish).

        '
      schema:
        type: integer
        example: 9606
    formatImage:
      name: format
      in: path
      required: true
      description: Image format
      schema:
        type: string
        enum:
        - image
        - highres_image
        - svg
        example: image
    caller_identity:
      name: caller_identity
      in: query
      required: false
      description: 'A string identifying your application or organization. Strongly recommended; helps STRING admins contact you if there are issues.

        '
      schema:
        type: string
        example: my_bioinformatics_pipeline
    network_type:
      name: network_type
      in: query
      required: false
      description: Type of STRING network to use
      schema:
        type: string
        enum:
        - functional
        - physical
        default: functional
    required_score:
      name: required_score
      in: query
      required: false
      description: 'Minimum combined interaction score threshold (0-1000). Higher values return only higher-confidence interactions. Common thresholds: 150 (low), 400 (medium), 700 (high), 900 (highest).

        '
      schema:
        type: integer
        minimum: 0
        maximum: 1000
        default: 400
  schemas:
    PpiEnrichment:
      type: object
      description: PPI enrichment statistics for the input protein set
      properties:
        number_of_nodes:
          type: integer
          description: Number of proteins in the input set
        number_of_edges:
          type: integer
          description: Observed number of interactions
        average_node_degree:
          type: number
          description: Average number of interaction partners per protein
        local_clustering_coefficient:
          type: number
          description: Average local clustering coefficient
        expected_number_of_edges:
          type: number
          description: Expected number of interactions at random
        p_value:
          type: number
          description: P-value for interaction enrichment
    TsvResponse:
      type: string
      description: Tab-separated values response with header row
    Error:
      type: object
      properties:
        status:
          type: integer
        error:
          type: string
        message:
          type: string
    EnrichmentResult:
      type: object
      description: Functional enrichment result for one term
      properties:
        category:
          type: string
          description: 'Functional annotation category (e.g. Process, KEGG, Pfam, RCTM, Tissue)

            '
          example: Process
        term:
          type: string
          description: Functional term identifier
          example: GO:0006915
        number_of_genes:
          type: integer
          description: Number of input genes annotated to this term
        number_of_genes_in_background:
          type: integer
          description: Number of background genes annotated to this term
        ncbiTaxonId:
          type: integer
          description: NCBI taxon ID
        inputGenes:
          type: string
          description: Comma-separated list of input gene names annotated to this term
        preferredNames:
          type: string
          description: Comma-separated list of preferred gene names
        p_value:
          type: number
          description: Enrichment p-value (hypergeometric test)
          example: 1.23e-10
        fdr:
          type: number
          description: False discovery rate (Benjamini-Hochberg corrected)
          example: 4.56e-08
        description:
          type: string
          description: Human-readable name of the functional term
          example: apoptotic process
  responses:
    BadRequest:
      description: Bad request (invalid parameters)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        text/plain:
          schema:
            type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key
      description: 'API key required only for Values/Ranks Enrichment endpoints. Obtain via POST /api/json/get_api_key. All other endpoints are publicly accessible without authentication.

        '
externalDocs:
  description: STRING API Documentation
  url: https://string-db.org/help/api/