openapi: 3.1.0 info: title: Vespa Document Documents Visit API version: '1' description: 'The Vespa /document/v1 REST API supports GET, POST, PUT, and DELETE operations against documents stored in a Vespa application, including visiting (bulk read) across namespaces and document types. Vespa is an open-source serving engine for big-data, vector search, and recommendations. Endpoints are exposed on the Vespa container nodes. Authentication, when enabled, uses mutual TLS (client certificate) or, for Vespa Cloud, signed requests / API keys. ' contact: name: Vespa Documentation url: https://docs.vespa.ai/en/document-v1-api-guide.html license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: http://{vespa_endpoint}/document/v1 description: Vespa container document API base URL variables: vespa_endpoint: default: localhost:8080 description: Host:port of the Vespa container exposing /document/v1 security: - mtls: [] tags: - name: Visit description: Bulk visit (iteration) operations paths: /{namespace}/{doctype}/docid: parameters: - $ref: '#/components/parameters/namespace' - $ref: '#/components/parameters/doctype' get: tags: - Visit summary: Visit all documents of a given namespace and document type operationId: visitNamespaceDoctype parameters: - $ref: '#/components/parameters/selection' - $ref: '#/components/parameters/continuation' - $ref: '#/components/parameters/timeout' - $ref: '#/components/parameters/concurrency' - $ref: '#/components/parameters/slices' - $ref: '#/components/parameters/stream' responses: '200': description: Visit results content: application/json: schema: $ref: '#/components/schemas/VisitResult' /: get: tags: - Visit summary: Visit all documents across namespaces in a content cluster operationId: visitCluster parameters: - name: cluster in: query required: true schema: type: string description: Content cluster name to visit - $ref: '#/components/parameters/selection' - $ref: '#/components/parameters/continuation' - $ref: '#/components/parameters/timeout' - $ref: '#/components/parameters/concurrency' - $ref: '#/components/parameters/slices' - $ref: '#/components/parameters/stream' responses: '200': description: Visit results components: parameters: doctype: name: doctype in: path required: true schema: type: string description: Schema document type name continuation: name: continuation in: query schema: type: string description: Opaque continuation token for paginated visits stream: name: stream in: query schema: type: boolean description: Enable HTTP response streaming slices: name: slices in: query schema: type: integer description: Number of parallel visit partitions timeout: name: timeout in: query schema: type: string description: Operation timeout, e.g. "5s" namespace: name: namespace in: path required: true schema: type: string description: Document namespace identifier concurrency: name: concurrency in: query schema: type: integer description: Backend request concurrency selection: name: selection in: query schema: type: string description: Document selection expression for filtering schemas: VisitResult: type: object properties: documents: type: array items: $ref: '#/components/schemas/Document' continuation: type: string documentCount: type: integer Document: type: object properties: id: type: string fields: type: object additionalProperties: true securitySchemes: mtls: type: mutualTLS description: Client certificate authentication (Vespa enforces mTLS when configured)