STRING Network API
Retrieve protein-protein interaction networks
Retrieve protein-protein interaction networks
openapi: 3.2.0
info:
title: STRING REST Network 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: network
description: Retrieve protein-protein interaction networks
paths:
/api/{format}/network:
get:
operationId: getNetwork
summary: Network Image or Interactions
description: 'Retrieve a protein interaction network as an image or interaction data. Supports image formats (image, highres_image, svg) and data formats (tsv, json, xml, psi-mi, psi-mi-tab).
'
tags:
- network
parameters:
- $ref: '#/components/parameters/formatFull'
- name: identifiers
in: query
required: true
description: Protein identifiers (STRING IDs or gene names), newline-separated (%0d in URL)
schema:
type: string
- $ref: '#/components/parameters/species'
- $ref: '#/components/parameters/required_score'
- $ref: '#/components/parameters/network_type'
- name: network_flavor
in: query
required: false
description: Visual style for network edges
schema:
type: string
enum:
- evidence
- confidence
- actions
default: evidence
- name: add_color_nodes
in: query
required: false
description: Number of additional neighborhood proteins to add (shown in color)
schema:
type: integer
default: 0
minimum: 0
- name: add_white_nodes
in: query
required: false
description: Number of additional neighborhood proteins to add (shown in white)
schema:
type: integer
default: 0
minimum: 0
- name: hide_node_labels
in: query
required: false
description: Hide protein name labels on network nodes (1=hide, 0=show)
schema:
type: integer
enum:
- 0
- 1
default: 0
- name: hide_disconnected_nodes
in: query
required: false
description: Hide proteins with no interactions in the result set (1=hide)
schema:
type: integer
enum:
- 0
- 1
default: 0
- $ref: '#/components/parameters/caller_identity'
responses:
'200':
description: Network data or image
content:
text/plain:
schema:
$ref: '#/components/schemas/TsvResponse'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Interaction'
image/png:
schema:
type: string
format: binary
image/svg+xml:
schema:
type: string
'400':
$ref: '#/components/responses/BadRequest'
post:
operationId: getNetworkPost
summary: Network Image or Interactions (POST)
description: 'Retrieve a protein interaction network via POST. Recommended for queries with many identifiers.
'
tags:
- network
parameters:
- $ref: '#/components/parameters/formatFull'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- identifiers
properties:
identifiers:
type: string
species:
type: integer
required_score:
type: integer
minimum: 0
maximum: 1000
network_type:
type: string
enum:
- functional
- physical
network_flavor:
type: string
enum:
- evidence
- confidence
- actions
add_color_nodes:
type: integer
add_white_nodes:
type: integer
caller_identity:
type: string
responses:
'200':
description: Network data or image
content:
text/plain:
schema:
$ref: '#/components/schemas/TsvResponse'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Interaction'
'400':
$ref: '#/components/responses/BadRequest'
/api/{format}/get_link:
get:
operationId: getNetworkLink
summary: Get Network Link
description: Generate a stable URL linking to a STRING network viewer for the specified proteins.
tags:
- network
parameters:
- $ref: '#/components/parameters/formatLink'
- 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: Link to STRING network viewer
content:
text/plain:
schema:
$ref: '#/components/schemas/TsvResponse'
application/json:
schema:
type: object
properties:
link:
type: string
format: uri
'400':
$ref: '#/components/responses/BadRequest'
/api/{format}/interaction_partners:
get:
operationId: getInteractionPartners
summary: Interaction Partners
description: Retrieve all STRING interaction partners for a set of input proteins.
tags:
- network
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: limit
in: query
required: false
description: Maximum number of interaction partners to return per protein
schema:
type: integer
default: 10
minimum: 1
- $ref: '#/components/parameters/required_score'
- $ref: '#/components/parameters/network_type'
- $ref: '#/components/parameters/caller_identity'
responses:
'200':
description: Interaction partners with scores
content:
text/plain:
schema:
$ref: '#/components/schemas/TsvResponse'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Interaction'
'400':
$ref: '#/components/responses/BadRequest'
post:
operationId: getInteractionPartnersPost
summary: Interaction Partners (POST)
tags:
- network
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
limit:
type: integer
required_score:
type: integer
minimum: 0
maximum: 1000
network_type:
type: string
enum:
- functional
- physical
caller_identity:
type: string
responses:
'200':
description: Interaction partners with scores
content:
text/plain:
schema:
$ref: '#/components/schemas/TsvResponse'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Interaction'
components:
responses:
BadRequest:
description: Bad request (invalid parameters)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
type: string
parameters:
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
format:
name: format
in: path
required: true
description: Output format
schema:
type: string
enum:
- tsv
- tsv-no-header
- json
- xml
example: json
network_type:
name: network_type
in: query
required: false
description: Type of STRING network to use
schema:
type: string
enum:
- functional
- physical
default: functional
formatFull:
name: format
in: path
required: true
description: Output format (data or image)
schema:
type: string
enum:
- tsv
- tsv-no-header
- json
- xml
- psi-mi
- psi-mi-tab
- image
- highres_image
- svg
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
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
formatLink:
name: format
in: path
required: true
description: Output format
schema:
type: string
enum:
- tsv
- json
example: json
schemas:
TsvResponse:
type: string
description: Tab-separated values response with header row
Interaction:
type: object
description: Protein-protein interaction with component scores
properties:
stringId_A:
type: string
description: STRING identifier for protein A
example: 9606.ENSP00000269305
stringId_B:
type: string
description: STRING identifier for protein B
example: 9606.ENSP00000083083
preferredName_A:
type: string
description: Preferred name for protein A
example: TP53
preferredName_B:
type: string
description: Preferred name for protein B
example: MDM2
ncbiTaxonId:
type: integer
description: NCBI taxon ID
example: 9606
score:
type: number
description: Combined interaction score (0-1)
minimum: 0
maximum: 1
example: 0.999
nscore:
type: number
description: Genomic neighborhood score
minimum: 0
maximum: 1
fscore:
type: number
description: Gene fusion score
minimum: 0
maximum: 1
pscore:
type: number
description: Phylogenetic co-occurrence score
minimum: 0
maximum: 1
ascore:
type: number
description: Co-expression score
minimum: 0
maximum: 1
escore:
type: number
description: Experimental evidence score
minimum: 0
maximum: 1
dscore:
type: number
description: Database/curated evidence score
minimum: 0
maximum: 1
tscore:
type: number
description: Text mining score
minimum: 0
maximum: 1
Error:
type: object
properties:
status:
type: integer
error:
type: string
message:
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/