
Adaptyv
Wire Adaptyv Bio Foundry REST calls into agent workflows so protein experiments, quotes, and lab results run without hand-reading OpenAPI each time.
Overview
Adaptyv is an agent skill for the Build phase that documents the Adaptyv Bio Foundry public REST API so coding agents can create protein experiments, manage sequences, and retrieve lab results programmatically.
Install
npx skills add https://github.com/k-dense-ai/scientific-agent-skills --skill adaptyvWhat is this skill?
- Eight endpoint areas: experiments, sequences, results, targets, quotes, tokens, updates, and feedback against the public
- Five experiment_type values—affinity, screening, thermostability, fluorescence, expression—with BLI/SPR method rules for
- Experiment lifecycle controls: Draft default, skip_draft, auto_accept_quote, and optional webhook_url for status POSTs
- ExperimentSpec covers target_id, sequence name maps, and n_replicates (recommended default 3, minimum 1)
- Points agents at GET /openapi.json on foundry-api-public.adaptyvbio.com for schema parity
- Five experiment_type values: affinity, screening, thermostability, fluorescence, and expression
- Eight documented API areas in the skill table of contents
- Default n_replicates recommendation of 3 technical replicates per experiment
Adoption & trust: 519 installs on skills.sh; 27.6k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need to submit protein binding or expression experiments to Adaptyv's foundry from an agent but lack a structured endpoint and payload reference in the repo.
Who is it for?
Solo builders automating biotech or protein-engineering pipelines who already have Adaptyv Foundry access and want agent-guided API calls with correct enums and required fields.
Skip if: Builders not using Adaptyv Bio, or teams that only need generic REST tutorials without foundry-specific experiment specs, quotes, or wet-lab billing flows.
When should I use this skill?
Integrating Adaptyv Bio Foundry API for experiments, sequences, results, targets, quotes, or tokens from an agent or backend service.
What do I get? / Deliverables
Your agent can call the correct Adaptyv v1 endpoints with valid ExperimentSpec payloads, quote handling, token auth patterns, and webhook hooks aligned to the published OpenAPI spec.
- Correct Adaptyv API request bodies and endpoint paths for create/read/update flows
- Experiment drafts or submitted runs with valid experiment_type, method, and replicate settings
- Webhook and quote-handling behavior aligned to Draft versus WaitingForConfirmation lifecycle
Recommended Skills
Journey fit
Canonical shelf is Build because the skill is a production API integration reference agents invoke while implementing backend or automation code against Adaptyv. Integrations is the right subphase: every section maps HTTP resources (experiments, sequences, targets, quotes, tokens) to callable endpoints, not UI or generic docs.
How it compares
Use this structured Adaptyv endpoint skill instead of ad-hoc chat guesses or a generic HTTP MCP wrapper with no ExperimentSpec or quote lifecycle detail.
Common Questions / FAQ
Who is adaptyv for?
Adaptyv is for solo and indie developers and agent authors integrating Adaptyv Bio Foundry—especially those automating affinity, screening, thermostability, fluorescence, or expression experiments via the public API.
When should I use adaptyv?
Use adaptyv in the Build phase while implementing backend integrations or agent tools that POST experiments, attach sequences, fetch results, or configure webhooks; also when validating API payloads before you wire production orchestration.
Is adaptyv safe to install?
The skill is documentation for a third-party lab API; review the Security Audits panel on this Prism page before install and treat API tokens and webhook URLs as secrets in your own deployment.
SKILL.md
READMESKILL.md - Adaptyv
# Adaptyv Bio Foundry API — Complete Endpoint Reference Base URL: `https://foundry-api-public.adaptyvbio.com/api/v1` OpenAPI spec: `GET /openapi.json` ## Table of Contents - [Experiments](#experiments) - [Sequences](#sequences) - [Results](#results) - [Targets](#targets) - [Quotes](#quotes) - [Tokens](#tokens) - [Updates](#updates) - [Feedback](#feedback) --- ## Experiments ### POST /experiments — Create experiment Creates a new experiment. Starts in `Draft` status by default. **Request body:** | Field | Type | Required | Description | |---|---|---|---| | `name` | string | Yes | Human-readable name | | `experiment_spec` | ExperimentSpec | Yes | Experiment definition (see below) | | `skip_draft` | boolean | No (default false) | Bypass Draft, go straight to WaitingForConfirmation | | `auto_accept_quote` | boolean | No (default false) | Auto-accept quote and create invoice | | `webhook_url` | string/null | No | URL for status-change POST notifications | **ExperimentSpec:** | Field | Type | Required | Description | |---|---|---|---| | `experiment_type` | string | Yes | `affinity`, `screening`, `thermostability`, `fluorescence`, or `expression` | | `method` | string | Required for binding types | `bli` or `spr` | | `target_id` | uuid | Required for binding types | Target UUID from catalog | | `sequences` | object | Yes | Map of name → amino acid string or rich object | | `n_replicates` | integer | Recommended (default 3) | Technical replicates (min 1) | | `antigen_concentrations` | number[] | No (affinity only) | Defaults to `[1000.0, 316.2, 100.0, 31.6, 0.0]` nM | | `parameters` | object | No | Experiment-specific settings | **Field requirements by experiment type:** | Field | Affinity | Screening | Thermostability | Fluorescence | Expression | |---|---|---|---|---|---| | `experiment_type` | required | required | required | required | required | | `method` | required | required | — | — | — | | `target_id` | required | required | — | — | — | | `sequences` | required | required | required | required | required | | `n_replicates` | recommended | recommended | optional | optional | optional | | `antigen_concentrations` | optional | — | — | — | — | **Response (201):** | Field | Type | Description | |---|---|---| | `experiment_id` | string | UUID of new experiment | | `error` | string/null | Error message if validation fails | | `stripe_hosted_invoice_url` | string/null | Present when `auto_accept_quote` created an invoice | | `stripe_invoice_id` | string/null | Stripe invoice ID | **Status codes:** 201, 400, 401, 403, 404 --- ### GET /experiments — List experiments Lists experiments accessible to caller, sorted by creation date (newest first). **Query params:** `limit`, `offset`, `filter`, `search`, `sort` **Response item:** | Field | Type | Description | |---|---|---| | `id` | uuid | Unique identifier | | `code` | string | e.g., "EXP-2024-001" | | `name` | string/null | Human-readable name | | `status` | ExperimentStatus | Current lifecycle status | | `experiment_type` | ExperimentType | affinity/screening/thermostability/fluorescence/expression | | `results_status` | ResultsStatus | none/partial/all | | `created_at` | datetime | ISO 8601 | | `experiment_url` | string | URL to Foundry portal | | `stripe_invoice_url` | string/null | Invoice URL | | `stripe_quote_url` | string/null | Quote URL | **Status codes:** 200, 401 --- ### GET /experiments/{experiment_id} — Get experiment Returns full metadata for a single experiment. **Path param:** `experiment_id` (uuid) **Response:** | Field | Type | Description | |---|---|---| | `id` | uuid | Unique identifier | | `code` | string | Experiment code | | `status` | ExperimentStatus | Current status | | `experiment_spec` | ExperimentSpec | Full experiment definition | | `results_status` | ResultsStatus | none/partial/all | | `created_at` | datetime | ISO 8601 | | `experiment_url` | string | Portal URL | | `costs` | object | Cost breakdown | **Status codes:** 200, 401