REST API, Model Context Protocol server, and Python SDK for genome-wide DNA biophysics. Every response carries provenance, evidence class, and content hash.
§ 01
Overview
The Polymer API serves the material channel of the genome — stacking energy, curvature, flexibility, groove geometry — computed at base-pair resolution across 50 layers. Every response includes api_version, data_version, an evidence class (M / K / D / S / H), source URI, license, and a content hash so agents and downstream pipelines can audit and cache.
Base URL
https://api.polymerbio.org
API Version
v1 · stable
SDK
pip install polymer-genomics
§ 02
Quickstart
Install the SDK and fetch your first region. The example uses the TP53 locus on hg38.
All requests must include the X-API-Key header. Request a key at polymerbio.org/developers. Free tier: 1,000 requests/day. Rate limits are returned in X-RateLimit-Remaining.
§ 04
Endpoints
Reference endpoints return curated data with provenance. Compute endpoints run the physics linter or aggregate over a region. All responses include data_version and content-hash headers.
Reference
GET/v1/regions/{build}/{region}Region biophysics
Fetch genome-wide biophysics columns for a region. Returns stacking ΔG, melting Tm, curvature, groove geometry, A-form / Z-form propensities at 1 kb resolution.
Parameters
build*path · string—Genome build (hg38 or hg37).
region*path · string—1-based closed UCSC region, e.g. chr17:7668421-7687490.
layersquery · string—Comma-separated layer ids to include.
result = client.evaluate("ATGCGATCGATCG...", analysis="full")
print(result.summary.gc_content, result.flag_counts.warnings)
§ 05
MCP for agents
The Model Context Protocol server exposes 70 tools to LLM agents — 38 reference and 32 compute. Connect via stdio for local agents or HTTP/SSE for hosted deployments.
bash
# Local stdio (Claude Desktop, etc.)
uv run polymer-mcp serve
# Hosted HTTP/SSE
polymer-mcp serve --transport sse --port 8050
Tool
Signature
Description
polymer.regions.fetch
(build, region, layers?)
Genome-wide biophysics for a region.
polymer.genes.fetch
(build, symbol)
Gene-level profile with constraint metrics.
polymer.probes.fetch
(build, probe_id)
EPIC v2 / v1 / 450K probe metadata.
polymer.evaluate
(sequence, analysis?)
Physics linter on a DNA sequence.
polymer.aggregation
(build, region, layers, resolution)
Pre-binned layer counts.
polymer.search.genes
(q, build?)
Gene typeahead search.
polymer.clocks.predict
(betas, clock)
Apply DNAm clock coefficients to a beta matrix.
polymer.transposome.score
(region, family?)
TE/ERV scoring + awakening propensity.
Showing 8 of 70. See full list at /developers.
§ 06
Errors
All errors return a JSON body with code, message, and optional details. Status codes follow standard HTTP conventions.
Status
Code
Description
400
INVALID_REGION
Region string does not parse as a UCSC interval.
400
INVALID_BUILD
Build must be hg38 or hg37.
400
INVALID_SEQUENCE
Sequence contains non-ACGTN characters or is too short.
401
MISSING_API_KEY
Provide X-API-Key header.
403
RATE_LIMITED
Rate limit exceeded; retry after Retry-After seconds.
404
GENE_NOT_FOUND
No gene matches the provided symbol or Ensembl ID.
404
PROBE_NOT_FOUND
No probe matches the provided ID for this platform.
413
REGION_TOO_LARGE
Region exceeds 10 Mb. Use /v1/aggregation for genome-wide views.
422
UNSUPPORTED_LAYER
Layer is not available for the requested build.
429
TOO_MANY_REQUESTS
Request quota for this minute exhausted.
500
INTERNAL_ERROR
Unexpected server error; transient. Retry with backoff.