Get Question Status
API Documentation
Get Question Status
Retrieve the status and results of a previously submitted question
GET
Get Question Status
Retrieves the current status and results of a question that was submitted to the assistant. This endpoint is primarily used to check the progress of async questions or to retrieve results after webhook notifications.
Authentication
This endpoint requires a valid API key in the Authorization header.Path Parameters
string
required
The ID of the assistant that processed the question. Use
"default" for the
general Wordsmith assistant, or the specific assistant ID used in the original
request.string
required
The
id returned when the question was originally created. This addresses that
specific question — for the first question in a session it equals the session ID,
and for follow-up questions it is a distinct question ID. See
Understanding IDs.Response
string
The unique identifier for this specific question.
string
The session ID that contains this question. This remains constant for all
questions within the same conversation session.
null only when status is
"filtered", where no session was created.string
A direct URL to view this session in the Wordsmith web application. This
allows users to access the full conversation history and interact with the
assistant through the web interface.
null only when status is
"filtered", where there is no session to view.string
The current status of the question:
"in_progress": The assistant is still
processing your question. "completed": Processing is complete and the answer
is available. "error": An error occurred during processing. "filtered":
The assistant declined the question, so nothing was processed and no session
exists — see Filtered
questions."completed", "error" and "filtered" are all terminal: once returned, a question’s status never changes again. Only "in_progress" is worth polling on.string
The assistant’s response to your question. Present when
status is
"completed", and also when it is "filtered" — where it carries the
decline wording, so a client that only reads answer still has something to
show. See Filtered
questions.array
Array of files generated by the assistant during processing. Only present when
status is "completed" and files were generated.string
One sentence explaining why the assistant declined this particular question, stored when it was
filtered and returned unchanged on every later poll. Present only when
status is "filtered",
and null for every other status. answer carries the same sentence, unless the assistant’s owner
has set fixed wording to return instead. Both can be null on a filtered question — questions
filtered before these fields existed have no stored explanation — so show them when they are there
rather than depending on them.Understanding IDs
ID vs Session ID
The response includes two important identifiers:id: The unique identifier for this specific question. For the first question in a session, this equals the session_id. For follow-up questions, this is a unique feed item ID.session_id: The session ID that contains this question. This remains constant for all questions within the same conversation, and isnullfor a filtered question.
- First question in a new session:
idandsession_idare the same - Follow-up question:
idis a unique question ID,session_idis the original session ID - Filtered question:
idnames the question itself,session_idisnullbecause no session was created
id field to check the status of individual questions, and the session_id to identify which conversation session the question belongs to.
Polling Strategy
When using async mode, you can poll this endpoint to check for completion. Stop on any terminal status —"completed", "error" or "filtered" — and treat everything else as still in flight. A loop that waits only for "completed" or "error" polls a filtered question until it times out.
Here’s a recommended polling strategy:
Error Responses
See the Errors page for the full error format reference.File Download
When the response includes attachments, you can download them using the provided URLs:Best Practices
Polling Guidelines
- Start with short intervals: Begin with 2-3 second intervals for quick questions
- Use exponential backoff: Gradually increase intervals to reduce API calls
- Set reasonable timeouts: Most questions complete within 2-5 minutes
- Stop on every terminal status:
"completed","error"and"filtered"are all final — never poll past one - Handle errors gracefully: Always check for error status and handle appropriately
File Management
- Download promptly: Attachment URLs expire after 24 hours
- Store locally if needed: Download and store important generated files
- Check file sizes: Large files may take time to generate and download
Performance Optimization
- Use webhooks when possible: More efficient than polling for production applications
- Cache results: Store completed responses to avoid unnecessary API calls
- Batch requests: If checking multiple questions, consider batching your requests
Use Cases
- Status checking: Monitor progress of long-running document analysis
- Result retrieval: Get answers after receiving webhook notifications
- Error handling: Check for and handle processing errors
- File downloads: Retrieve generated reports and analysis documents
- Integration workflows: Build automated systems that process legal documents