Test Configuration

NoteFor security, tokens are stored locally in your browser.

Clear Token?

"" is cleared from this browser. The token itself keeps working; we're only forgetting it here, so you'll need to paste it in again to keep testing.

Research

Ask questions across your feedback and read the saved answers

GET/api/v0/research/queries

List 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.

URL parameters

Which page to return. Starts at 1.

How many results to return per page.

Response
200A successful response

The saved research queries.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

querystring

The question that was asked.

answerstring

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.

idstring | null

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

namestring

The display name of the buffer.

slugstring | null

The URL-safe identifier for the buffer.

The target the search was scoped to, or null when it was not target-scoped.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

typestring
"rest_endpoint"
"documentation"
"cli_command"

Which kind of surface this target identifies. Immutable after create.

display_namestring

A human-readable label, derived from metadata when the target was created.

metadataone of 3

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
methodstring

The HTTP method (e.g. GET, POST).

pathstring

The API endpoint path.

hoststring

The hostname of the API (e.g. api.example.com).

api_versionstring

The API version string (e.g. v1).

Documentation Metadata
page_urlstring

The URL of the documentation page.

section_headingstring

The section heading within the page.

doc_versionstring

The documentation version string.

Cli Command Metadata
commandstring

The CLI command name.

subcommandstring

The subcommand path, which may be multi-word (e.g. "container run").

cli_versionstring

The CLI version string.

The documented flags and args, e.g. ["--rm", "--network"].

target_type_filterstring | null
"rest_endpoint"
"documentation"
"cli_command"

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.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

titlestring
descriptionstring | null

The names of the buffers this feedback was in when the query ran.

similaritynumber

How closely this feedback matched the question, from 0 to 1, rounded to three places.

feedback_count_searchedinteger

The number of feedback items searched to build this answer.

tokens_usedinteger

The number of tokens consumed synthesizing this answer.

parent_query_idstring | null

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.

follow_up_countinteger

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.

created_atstring (date-time)

The response metadata for a collection.

pageinteger

The page this response came from. Starts at 1.

limitinteger

The number of items per page.

totalinteger

The total number of items across all pages.

total_pagesinteger

The total number of pages.

nextstring | null

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.

prevstring | null

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.

selfstring

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.

selfstring

The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.

itemsobject

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unauthorized
https://inputbuffer.io/docs/api/problems/invalid-token-format
https://inputbuffer.io/docs/api/problems/invalid-token

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/internal-error

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

Which request field caused the error. Present only on missing-required-field and invalid-field-value.

https://inputbuffer.io/api/v0/research/queries
POST/api/v0/research/queries

Ask 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.

Request body*

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.

Response
201The research query that was created

A question asked against your feedback and the answer that was synthesized for it. Every research endpoint returns exactly these keys.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

querystring

The question that was asked.

answerstring

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.

idstring | null

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

namestring

The display name of the buffer.

slugstring | null

The URL-safe identifier for the buffer.

The target the search was scoped to, or null when it was not target-scoped.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

typestring
"rest_endpoint"
"documentation"
"cli_command"

Which kind of surface this target identifies. Immutable after create.

display_namestring

A human-readable label, derived from metadata when the target was created.

metadataone of 3

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
methodstring

The HTTP method (e.g. GET, POST).

pathstring

The API endpoint path.

hoststring

The hostname of the API (e.g. api.example.com).

api_versionstring

The API version string (e.g. v1).

Documentation Metadata
page_urlstring

The URL of the documentation page.

section_headingstring

The section heading within the page.

doc_versionstring

The documentation version string.

Cli Command Metadata
commandstring

The CLI command name.

subcommandstring

The subcommand path, which may be multi-word (e.g. "container run").

cli_versionstring

The CLI version string.

The documented flags and args, e.g. ["--rm", "--network"].

target_type_filterstring | null
"rest_endpoint"
"documentation"
"cli_command"

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.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

titlestring
descriptionstring | null

The names of the buffers this feedback was in when the query ran.

similaritynumber

How closely this feedback matched the question, from 0 to 1, rounded to three places.

feedback_count_searchedinteger

The number of feedback items searched to build this answer.

tokens_usedinteger

The number of tokens consumed synthesizing this answer.

parent_query_idstring | null

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.

follow_up_countinteger

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.

created_atstring (date-time)

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.

selfstring

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.

selfstring

The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.

