# Dyno Therapeutics > Dyno Therapeutics is an AI and biotechnology company building high-performance gene delivery technologies for genetic medicine. Its CapsidMap platform designs novel AAV capsids for gene therapy partners. Alongside that, Dyno operates a public developer platform — Dyno Psi-Phi at design.dynotx.com — whose REST API, the Phi Protein Design API, runs GPU-backed open protein models (AlphaFold2, ESMFold, ProteinMPNN, Boltz, ESM-2, RFDiffusion3, BoltzGen, OpenFold3, Chai-1) as submit-and-poll jobs over uploaded PDB/CIF structures, and returns filtered, scored binder candidates. Generated by API Evangelist on 2026-08-10. Dyno does not publish an llms.txt of its own (https://design.dynotx.com/llms.txt returned 404), so this file is generated from the provider's public artifacts. Every URL below was fetched and returned the status noted. ## API - [Phi — Protein Design API](https://api.dyno-agents.app/): OpenAPI 3.1.0, 64 paths / 80 operations / 62 schemas. Base URL `https://api.dyno-agents.app`, path prefix `/v1/phi`. ReDoc is served at the API root. - [OpenAPI document](https://api.dyno-agents.app/v1/phi/openapi.json): the machine-readable contract. Note it lives under `/v1/phi/`, NOT at `/openapi.json` (which 404s). - [Developer platform](https://design.dynotx.com/): sign up, create an API key at Settings → API keys. - [Docs — filtering pipeline and metrics](https://design.dynotx.com/docs) - [CLI reference](https://design.dynotx.com/cli) ## Authentication - Header `x-api-key: ak_...` on every request. An unauthenticated call returns `401 {"detail":"Missing API key. Provide an x-api-key header."}`. - Static-key callers also send `X-Organization-ID`. Clerk session tokens derive it automatically. - Keys are issued at https://design.dynotx.com/dashboard/settings and read from the `DYNO_API_KEY` environment variable by the CLI. - The OpenAPI declares NO `securitySchemes`; auth appears only as an optional header parameter. Do not infer from the spec that auth is optional. ## Core flow 1. Upload PDB/CIF structures — `POST /v1/phi/ingest_sessions/`, get signed URLs, PUT files, `POST .../finalize` → a Dataset. 2. Submit a job — `POST /v1/phi/jobs/` with `job_type` from the closed enum (`filter_pipeline`, `esmfold`, `alphafold`, `proteinmpnn`, `boltz`, `esm2`, `chai1`, `rfdiffusion3`, `boltzgen`, `openfold3`, `bindcraft`, `af2rank`, `rso`, `rf3`, `ligandmpnn`, `tm_score`, `align_structures`, `rfdiffusion`, `research`, `design_pipeline`). 3. Poll — `GET /v1/phi/jobs/{job_id}/status`. Terminal: `completed`, `failed`, `cancelled`. Poll every 5s; the provider's client times out at 7200s. 4. Retrieve — `GET /v1/phi/jobs/{job_id}/scores` returns a signed URL to a scores CSV. Workflows and Protocols sit above jobs: a Workflow is an immutable DAG plan; a Protocol is a shareable, forkable, versioned template that plans and executes one. ## Clients and agent surfaces - [dyno-phi on PyPI](https://pypi.org/project/dyno-phi/): first-party Python CLI + client, v0.2.3 (2026-03-18), MIT, `pip install dyno-phi`. - [dynopsi on PyPI](https://pypi.org/project/dynopsi/): Dyno Psi-1 binder-design inference, v1.0.0 (2026-03-18), Apache-2.0. - [phi-cli on GitHub](https://github.com/dynotx/phi-cli): open source, MIT. - [Provider-published Claude Code Agent Skill](https://github.com/dynotx/phi-cli/blob/main/skills/phi/SKILL.md) and [Claude Code plugin](https://github.com/dynotx/phi-cli/tree/main/phi-plugin). - [Dyno Psi-1 weights on Hugging Face](https://huggingface.co/dynotx/dynopsi) and the [synthetic dimers dataset](https://huggingface.co/datasets/dynotx/synthetic_dimers). - No MCP server and no A2A agent card are published. ## Limits, cost and safety - Metering is by JOB QUOTA, not request rate: `max_total_jobs` and `max_concurrent_jobs`, per user and per organization. Read them at `GET /v1/phi/auth/me/quota`. - Exhaustion returns HTTP 429 with no `Retry-After` and no rate-limit headers. - There is no test mode, no test key and no dry run. Every call is real GPU compute against quota. To rehearse, use `GET /v1/phi/tutorial` — it provisions a PD-L1 tutorial dataset of five real binder structures. - No pricing page and no published plan tiers. - Errors use `{"detail": ...}`, not RFC 9457. Only 200 and 422 are declared in the spec; 401 and 429 are real but undeclared. - No idempotency key. A retried job submission may run twice and bill twice. ## API Evangelist artifacts in this repo - openapi/dyno-phi-openapi.yml — the harvested contract - authentication/dyno-authentication.yml — auth profile - conventions/dyno-conventions.yml — pagination, versioning, async model, error envelope - errors/dyno-problem-types.yml — declared and undeclared error conditions - rate-limits/dyno-rate-limits.yml — the job-quota model - data-model/dyno-data-model.yml — entity graph - lifecycle/dyno-lifecycle.yml — versioning, deprecation, status - changelog/dyno-changelog.yml — the phi CLI changelog - cli/dyno-cli.yml — the phi command surface - sandbox/dyno-sandbox.yml — tutorial fixtures - packages/dyno-packages.yml — first-party clients with versions and dates - conformance/dyno-conformance.yml — standards conformance - skills/ — the provider's own Agent Skill plus two REST-grounded ones - well-known/dyno-well-known.yml — a recorded absence; every /.well-known path 404s ## Company - [Website](https://www.dynotx.com) - [Blog (Substack)](https://dynotx.substack.com/) - [GitHub organisation](https://github.com/dynotx) - [Terms and conditions](https://www.dynotx.com/legal/terms-and-conditions) - [Privacy policy](https://www.dynotx.com/legal/privacy-policy) - [Acceptable use](https://design.dynotx.com/acceptable-use) - [Open-source notice](https://design.dynotx.com/open-source) - Contacts: engineering@dynotx.com (repo manifest), legal@dynotx.com (licensing)