Drits API Hub

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

MethodPathWhat it does
GET/v1/statusService status (no key needed)
GET/v1/meYour account and plan
GET/v1/connectionsList linked systems and their proxy URLs
POST/v1/connectionsCreate 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/toolsOpenAI/Claude-style tool definitions for every connection
POST/v1/ai/callExecute a tool call: {"tool":"call_github","arguments":{"method":"GET","path":"/user"}}
POST/v1/ai/linkAI 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

  1. Fetch /v1/ai/tools and pass the tools array to your model.
  2. When the model returns a tool call, POST it to /v1/ai/call.
  3. 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