dyadic

Developers / Platform Integration

Platform Integration

Build an application with the right contract, permissions and completion checks.

Developers / Platform Integration

Choose An API Surface

SurfaceBase URLUse
OpenAI-Compatiblehttps://api.dyadic.app/openai/v1Chat, Responses, Decisions and hosted resources
Anthropic-Compatiblehttps://api.dyadic.app/anthropic/v1Messages, files and batches; omit /v1 in the Anthropic SDK base
OpenRouter Gatewayhttps://api.dyadic.app/openrouter/v1Provider routing with platform-granted gateway access
Platformhttps://api.dyadic.app/v1Runs, 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.

Python
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.