Developer Hub
Connect directly to our high-performance FastAPI ingestion endpoints or spin up a local CLI container. Everything goes in unstructured, and comes out as deterministic JSON.
Ingestion Endpoints
Distill expects raw or compressed audio arrays. We recommend buffering the audio directly into the API request to minimize file I/O operations locally.
import httpx
# Send an audio buffer directly to Distill's Engine 2.0 FastAPI
def extract_ticket(audio_path: str):
with open(audio_path, 'rb') as f:
audio_bytes = f.read()
response = httpx.post(
"https://api.distill.ai/v1/extract",
headers={"Authorization": "Bearer YOUR_GROQ_API_KEY"},
files={"file": ("interview.wav", audio_bytes, "audio/wav")},
data={"schema": "linear_feature_request"}
)
return response.json()
print(extract_ticket("ux-sync.wav"))Deterministic Output Architecture
Engine 2.0 strictly constrains generation. The resultant JSON is guaranteed to meet your required Schema, providing an audio_buffer_anchor linking exact millisecond timestamps back to the source tensor.
{
"id": "ext_982bcn12",
"status": "completed",
"entities": [
{
"type": "feature_request",
"summary": "Implement Dark Mode across Dashboard charts",
"confidence": 0.98,
"audio_buffer_anchor": {
"start_ms": 124500,
"end_ms": 136000
}
}
]
}Authentication
All requests require a valid Groq API Key since we act as a secure BYOK proxy. Ensure your requests contain the Authorization: Bearer YOUR_GROQ_API_KEY header.
Webhook Integrations
Instead of polling the API, you can register Webhook Endpoints. Once an extraction finishes processing via the Groq API, Distill will automatically fire a deterministic POST payload directly to your infrastructure (e.g., Linear, Jira, or a custom internal ingestion node).