Developers / Platform Integration
Platform Integration
Build an application with the right contract, permissions and completion checks.
Choose An API Surface
| Surface | Base URL | Use |
|---|---|---|
| OpenAI-Compatible | https://api.dyadic.app/openai/v1 | Chat, Responses, Decisions and hosted resources |
| Anthropic-Compatible | https://api.dyadic.app/anthropic/v1 | Messages, files and batches; omit /v1 in the Anthropic SDK base |
| OpenRouter Gateway | https://api.dyadic.app/openrouter/v1 | Provider routing with platform-granted gateway access |
| Platform | https://api.dyadic.app/v1 | Runs, Plans and Black Box |
Each base exposes /openapi.json. The OpenAI-compatible surface also exposes
/capabilities. Use the API Reference for the supported fields and errors.
Compatibility is a documented subset. Contract versions, SDK versions and MCP versions advance independently.
Dyadic SDKs take the OpenAI-compatible base and derive sibling URLs. Their current default is
https://dyadic.app/api/openai/v1; the website's /api aliases remain supported.
Keys And Permissions
Keep keys on your application server. Use a Bearer key;
Anthropic clients can use x-api-key. The key's tenant, limits and capability switches remain enforced.
Hosted code, file search, skills and remote MCP have separate switches. Referenced file IDs may also need Files access.
Workspace Store, Current Work, Patch, independent Agent Tasks and paired-machine controls use owner sessions. They are not public SDK resources. Private engineering documentation requires an administrator session.
Runs And Approved Plans
Use runs.create for an agent operation or
runs.run to service application function calls. Your application authorizes and executes those functions.
A tool call alone is not a completed effect. Plan Mode investigates and proposes; execution requires approval of
the exact current revision. Edits invalidate an older approval. Follow plan events and explicitly continue an interrupted plan.
SDK examples cover Python and TypeScript. Decisions return typed judgments; their latency, model quality and cost depend on the request and current configuration.
Search And Read Public Sources
The SDK's shared web resources use Dyadic's search and page reader. Returned text remains untrusted content. Check source URLs, dates and truncation.
from dyadic import Dyadic
with Dyadic() as client:
results = client.web.search("Dyadic API", max_results=3)
page = client.web.read("https://dyadic.app/developers/", max_chars=4000)
print(results, page)Streams, Retries And Cancellation
Consume the endpoint's terminal event. Closing a stream or aborting HTTP releases the client connection; it does not prove a provider stopped, a background job was cancelled or no credits were used. Inspect retained resources and use their cancellation operation where available. A reconnecting event reader is different from resubmitting the operation.
SDK retries are bounded.
An Idempotency-Key header is not a universal deduplication guarantee. Do not automatically replay an
uncertain completion or write. Keep request and resource IDs, and distinguish estimates, holds and settled charges.
Execution Evidence
Black Box records actions and integrity evidence. Recorded execution, persisted files, delivered attachments and semantic correctness are separate observations. Unknown usage remains unknown; duration-priced voice can lack tokens. A verified chain is not proof that every reported claim is true. See Black Box MCP for authenticated recording and investigation.