Skip to main content
POST
/
v1
/
adc-designs
Register a new ADC design
curl --request POST \
  --url https://api.example.com/v1/adc-designs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "candidate_id": "c0f5e4b1-a7d2-4e0b-9f8c-1b2d3e4f5a6b",
  "conjugation_method": "cysteine_engineered",
  "conjugation_site": "S239C",
  "dar_target": 4,
  "linker_name": "mc-vc-PAB",
  "linker_type": "cleavable_peptide",
  "name": "MMAE + vc",
  "payload_class": "auristatin",
  "payload_clogp": 4,
  "payload_name": "MMAE"
}
'
{
  "id": "<string>",
  "candidate_id": "<string>",
  "name": "<string>",
  "linker_name": "<string>",
  "linker_type": "<string>",
  "payload_name": "<string>",
  "conjugation_method": "<string>",
  "created_at": "<string>",
  "updated_at": "<string>",
  "object": "adc_design",
  "linker_smiles": "<string>",
  "payload_smiles": "<string>",
  "payload_class": "<string>",
  "payload_clogp": 123,
  "conjugation_site": "<string>",
  "dar_target": 123,
  "analysis": {},
  "notes": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Body for POST /v1/adc-designs.

Mirrors :class:app.schemas.adc.AdcDesignCreate but annotated for the /v1 OpenAPI surface (examples, explicit descriptions). Cross-org candidate_id values return 404 — no existence leak.

candidate_id
string
required

Therapeutic candidate this design attaches to. Must be owned by the caller's org; cross-org ids return 404.

Example:

"c0f5e4b1-a7d2-4e0b-9f8c-1b2d3e4f5a6b"

name
string
required

Short human label (e.g. MMAE + vc).

Required string length: 1 - 120
Example:

"MMAE + vc"

linker_name
string
required

Linker identifier. Free text — see GET /v1/adc-designs/catalogue for common named linkers but any string is accepted.

Required string length: 1 - 80
Example:

"mc-vc-PAB"

linker_type
enum<string>
required

Mechanism class. cleavable_* linkers release the payload in the endosome; non_cleavable_* require lysosomal degradation of the antibody.

Available options:
cleavable_peptide,
cleavable_disulfide,
cleavable_ph,
non_cleavable_thioether,
non_cleavable_amide,
self_immolative,
custom
payload_name
string
required

Payload identifier (e.g. MMAE, DXd, DM1).

Required string length: 1 - 80
Example:

"MMAE"

conjugation_method
enum<string>
required

Attachment chemistry. cysteine_engineered and enzymatic methods (sortase, spytag) give the tightest DAR control.

Available options:
lysine_native,
cysteine_native,
cysteine_engineered,
sortase,
spytag,
other
linker_smiles
string | null

Optional SMILES string for the linker. Not validated.

payload_smiles
string | null

Optional SMILES string for the payload.

payload_class
enum<string> | null

Mechanistic class. Drives the rule-based analysis.

Available options:
maytansinoid,
auristatin,
camptothecin_analog,
calicheamicin,
pbd_dimer,
other
payload_clogp
number | null

Computed log P for the payload. Used to flag aggregation risk when linker+payload hydrophobicity combine.

conjugation_site
string | null

Residue label for site-specific methods (e.g. S239C).

dar_target
integer | null

Target drug-to-antibody ratio. Analysis flags mismatches with payload tolerances.

Required range: 1 <= x <= 20
notes
string | null

Optional freeform note shown alongside the design.

Response

Successful Response

An ADC design as returned by /v1.

id
string
required

Opaque design identifier (UUID).

Example:

"dd11aa22-bb33-cc44-dd55-eeff66778899"

candidate_id
string
required

Therapeutic candidate this design belongs to.

Example:

"c0f5e4b1-a7d2-4e0b-9f8c-1b2d3e4f5a6b"

name
string
required
linker_name
string
required
linker_type
string
required
payload_name
string
required
conjugation_method
string
required
created_at
string
required

ISO-8601 timestamp (UTC).

updated_at
string
required

ISO-8601 timestamp (UTC).

object
string
default:adc_design

Polymorphic discriminator. Always adc_design.

Allowed value: "adc_design"
linker_smiles
string | null
payload_smiles
string | null
payload_class
string | null
payload_clogp
number | null
conjugation_site
string | null
dar_target
integer | null
analysis
Analysis · object

Cached analysis result, populated by POST /v1/adc-designs/{id}/analysis. null until the first run.

notes
string | null