> ## Documentation Index
> Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These docs describe Speckle as it works today, including everything released in 2026.9. Treat page content as current unless the page or section says it applies only to versions published before 2026.9.
> Content scoped to versions published before 2026.9 (the object graph and root object, Proxies, Receive2, operations.receive, object.children) applies only to model versions in that earlier data format. For versions published in 2026.9, answer from the Object model pages and the SDK migration guides.
> The What's new pages summarise what changed in 2026.9 and link to the page that documents each change. Answer from the linked page rather than from the summary. Legacy (v2) connectors are retired; send questions about them to the community help forum.
> Match guidance to the customer's deployment, model data format, connector, plan and permissions. Self-hosted servers on a release before 2026.9 follow Data model migration for developers. If an unknown version or data format changes the answer, ask one focused question; do not infer the deployment version from the date alone.

# Export a Version's Properties

> Exports every indexed property of every object in the version, one row per property, as JSON, CSV or Parquet, as a file attachment. JSON and CSV are gzip-encoded when `Accept-Encoding` includes gzip; Parquet never is. The body takes no filters. Public projects need no token; others need read access, and a token's resource access rules must cover the model or version. Versions older than the workspace plan's history limit are refused. Available on Speckle Cloud and Speckle Enterprise Server 2026.9 and later; not on the open-source Speckle Server. Serves object-graph versions only: a bundle version returns **404** with `"Version not found or has no EAV artefact"`; read its properties from the bundle's `eav` files instead.



## OpenAPI

````yaml /developers/api/rest-openapi.json post /api/v1/projects/{projectId}/models/{modelId}/versions/{versionId}/eav/query
openapi: 3.1.0
info:
  title: Speckle Server REST API
  description: >-
    REST API for Speckle Server. The object endpoints serve object graphs on
    every Speckle server, including the open-source server. The bundle and
    properties endpoints exist on Speckle Cloud and Speckle Enterprise Server
    2026.9 and later, not on the open-source server.
  version: 1.0.0
  contact:
    name: Speckle Support
    url: https://speckle.community
servers:
  - url: https://app.speckle.systems
    description: Speckle Cloud (Production)
  - url: https://YOUR_SERVER_URL
    description: Self-hosted instance (replace with your server URL)
security:
  - bearerAuth: []
paths:
  /api/v1/projects/{projectId}/models/{modelId}/versions/{versionId}/eav/query:
    post:
      tags:
        - Properties
      summary: Export a Version's Properties
      description: >-
        Exports every indexed property of every object in the version, one row
        per property, as JSON, CSV or Parquet, as a file attachment. JSON and
        CSV are gzip-encoded when `Accept-Encoding` includes gzip; Parquet never
        is. The body takes no filters. Public projects need no token; others
        need read access, and a token's resource access rules must cover the
        model or version. Versions older than the workspace plan's history limit
        are refused. Available on Speckle Cloud and Speckle Enterprise Server
        2026.9 and later; not on the open-source Speckle Server. Serves
        object-graph versions only: a bundle version returns **404** with
        `"Version not found or has no EAV artefact"`; read its properties from
        the bundle's `eav` files instead.
      operationId: exportVersionProperties
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
          description: The project id.
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: The model id.
        - name: versionId
          in: path
          required: true
          schema:
            type: string
          description: The version id.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                format:
                  type: string
                  enum:
                    - json
                    - csv
                    - parquet
                  default: json
            example:
              format: json
      responses:
        '200':
          description: The properties, as a file attachment.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    object_id:
                      type: string
                    path:
                      type: string
                    value_text:
                      type:
                        - string
                        - 'null'
                    value_num:
                      type:
                        - number
                        - 'null'
                    type:
                      type: string
                      enum:
                        - string
                        - number
                        - boolean
                    units:
                      type:
                        - string
                        - 'null'
                    internal_definition_name:
                      type:
                        - string
                        - 'null'
            text/csv:
              schema:
                type: string
            application/vnd.apache.parquet:
              schema:
                type: string
                format: binary
        '400':
          description: Invalid path parameters or body.
        '401':
          description: No valid token for a non-public project.
        '403':
          description: >-
            The token cannot read this project, model or version, or the version
            is beyond the workspace history limit.
        '404':
          description: >-
            No such project or version, or the version has no properties
            database (bundle versions).
      security:
        - bearerAuth: []
        - {}
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Personal access token. Get your token from your Speckle profile
        settings.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.