relatedobject

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unauthorized
https://inputbuffer.io/docs/api/problems/invalid-token-format
https://inputbuffer.io/docs/api/problems/invalid-token

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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).

typeany
https://inputbuffer.io/docs/api/problems/usage-limit-reached
titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/forbidden
https://inputbuffer.io/docs/api/problems/forbidden-origin
https://inputbuffer.io/docs/api/problems/widget-token-restricted
https://inputbuffer.io/docs/api/problems/admin-required

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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).

typeany
https://inputbuffer.io/docs/api/problems/buffer-not-found
https://inputbuffer.io/docs/api/problems/target-not-found
titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unsupported-media-type

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/missing-required-field
https://inputbuffer.io/docs/api/problems/invalid-field-value

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/internal-error

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

Which request field caused the error. Present only on missing-required-field and invalid-field-value.

https://inputbuffer.io/api/v0/research/queries
{}
GET/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.

URL parameters

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

Response
200A successful response

A question asked against your feedback and the answer that was synthesized for it. Every research endpoint returns exactly these keys.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

querystring

The question that was asked.

answerstring

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.

idstring | null

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

namestring

The display name of the buffer.

slugstring | null

The URL-safe identifier for the buffer.

The target the search was scoped to, or null when it was not target-scoped.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

typestring
"rest_endpoint"
"documentation"
"cli_command"

Which kind of surface this target identifies. Immutable after create.

display_namestring

A human-readable label, derived from metadata when the target was created.

metadataone of 3

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
methodstring

The HTTP method (e.g. GET, POST).

pathstring

The API endpoint path.

hoststring

The hostname of the API (e.g. api.example.com).

api_versionstring

The API version string (e.g. v1).

Documentation Metadata
page_urlstring

The URL of the documentation page.

section_headingstring

The section heading within the page.

doc_versionstring

The documentation version string.

Cli Command Metadata
commandstring

The CLI command name.

subcommandstring

The subcommand path, which may be multi-word (e.g. "container run").

cli_versionstring

The CLI version string.

The documented flags and args, e.g. ["--rm", "--network"].

target_type_filterstring | null
"rest_endpoint"
"documentation"
"cli_command"

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.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

titlestring
descriptionstring | null

The names of the buffers this feedback was in when the query ran.

similaritynumber

How closely this feedback matched the question, from 0 to 1, rounded to three places.

feedback_count_searchedinteger

The number of feedback items searched to build this answer.

tokens_usedinteger

The number of tokens consumed synthesizing this answer.

parent_query_idstring | null

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.

follow_up_countinteger

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.

created_atstring (date-time)

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.

selfstring

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.

selfstring

The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.

relatedobject

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unauthorized
https://inputbuffer.io/docs/api/problems/invalid-token-format
https://inputbuffer.io/docs/api/problems/invalid-token

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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).

typeany
https://inputbuffer.io/docs/api/problems/research-query-not-found
titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/internal-error

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

Which request field caused the error. Present only on missing-required-field and invalid-field-value.

https://inputbuffer.io/api/v0/research/queries/
GET/api/v0/research/queries/{query_id}/follow_ups

List 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.

URL parameters

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.

Response
200A successful response

The follow-ups to this query.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

querystring

The question that was asked.

answerstring

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.

idstring | null

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

namestring

The display name of the buffer.

slugstring | null

The URL-safe identifier for the buffer.

The target the search was scoped to, or null when it was not target-scoped.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

typestring
"rest_endpoint"
"documentation"
"cli_command"

Which kind of surface this target identifies. Immutable after create.

display_namestring

A human-readable label, derived from metadata when the target was created.

metadataone of 3

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
methodstring

The HTTP method (e.g. GET, POST).

pathstring

The API endpoint path.

hoststring

The hostname of the API (e.g. api.example.com).

api_versionstring

The API version string (e.g. v1).

Documentation Metadata
page_urlstring

The URL of the documentation page.

section_headingstring

The section heading within the page.

doc_versionstring

The documentation version string.

Cli Command Metadata
commandstring

The CLI command name.

subcommandstring

The subcommand path, which may be multi-word (e.g. "container run").

cli_versionstring

The CLI version string.

The documented flags and args, e.g. ["--rm", "--network"].

target_type_filterstring | null
"rest_endpoint"
"documentation"
"cli_command"

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.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

titlestring
descriptionstring | null

