SDKs
Expedify ships typed client libraries for TypeScript and Python, generated from the /v1 OpenAPI spec — so they never drift from the API. They bake in Bearer agx_ auth, pagination, the filter DSL, typed models, and automatic 429 retry.
The SDKs are generated from the published spec (that's why the API's named types — Contact, Deal, ErrorEnvelope — come through). The examples below show the target ergonomics for the published @expedify/sdk / expedify packages. Install availability is announced here at launch.
Install
# TypeScript / JavaScript
npm install @expedify/sdk
# Python
pip install expedify
Authenticate
import { Expedify } from "@expedify/sdk";
const client = new Expedify({ apiKey: process.env.EXPEDIFY_API_KEY });
from expedify import Expedify
client = Expedify(api_key=os.environ["EXPEDIFY_API_KEY"])
The client sends Authorization: Bearer agx_… on every request against https://api.expedify.ai/v1.
Typed CRM objects
const contact = await client.contacts.create({
email: "jane@acme.com",
first_name: "Jane",
lead_status: "qualified",
});
const deal = await client.deals.get(dealId); // typed Deal
Requests and responses are the named schemas from the spec (Contact, ContactCreate, Deal, …).
Pagination
for await (const contact of client.contacts.listAll({ q: "acme" })) {
// auto-follows offset pages
}
Filtering (the DSL)
await client.contacts.list({
filters: [{ field: "lead_score", operator: "gte", value: 50 }],
match: "all",
sort: "created_at",
order: "desc",
});
Errors
The error envelope is raised as a typed exception:
from expedify import ExpedifyError
try:
client.contacts.get(bad_id)
except ExpedifyError as e:
print(e.type, e.message, e.request_id) # e.g. "not_found", "...", "..."
Retries
429 responses are retried automatically, honoring Retry-After. Configurable via the client options.
SDKs are versioned to /v1. A breaking contract change (caught by the golden contract test) forces a major version bump — never a silent break.
The SDKs cover the REST surface. For MCP, clients speak the protocol natively — the "SDK" is just the connect guide.