Developer docs
Base URL: https://api.drits.tech/v1. Authenticate every request with your Drits key: Authorization: Bearer dt_… (or X-Drits-Key).
Proxy any linked system
Everything after /v1/proxy/{connection-slug} is forwarded to that system's base URL with its credentials injected. Method, query string, body and content type pass straight through.
curl -X POST https://api.drits.tech/v1/proxy/slack/chat.postMessage \
-H "Authorization: Bearer dt_xxx" -H "Content-Type: application/json" \
-d '{"channel":"#sales","text":"New order 🎉"}'
// JavaScript (server-side)
const r = await fetch("https://api.drits.tech/v1/proxy/woocommerce/orders?status=processing", {
headers: { Authorization: "Bearer " + process.env.DRITS_KEY }
});
const orders = await r.json();
<?php // PHP
$ch = curl_init("https://api.drits.tech/v1/proxy/github/user");
curl_setopt_array($ch, [CURLOPT_HTTPHEADER => ["Authorization: Bearer $dritsKey"], CURLOPT_RETURNTRANSFER => true]);
$me = json_decode(curl_exec($ch), true);
Endpoints
| Method | Path | What it does |
|---|---|---|
| GET | /v1/status | Service status (no key needed) |
| GET | /v1/me | Your account and plan |
| GET | /v1/connections | List linked systems and their proxy URLs |
| POST | /v1/connections | Create a connection: name, base_url, auth_type, token | username+password, auth_header, auth_param, test_path |
| ANY | /v1/proxy/{slug}/{path} | Call the linked system |
| GET | /v1/ai/tools | OpenAI/Claude-style tool definitions for every connection |
| POST | /v1/ai/call | Execute a tool call: {"tool":"call_github","arguments":{"method":"GET","path":"/user"}} |
| POST | /v1/ai/link | AI auto-detects how to link a system: {"url":"https://shop.example.co.za"}; add "create":true,"token":"…" to link it in one step |
| POST | /hook/{token} | Inbound webhook (from the Webhooks page); optionally forwarded to a connection |
Let an AI agent use your systems
- Fetch
/v1/ai/toolsand pass thetoolsarray to your model. - When the model returns a tool call, POST it to
/v1/ai/call. - Feed the JSON result back to the model.
tools = requests.get("https://api.drits.tech/v1/ai/tools", headers=H).json()["tools"]
# … model picks a tool …
result = requests.post("https://api.drits.tech/v1/ai/call", headers=H,
json={"tool": "call_hubspot", "arguments": {"method": "GET", "path": "/crm/v3/objects/contacts", "query": {"limit": 5}}}).json()
Errors & limits
401 invalid key · 402 account not approved or plan unpaid · 404 unknown connection · 429 rate limited (see X-RateLimit-Remaining) · 502 upstream unreachable. Requests to private/internal networks are blocked.
Machine-readable spec: openapi.json