API Reference

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.

BYOK Proxy Architecture

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.

200 OK
{
  "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).