The names of the buffers this feedback was in when the query ran.

similaritynumber

How closely this feedback matched the question, from 0 to 1, rounded to three places.

feedback_count_searchedinteger

The number of feedback items searched to build this answer.

tokens_usedinteger

The number of tokens consumed synthesizing this answer.

parent_query_idstring | null

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.

follow_up_countinteger

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.

created_atstring (date-time)

The response metadata for a collection.

pageinteger

The page this response came from. Starts at 1.

limitinteger

The number of items per page.

totalinteger

The total number of items across all pages.

total_pagesinteger

The total number of pages.

nextstring | null

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.

prevstring | null

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.

selfstring

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.

selfstring

The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.

itemsobject

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unauthorized
https://inputbuffer.io/docs/api/problems/invalid-token-format
https://inputbuffer.io/docs/api/problems/invalid-token

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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).

typeany
https://inputbuffer.io/docs/api/problems/research-query-not-found
titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/internal-error

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

Which request field caused the error. Present only on missing-required-field and invalid-field-value.

https://inputbuffer.io/api/v0/research/queries//follow_ups
POST/api/v0/research/queries/{query_id}/follow_ups

Ask 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.

URL parameters

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

Request body*

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.

Response
201The follow-up that was created

A question asked against your feedback and the answer that was synthesized for it. Every research endpoint returns exactly these keys.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

querystring

The question that was asked.

answerstring

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.

idstring | null

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

namestring

The display name of the buffer.

slugstring | null

The URL-safe identifier for the buffer.

The target the search was scoped to, or null when it was not target-scoped.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

typestring
"rest_endpoint"
"documentation"
"cli_command"

Which kind of surface this target identifies. Immutable after create.

display_namestring

A human-readable label, derived from metadata when the target was created.

metadataone of 3

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
methodstring

The HTTP method (e.g. GET, POST).

pathstring

The API endpoint path.

hoststring

The hostname of the API (e.g. api.example.com).

api_versionstring

The API version string (e.g. v1).

Documentation Metadata
page_urlstring

The URL of the documentation page.

section_headingstring

The section heading within the page.

doc_versionstring

The documentation version string.

Cli Command Metadata
commandstring

The CLI command name.

subcommandstring

The subcommand path, which may be multi-word (e.g. "container run").

cli_versionstring

The CLI version string.

The documented flags and args, e.g. ["--rm", "--network"].

target_type_filterstring | null
"rest_endpoint"
"documentation"
"cli_command"

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.

idstring

A unique identifier for a resource. Treat it as an opaque string: don't parse it or build your own.

titlestring
descriptionstring | null

The names of the buffers this feedback was in when the query ran.

similaritynumber

How closely this feedback matched the question, from 0 to 1, rounded to three places.

feedback_count_searchedinteger

The number of feedback items searched to build this answer.

tokens_usedinteger

The number of tokens consumed synthesizing this answer.

parent_query_idstring | null

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.

follow_up_countinteger

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.

created_atstring (date-time)

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.

selfstring

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.

selfstring

The path to this resource. It starts with a / and carries no domain, so join it to https://inputbuffer.io for a full URL.

relatedobject

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unauthorized
https://inputbuffer.io/docs/api/problems/invalid-token-format
https://inputbuffer.io/docs/api/problems/invalid-token

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typeany
https://inputbuffer.io/docs/api/problems/usage-limit-reached
titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/forbidden
https://inputbuffer.io/docs/api/problems/forbidden-origin
https://inputbuffer.io/docs/api/problems/widget-token-restricted
https://inputbuffer.io/docs/api/problems/admin-required

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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).

typeany
https://inputbuffer.io/docs/api/problems/research-query-not-found
titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/unsupported-media-type

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/missing-required-field
https://inputbuffer.io/docs/api/problems/invalid-field-value

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

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.

typestring (uri)
https://inputbuffer.io/docs/api/problems/internal-error

A URI identifying the error type. Stable across releases, so it is safe to switch on.

titlestring

A short label for the error type.

detailstring

An explanation of this specific occurrence. May change between releases, so don't parse it.

statusinteger

The HTTP status code, mirroring the response status.

categorystring
"user"
"integration"

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.

fieldstring

Which request field caused the error. Present only on missing-required-field and invalid-field-value.

https://inputbuffer.io/api/v0/research/queries//follow_ups
{}