Skip to content
Data
Skill

/adaptyv

Uses the Adaptyv Bio Foundry API and Python SDK to design protein characterization experiments, estimate costs, submit sequences, monitor laboratory progress, and retrieve results. Applies to Adaptyv Foundry, its target catalog, binding screening and affinity assays,

From plugin
scientific-agent-skills
56k177 skills

Claude Code

$ npx -y skills add K-Dense-AI/scientific-agent-skills --skill adaptyv --agent claude-code

SKILL.md

adaptyv.SKILL.md
name: adaptyv
description: Uses the Adaptyv Bio Foundry API and Python SDK to design protein characterization experiments, estimate costs, submit sequences, monitor laboratory progress, and retrieve results. Applies to Adaptyv Foundry, its target catalog, binding screening and affinity assays, thermostability, expression, fluorescence, epitope binning, and enzyme activity workflows, including code using adaptyv or FoundryClient.
license: MIT
compatibility: Requires network access, an Adaptyv Foundry account and bearer token. Python examples require Python 3.11+ and adaptyv-sdk installed from its official GitHub repository; direct REST examples use httpx.
metadata:
  version: "1.5"
  skill-author: K-Dense Inc.
  last-reviewed: "2026-09-30"

Adaptyv Bio Foundry API

Use this skill to turn protein sequences into experimentally measured data through Adaptyv's cloud laboratory. Confirm the target construct, assay conditions, controls, and replicate plan before submitting a batch; turnaround depends on the experiment.

Reviewed against the deployed [OpenAPI schema](https://devs.adaptyvbio.com/api/v1/openapi.json) (`info.version: 0.0.2`) and official SDK `0.1.0` at commit `cdf207819ed5a58e0c127453626d2bce125c8064`. The schema version alone does not identify all changes. See the [endpoint reference](references/api-endpoints.md) for current request/response details and discrepancies in upstream examples.

Connect

**Base URL:** `https://devs.adaptyvbio.com/api/v1`. The schema is at `/openapi.json`; never append that filename to normal endpoint requests.

Create a bearer token in [Foundry](https://foundry.adaptyvbio.com/) under Organization โ†’ Settings โ†’ Tokens. Use Viewer for reads and Member for experiment writes. Read credentials from `ADAPTYV_API_KEY`; the documentation's `FOUNDRY_API_TOKEN` is an alternative variable name for the same token. If using a project `.env`, explicitly call `python-dotenv.load_dotenv()` before SDK setup; the SDK does not load that file automatically. Never print or commit tokens.

# ADAPTYV_API_KEY is already set in the environment.
curl --fail-with-body 'https://devs.adaptyvbio.com/api/v1/targets?limit=3' \
  -H "Authorization: Bearer $ADAPTYV_API_KEY"

Resource endpoints require bearer authentication. The schema and liveness endpoint `GET /info/health` are public. `GET /whoami` reports the active organization and permissions; check it when account scope is unclear.

Python SDK

Install the reviewed revision in your project environment (requires Python 3.11+):

uv pip install "git+https://github.com/adaptyvbio/adaptyv-sdk.git@cdf207819ed5a58e0c127453626d2bce125c8064"

Import from `adaptyv`, not `adaptyv_sdk`. `FoundryClient` requires explicit `api_key` and `base_url`; the `lab` convenience object reads `ADAPTYV_API_KEY` and `ADAPTYV_API_URL`. Set the latter to the base URL above to override the SDK's older hostname default.

The following examples are illustrative for authenticated use. Their request construction and parsing were checked with mocked HTTP responses, not a paid lab run. Replace environment inputs with real, reviewed sequence data and catalog IDs.

Browse, estimate, create a draft

import json
import os
from pathlib import Path
from adaptyv import FoundryClient

client = FoundryClient(
    api_key=os.environ["ADAPTYV_API_KEY"],
    base_url="https://devs.adaptyvbio.com/api/v1",
)

# Review vendor, catalog number, construct, and pricing before selecting an ID.
targets = client.targets.list(search="EGFR", selfservice_only=True, detailed=True)
for target in targets.items:
    print(target.id, target.name, target.vendor_name, target.catalog_number)

# candidates.json is a map of unique names to full amino acid sequences.
sequences = json.loads(Path("candidates.json").read_text())
spec = {
    "experiment_type": "screening",
    "method": "bli",
    "target_id": os.environ["ADAPTYV_TARGET_ID"],
    "sequences": sequences,
    "n_replicates": 3,
}

# SDK takes the spec itself; REST takes {"experiment_spec": spec}.
estimate = client.experiments.cost_estimate(spec)
if estimate.breakdown is None:
    raise ValueError("Incomplete estimate: review warnings and obtain a full quote")
print("Estimated USD cents, excluding VAT:", estimate.breakdown.total_cents)

# After the batch and estimated cost have been reviewed:
exp = client.experiments.create(name="EGFR binder screen batch 1", experiment_spec=spec)
experiment_id = exp.experiment_id
client.close()

`create(name=..., experiment_spec=...)` does not accept a single REST-body dictionary. `cost_estimate(spec)` wraps the spec itself; do not wrap it a second time. For an affinity experiment, the SDK additionally requires explicit `antigen_concentrations`, even though REST supplies a default when omitted.

Submit, then inspect and confirm the quote

With a configured client and the saved `experiment_id`:

client.experiments.submit(experiment_id)
# Quote generation is asynchronous. Retry get_quote with a bounded timeout if it
# returns 404 after successful submission; a draft has no forthcoming quote.
quote = client.experiments.get_quote(experiment_id)
print(quote.amount_total, quote.currency, quote.expires_at)

# Once the quote is accepted within the user's authorized scope:
accepted = client.experiments.confirm_quote(experiment_id)
print(accepted.invoice_id, accepted.hosted_invoice_url)

Confirmation creates/finalizes an invoice; it does not settle payment. Use the returned hosted invoice URL or the current REST payment pointer. SDK 0.1.0 does not expose invoice payment, organization webhooks, or `whoami` helpers.

Avoid the reviewed SDK's `lab.experiment(target="EGFR")` shortcut: it passes only UUID-shaped targets and does not resolve a target name. `auto_confirm=True` and `lab.confirm_experiment()` call submission, not the quote-confirm endpoint. Use the explicit client methods above. The decorator also supplies `method` for non-binding expe

Read more
@k-dense-ai
Ships withscientific-agent-skills

๐Ÿ”” Claude Scientific Skills is now Scientific Agent Skills. Same skills, broader compatibility โ€” now works with any AI agent that supports the open Agent Skills standard, not just Claude.

Stars on GitHub

Momentum

stars in total
55.6k
Star history of K-Dense-AI/scientific-agent-skills on GitHub, a chart by star-history.com

Other skills on scientific-agent-skills.

aeon

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting,โ€ฆ

More skills from other plugins.

paddleocr-doc-parsing

paddleocr-doc-parsing

Use this skill to extract structured Markdown/JSON from PDFs and document imagesโ€”tables with cell-level precision, formulas asโ€ฆ

@paddlepaddle@paddlepaddleInstall Skill
context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,โ€ฆ

mem04d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and anโ€ฆ

posthog11d41k
@posthog@posthogInstall Skill
qmd

qmd

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents,โ€ฆ

qmd3w31k
@tobi@tobiInstall Skill

Questions about adaptyv.

Which coding agents can use adaptyv?
adaptyv installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.