Quick Reference
| Endpoint | Method | Purpose |
|---|---|---|
/session/new | POST | Create a new conversation session |
/session/{session_id}/inquiry/agent | POST | Submit a question to a session |
/inquiry/{inquiry_id}/status | GET | Get current status and answer |
/inquiry/{inquiry_id}/result | GET | Wait for completion (long-poll) |
/api (full URL: https://be.jedify.com/api/session/new).
All endpoints require the X-API-Key header. See Authentication.
Create Session
Create a new conversation session. Sessions group related questions together, enabling follow-up queries with shared context.200):
Submit Query
Submit a natural language question to a session. Returns immediately with aninquiry_id — the query processes asynchronously in the background.
session_id(required): From Create Session
| Field | Type | Required | Description |
|---|---|---|---|
query | string | Yes | The natural language question |
dimensions | object | No | Dimension filters to scope the query |
200):
Get Inquiry Status
Get the current status and answer for an inquiry. Use this for manual polling, or use Wait for Result instead.inquiry_id(required): From Submit Query
200):
The response is the full QueryStatusResponse. Key fields:
follow_up_type, pin_data, chart_view_items, selected_view, etc.) used by the Jedify UI. You can safely ignore fields you don’t need.
While processing, status.general is "processing" and answer, sql_query, and data.data will be empty.
Polling Example (Python)
Status Values
Checkstatus.general to determine inquiry state:
| Value | Terminal? | Meaning |
|---|---|---|
processing | No | Query is being processed |
done | Yes | Completed successfully — answer and data available |
failed | Yes | Processing failed |
timeout | Yes | Processing timed out server-side |
stopped | Yes | Query was stopped by the user |
out_of_domain | Yes | Question is outside your data domain |
out_of_scope | Yes | Question cannot be answered with available data |
no_data | Yes | Query executed but returned no results |
Wait for Result
Long-polling endpoint that waits for an inquiry to complete before returning. The server holds the HTTP connection open, polling internally until the inquiry reaches a terminal status or the timeout is reached. This is the recommended way to get results — simpler than polling/status yourself.
inquiry_id(required): From Submit Query
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
timeout | integer | 300 | 10–900 | Max seconds to wait |
poll_interval | integer | 5 | 2–30 | Seconds between internal status checks |
200): Same shape as Get Inquiry Status. Only returned once the inquiry reaches a terminal status.
Timeout Response (408):
/result again to keep waiting, or switch to polling /status for more control.
Important: Set your HTTP client timeout to exceed the timeout parameter. If you request timeout=120, your client should wait at least 130 seconds.