Graphon Engine

Search and Answer

Answer collection

POST/namespaces/{namespace}/collections/{collection}:answer

Generate an answer with citations from files in one collection.

View as Markdown

PermissionCluster key, or a scoped key with query on this collection. Key scopes and actions.

  • standard uses one retrieve-and-answer pass. ultra performs deeper work within the collection. Check GET /info for supported modes.
  • Send prior turns in history. Engine does not store conversations.
  • Answer markers such as [[SRC:0001]] match [SRC:0001] keys in sources. return_sources: false omits that map.
  • Send principals only when access_control is enforced. Access rules bound every source used for the answer.
  • An empty collection returns collection_empty. A failed collection returns collection_not_ready with retryable: false.

Path parameters

namespacestringrequired

Namespace name or ns_ ID. It must be visible to this key.

collectionstringrequired

Collection name or col_ ID within the namespace. It must be visible to this key.

Request body

filterFilterClauseoptionalaccepts null

Structured selection of files to use for the answer. Uses the same grammar as Search. Filters do not replace access rules.

  • Maximum depth: 8
  • Maximum clauses: 100
  • An in list holds 1–100 values.
historyarray<object>optional

Prior conversation turns, oldest first. Maximum 32 messages. Your application stores and resends this history.

  • Maximum items: 32
modestringoptional

Answer mode. standard performs one retrieve-and-answer pass. ultra performs deeper work within the collection. Check GET /info for supported modes.

Default: "standard"

standard
One retrieve-and-answer pass, with a 120-second limit.
ultra
Deeper work within the collection, with a 600-second limit.
recall
Deeper work that tries to find every match, with a 600-second limit. Needs a cluster key.
principalsarray<string>optionalaccepts null

End-user and group identifiers supplied by your server. Required on enforced collections and invalid when access control is off. An empty list gives no results. Maximum 4,096 entries, each at most 256 UTF-8 bytes.

querystringrequired

Question to answer from this collection. Must contain non-space text and be at most 32,000 characters.

  • Minimum characters: 1
  • Maximum characters: 32000
query_imageobjectoptionalaccepts null

An image to ask about, read for this query only. Engine does not store or index it. Needs a cluster key, and adds 45 seconds to the time limit.

return_sourcesbooleanoptional

Include the source map for citations. When false, the response omits sources.

Default: true

Responses

200Success

An answer with source markers and their matching source map.

application/json

Response headers

x-request-idstringrequired

Request correlation ID. Retain it when investigating a failed or unexpected request.

answerstringrequired

Answer text. Citation markers use [[SRC:0001]] and match the [SRC:0001] keys in sources.

image_descriptionstringoptionalaccepts null

How Engine read the query image. Null when the request had no image.

modestringrequired

Answer mode that produced this answer.

standard
One retrieve-and-answer pass, with a 120-second limit.
ultra
Deeper work within the collection, with a 600-second limit.
recall
Deeper work that tries to find every match, with a 600-second limit. Needs a cluster key.
request_idstringrequired

Correlation ID for this request, also available in x-request-id.

sourcesmap<string, object>optionalaccepts null

Map from citation markers to supporting sources. Keys omit the marker’s outer brackets. Omitted when return_sources is false.

usageobjectrequired

What the query used.

Errors

Select an error in the response example to see its JSON body. See error handling for the common error format.

400invalid_request

A field, path, parameter, or conditional request rule is invalid.

What to do: Correct the request. Unknown fields are rejected.

400invalid_filter

A filter uses an unsupported field, operator, value, or nesting structure.

What to do: Use the documented filter grammar and field-specific value types.

401unauthenticated

The API key is missing, invalid, or revoked.

What to do: Send an active key in Authorization: Bearer or X-API-Key.

403forbidden

The key can see the resource but lacks permission for this operation.

What to do: Use a key with the required action or scope kind.

404not_found

The resource is absent, deleted, or outside this key’s scope.

What to do: Check the identifier and the key’s namespace and collection scope.

409collection_empty

The collection contains no living files to answer from.

What to do: Add a file and wait for a ready event before querying.

409collection_not_ready

The collection cannot serve this retrieval request yet.

What to do: Read retryable and details.retry_after_seconds. If processing failed, inspect file errors and correct the source.

413request_too_large

The JSON body exceeds the route limit: 6,291,456 bytes on :answer and research, 4,194,304 bytes on :search, and 1,048,576 bytes elsewhere.

What to do: Reduce the JSON body. Use upload or a URI source for larger file content.

503temporarily_unavailable

A dependency, cluster readiness condition, or capacity limit prevents this operation.

What to do: Inspect retryable and details. Retry only when permitted, preserving the idempotency key for the same write.

500internal_error

An unexpected server failure prevented this request from completing.

What to do: Retain x-request-id for investigation. Follow retryable before retrying a write.

Was this page helpful?