Research
Ask questions across your feedback and read the saved answers
/api/v0/research/queriesList research queries
Retrieve the saved research queries that started a thread, most recent first. Follow-ups are not included. Read one thread's follow-ups from /api/v0/research/queries/{query_id}/follow_ups.
Which page to return. Starts at 1.
How many results to return per page.
The saved research queries.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The question that was asked.
The synthesized answer. Citations appear as bracketed indexes into cited_feedback, one bracket per source: [1][3], not [1, 3].
The buffer the search was scoped to, or null for a search across all feedback.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The display name of the buffer.
The URL-safe identifier for the buffer.
The target the search was scoped to, or null when it was not target-scoped.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Which kind of surface this target identifies. Immutable after create.
A human-readable label, derived from metadata when the target was created.
The details identifying the target. Which fields it carries depends on type; the shape for each type is listed below.
One of the following:
Rest Endpoint Metadata
The HTTP method (e.g. GET, POST).
The API endpoint path.
The hostname of the API (e.g. api.example.com).
The API version string (e.g. v1).
Documentation Metadata
The URL of the documentation page.
The section heading within the page.
The documentation version string.
Cli Command Metadata
The CLI command name.
The subcommand path, which may be multi-word (e.g. "container run").
The CLI version string.
The documented flags and args, e.g. ["--rm", "--network"].
Set when the search was scoped to every target of one kind rather than a single target.
The feedback the answer was synthesized from, most relevant first.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The names of the buffers this feedback was in when the query ran.
How closely this feedback matched the question, from 0 to 1, rounded to three places.
The number of feedback items searched to build this answer.
The number of tokens consumed synthesizing this answer.
The query that started this thread. parent_query_id is null when this query started the thread itself. A thread is one level deep, so this never names another follow-up.
How many follow-ups hang off this query. Fetch them from /api/v0/research/queries/{query_id}/follow_ups. A thread is one level deep, so follow_up_count is always 0 on a follow-up.
The response metadata for a collection.
The page this response came from. Starts at 1.
The number of items per page.
The total number of items across all pages.
The total number of pages.
The path to the next page, carrying the same filters, or null when you are on the last page. Request it as-is rather than building your own query string.
The path to the previous page, carrying the same filters, or null on page 1.
The links for the collection itself, carrying the filters and page from this request.
Where to call this resource in this API, for example /api/v0/feedback/8x7k2mN.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
Where a person can open this resource in InputBuffer, for example /o/yoyodyne/feedback/8x7k2mN. Use it to link a user straight to the page. web is null when the resource has no page of its own.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
The links for each item in data, keyed by that item's id.
401The API token is missing, malformed, or revoked.
The API token is missing, malformed, or revoked.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
500Something went wrong on our end.
Something went wrong on our end.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
/api/v0/research/queriesAsk a research question
Ask a question across your feedback and get back an answer built from the feedback that matches it. The answer is saved, and you can read it again at /api/v0/research/queries/{query_id}. Asking a question here starts a thread. To keep going, post your next question to /api/v0/research/queries/{query_id}/follow_ups.
Expect this call to take a few seconds. Each one counts against your monthly research allowance.
Your question.
A buffer's id or its slug. Both reach the same buffer, so you can send whichever one you have. A slug changes when the buffer is renamed, and an id never changes.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
What kind of thing feedback is attached to. A target is identified by its type and its metadata together, so the type cannot change once the target exists. Create a new target instead.
The number of feedback items to search. A higher number gives the answer more to draw on. This is not a page size, and there is no second page. Reflected back as feedback_count_searched.
A question asked against your feedback and the answer that was synthesized for it. Every research endpoint returns exactly these keys.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The question that was asked.
The synthesized answer. Citations appear as bracketed indexes into cited_feedback, one bracket per source: [1][3], not [1, 3].
The buffer the search was scoped to, or null for a search across all feedback.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The display name of the buffer.
The URL-safe identifier for the buffer.
The target the search was scoped to, or null when it was not target-scoped.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Which kind of surface this target identifies. Immutable after create.
A human-readable label, derived from metadata when the target was created.
The details identifying the target. Which fields it carries depends on type; the shape for each type is listed below.
One of the following:
Rest Endpoint Metadata
The HTTP method (e.g. GET, POST).
The API endpoint path.
The hostname of the API (e.g. api.example.com).
The API version string (e.g. v1).
Documentation Metadata
The URL of the documentation page.
The section heading within the page.
The documentation version string.
Cli Command Metadata
The CLI command name.
The subcommand path, which may be multi-word (e.g. "container run").
The CLI version string.
The documented flags and args, e.g. ["--rm", "--network"].
Set when the search was scoped to every target of one kind rather than a single target.
The feedback the answer was synthesized from, most relevant first.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The names of the buffers this feedback was in when the query ran.
How closely this feedback matched the question, from 0 to 1, rounded to three places.
The number of feedback items searched to build this answer.
The number of tokens consumed synthesizing this answer.
The query that started this thread. parent_query_id is null when this query started the thread itself. A thread is one level deep, so this never names another follow-up.
How many follow-ups hang off this query. Fetch them from /api/v0/research/queries/{query_id}/follow_ups. A thread is one level deep, so follow_up_count is always 0 on a follow-up.
The response metadata for a single resource.
The links for the resource in data.
Where to call this resource in this API, for example /api/v0/feedback/8x7k2mN.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
Where a person can open this resource in InputBuffer, for example /o/yoyodyne/feedback/8x7k2mN. Use it to link a user straight to the page. web is null when the resource has no page of its own.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
The links for the objects embedded in this resource, keyed by the field each one sits at. A value is null when the embedded object has nothing to link to. {} when the resource embeds nothing.
401The API token is missing, malformed, or revoked.
The API token is missing, malformed, or revoked.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
402The organization has used its monthly research query allowance (usage-limit-reached).
The organization has used its monthly research query allowance (usage-limit-reached).
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
403The token is valid but not permitted to perform this action.
The token is valid but not permitted to perform this action.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
404The buffer_id or target_id you sent does not match anything in this organization (buffer-not-found, target-not-found).
The buffer_id or target_id you sent does not match anything in this organization (buffer-not-found, target-not-found).
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
415The request body wasn't sent as application/json (or application/merge-patch+json, which PATCH also accepts). Set the Content-Type header and send a JSON-encoded body.
The request body wasn't sent as application/json (or application/merge-patch+json, which PATCH also accepts). Set the Content-Type header and send a JSON-encoded body.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
422A required field is missing or a field value is invalid. Check field.
A required field is missing or a field value is invalid. Check field.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
500Something went wrong on our end.
Something went wrong on our end.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
/api/v0/research/queries/{query_id}Get a research query
Retrieve a single research query. Follow-ups are addressable in their own right: asking for one returns that query, not the root of its thread.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
A question asked against your feedback and the answer that was synthesized for it. Every research endpoint returns exactly these keys.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The question that was asked.
The synthesized answer. Citations appear as bracketed indexes into cited_feedback, one bracket per source: [1][3], not [1, 3].
The buffer the search was scoped to, or null for a search across all feedback.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The display name of the buffer.
The URL-safe identifier for the buffer.
The target the search was scoped to, or null when it was not target-scoped.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Which kind of surface this target identifies. Immutable after create.
A human-readable label, derived from metadata when the target was created.
The details identifying the target. Which fields it carries depends on type; the shape for each type is listed below.
One of the following:
Rest Endpoint Metadata
The HTTP method (e.g. GET, POST).
The API endpoint path.
The hostname of the API (e.g. api.example.com).
The API version string (e.g. v1).
Documentation Metadata
The URL of the documentation page.
The section heading within the page.
The documentation version string.
Cli Command Metadata
The CLI command name.
The subcommand path, which may be multi-word (e.g. "container run").
The CLI version string.
The documented flags and args, e.g. ["--rm", "--network"].
Set when the search was scoped to every target of one kind rather than a single target.
The feedback the answer was synthesized from, most relevant first.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The names of the buffers this feedback was in when the query ran.
How closely this feedback matched the question, from 0 to 1, rounded to three places.
The number of feedback items searched to build this answer.
The number of tokens consumed synthesizing this answer.
The query that started this thread. parent_query_id is null when this query started the thread itself. A thread is one level deep, so this never names another follow-up.
How many follow-ups hang off this query. Fetch them from /api/v0/research/queries/{query_id}/follow_ups. A thread is one level deep, so follow_up_count is always 0 on a follow-up.
The response metadata for a single resource.
The links for the resource in data.
Where to call this resource in this API, for example /api/v0/feedback/8x7k2mN.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
Where a person can open this resource in InputBuffer, for example /o/yoyodyne/feedback/8x7k2mN. Use it to link a user straight to the page. web is null when the resource has no page of its own.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
The links for the objects embedded in this resource, keyed by the field each one sits at. A value is null when the embedded object has nothing to link to. {} when the resource embeds nothing.
401The API token is missing, malformed, or revoked.
The API token is missing, malformed, or revoked.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
404No research query matches this ID in your organization (research-query-not-found).
No research query matches this ID in your organization (research-query-not-found).
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
500Something went wrong on our end.
Something went wrong on our end.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
/api/v0/research/queries/{query_id}/follow_upsList follow-ups to a research query
Retrieve the follow-up questions asked against this query, most recent first. These are the same objects the queries collection returns; a thread is this plus its parent.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Which page to return. Starts at 1.
How many results to return per page.
The follow-ups to this query.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The question that was asked.
The synthesized answer. Citations appear as bracketed indexes into cited_feedback, one bracket per source: [1][3], not [1, 3].
The buffer the search was scoped to, or null for a search across all feedback.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The display name of the buffer.
The URL-safe identifier for the buffer.
The target the search was scoped to, or null when it was not target-scoped.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Which kind of surface this target identifies. Immutable after create.
A human-readable label, derived from metadata when the target was created.
The details identifying the target. Which fields it carries depends on type; the shape for each type is listed below.
One of the following:
Rest Endpoint Metadata
The HTTP method (e.g. GET, POST).
The API endpoint path.
The hostname of the API (e.g. api.example.com).
The API version string (e.g. v1).
Documentation Metadata
The URL of the documentation page.
The section heading within the page.
The documentation version string.
Cli Command Metadata
The CLI command name.
The subcommand path, which may be multi-word (e.g. "container run").
The CLI version string.
The documented flags and args, e.g. ["--rm", "--network"].
Set when the search was scoped to every target of one kind rather than a single target.
The feedback the answer was synthesized from, most relevant first.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The names of the buffers this feedback was in when the query ran.
How closely this feedback matched the question, from 0 to 1, rounded to three places.
The number of feedback items searched to build this answer.
The number of tokens consumed synthesizing this answer.
The query that started this thread. parent_query_id is null when this query started the thread itself. A thread is one level deep, so this never names another follow-up.
How many follow-ups hang off this query. Fetch them from /api/v0/research/queries/{query_id}/follow_ups. A thread is one level deep, so follow_up_count is always 0 on a follow-up.
The response metadata for a collection.
The page this response came from. Starts at 1.
The number of items per page.
The total number of items across all pages.
The total number of pages.
The path to the next page, carrying the same filters, or null when you are on the last page. Request it as-is rather than building your own query string.
The path to the previous page, carrying the same filters, or null on page 1.
The links for the collection itself, carrying the filters and page from this request.
Where to call this resource in this API, for example /api/v0/feedback/8x7k2mN.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
Where a person can open this resource in InputBuffer, for example /o/yoyodyne/feedback/8x7k2mN. Use it to link a user straight to the page. web is null when the resource has no page of its own.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
The links for each item in data, keyed by that item's id.
401The API token is missing, malformed, or revoked.
The API token is missing, malformed, or revoked.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
404No research query matches this ID in your organization (research-query-not-found).
No research query matches this ID in your organization (research-query-not-found).
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
500Something went wrong on our end.
Something went wrong on our end.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
/api/v0/research/queries/{query_id}/follow_upsAsk a follow-up question
Ask a follow-up to a question you already asked. The answer is written with the earlier questions and answers of the thread in view, and it searches the same buffer and the same target the thread started with. Send query_id for the query that started the thread. A thread is one level deep, so a follow-up cannot take follow-ups of its own.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Your follow-up question.
The number of feedback items to search. A higher number gives the answer more to draw on. This is not a page size, and there is no second page. Reflected back as feedback_count_searched. Ignored when reuse_feedback is true.
Answer from the feedback this thread has already cited instead of running a fresh search. Every answer in the thread then draws on the same feedback.
A question asked against your feedback and the answer that was synthesized for it. Every research endpoint returns exactly these keys.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The question that was asked.
The synthesized answer. Citations appear as bracketed indexes into cited_feedback, one bracket per source: [1][3], not [1, 3].
The buffer the search was scoped to, or null for a search across all feedback.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The display name of the buffer.
The URL-safe identifier for the buffer.
The target the search was scoped to, or null when it was not target-scoped.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
Which kind of surface this target identifies. Immutable after create.
A human-readable label, derived from metadata when the target was created.
The details identifying the target. Which fields it carries depends on type; the shape for each type is listed below.
One of the following:
Rest Endpoint Metadata
The HTTP method (e.g. GET, POST).
The API endpoint path.
The hostname of the API (e.g. api.example.com).
The API version string (e.g. v1).
Documentation Metadata
The URL of the documentation page.
The section heading within the page.
The documentation version string.
Cli Command Metadata
The CLI command name.
The subcommand path, which may be multi-word (e.g. "container run").
The CLI version string.
The documented flags and args, e.g. ["--rm", "--network"].
Set when the search was scoped to every target of one kind rather than a single target.
The feedback the answer was synthesized from, most relevant first.
A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.
The names of the buffers this feedback was in when the query ran.
How closely this feedback matched the question, from 0 to 1, rounded to three places.
The number of feedback items searched to build this answer.
The number of tokens consumed synthesizing this answer.
The query that started this thread. parent_query_id is null when this query started the thread itself. A thread is one level deep, so this never names another follow-up.
How many follow-ups hang off this query. Fetch them from /api/v0/research/queries/{query_id}/follow_ups. A thread is one level deep, so follow_up_count is always 0 on a follow-up.
The response metadata for a single resource.
The links for the resource in data.
Where to call this resource in this API, for example /api/v0/feedback/8x7k2mN.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
Where a person can open this resource in InputBuffer, for example /o/yoyodyne/feedback/8x7k2mN. Use it to link a user straight to the page. web is null when the resource has no page of its own.
The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.
The links for the objects embedded in this resource, keyed by the field each one sits at. A value is null when the embedded object has nothing to link to. {} when the resource embeds nothing.
401The API token is missing, malformed, or revoked.
The API token is missing, malformed, or revoked.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
402The organization has used its monthly research query allowance (usage-limit-reached). A follow-up costs a query, the same as a new question.
The organization has used its monthly research query allowance (usage-limit-reached). A follow-up costs a query, the same as a new question.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
403The token is valid but not permitted to perform this action.
The token is valid but not permitted to perform this action.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
404No research query matches this ID in your organization (research-query-not-found).
No research query matches this ID in your organization (research-query-not-found).
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
415The request body wasn't sent as application/json (or application/merge-patch+json, which PATCH also accepts). Set the Content-Type header and send a JSON-encoded body.
The request body wasn't sent as application/json (or application/merge-patch+json, which PATCH also accepts). Set the Content-Type header and send a JSON-encoded body.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
422A required field is missing or a field value is invalid. Check field. A field of query_id means the query you posted to is itself a follow-up. Post to the query that started the thread instead, which is the parent_query_id of the one you have.
A required field is missing or a field value is invalid. Check field. A field of query_id means the query you posted to is itself a follow-up. Post to the query that started the thread instead, which is the parent_query_id of the one you have.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.
500Something went wrong on our end.
Something went wrong on our end.
A URI identifying the error type. Stable across releases, so it is safe to switch on.
A short label for the error type.
An explanation of this specific occurrence. May change between releases, so don't parse it.
The HTTP status code, mirroring the response status.
Who most likely caused the problem. user means the person using your app sent something the API rejected, such as a bad value or too many requests; detail is safe to show them. integration means the problem is in your own setup or code, so show them something generic and log detail for yourself. Omitted on internal-error.
Which request field caused the error. Present only on missing-required-field and invalid-field-value.