Pharmacokinetic simulation for one compound
Pharmacokinetic simulation for one compound: walks the published model at one dose and cadence and returns the modelled serum curve over the requested horizon plus a 60-day washout tail. Deterministic math over published reference data -- not medical advice, not a prescription, and for relay to a human decision-maker rather than autonomous administration.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
1255 msmedian answer time
$0.01listed price per call
$0.01price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://api.doseplot.com/v1/pk/curve
| Category | Everything else |
|---|---|
| Provider host | api.doseplot.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.01 | 1255 ms |
Example input (from the provider)
{
"body": {
"compound": "testosterone-cypionate",
"dose_mg": 100,
"duration_weeks": 12,
"injections_per_week": 1,
"samples_per_day": 4
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"description": "Exactly one dose field must be present. UNKNOWN FIELDS ARE REJECTED: a misspelling is a structural failure (400 with payment presented; the 402 challenge on the free tier), not a silently ignored key (a dropped `injections_per_week` would change the answer). The dose is converted to mg ONCE and the converted value is what both the range check and the model use.",
"oneOf": [
{
"required": [
"dose_mg"
]
},
{
"required": [
"dose_mcg"
]
},
{
"required": [
"dose_iu"
]
}
],
"properties": {
"compound": {
"description": "Canon id, slug, or alias. Slug and alias matching is case-insensitive.",
"type": "string"
},
"dose_iu": {
"description": "Dose per injection in the compound's activity unit. Requires a published conversion for that compound, else 422 unit_unsupported_for_compound.",
"exclusiveMinimum": 0,
"type": "number"
},
"dose_mcg": {
"description": "Dose per injection, micrograms.",
"exclusiveMinimum": 0,
"type": "number"
},
"dose_mg": {
"description": "Dose per injection, milligrams.",
"exclusiveMinimum": 0,
"type": "number"
},
"duration_weeks": {
"description": "Length of the dosing window. The model always adds a 60-day washout tail.",
"maximum": 260,
"minimum": 1,
"type": "integer"
},
"injections_per_week": {
"description": "Injections per WEEK -- not per day. The name is the contract: a per-day reading of the same number changes the accepted dose range by 7x.",
"maximum": 21,
"minimum": 0.25,
"type": "number"
},
"route": {
"description": "One of the compound's published routes (see /v1/compounds/{idOrSlug}); a string this compound does not publish is 422 route_unsupported_for_compound. Omitted, the compound's primary route is used.",
"type": "string"
},
"samples_per_day": {
"default": 24,
"description": "Sample resolution of the returned series.",
"maximum": 24,
"minimum": 1,
"type": "integer"
}
},
"required": [
"compound",
"injections_per_week",
"duration_weeks"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}