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

# publish Admin Canvas Dataset

> Requires a currently verified platform administrator, not an organization administrator or ordinary Pro subscriber. Personal API keys need the explicit sagemaker:publish scope. OAuth calls are checked against current account identity. No broker or training job is started. Creates an atomic Git commit containing source CSV and the shared catalog; the same catalog drives Quantura Search, preview, charting and original CSV download. Other users can access published data. Only upload data you are authorized to share. Saved quantile forecasts remain Download resources, never observations for another forecast.



## OpenAPI

````yaml /docs/api/openapi.json post /v1/admin/sagemaker/datasets
openapi: 3.1.0
info:
  title: Quantura API
  version: 1.0.0
  description: >-
    Search markets and public datasets, download historical observations, create
    forecasts and inspect screener quantiles.
  contact:
    name: Quantura
    url: https://quantura.studio/contact
  license:
    name: Quantura API Terms
    url: https://quantura.studio/terms
servers:
  - url: https://quantura.studio/api
security:
  - bearerAuth: []
  - clerkOAuth:
      - openid
      - profile
      - email
tags:
  - name: Access
  - name: Forecast
  - name: Screener
  - name: Admin Canvas
  - name: Search
  - name: Download
  - name: Scout
paths:
  /v1/admin/sagemaker/datasets:
    servers:
      - url: https://quantura.studio/api
    post:
      tags:
        - Admin Canvas
      summary: publish Admin Canvas Dataset
      description: >-
        Requires a currently verified platform administrator, not an
        organization administrator or ordinary Pro subscriber. Personal API keys
        need the explicit sagemaker:publish scope. OAuth calls are checked
        against current account identity. No broker or training job is started.
        Creates an atomic Git commit containing source CSV and the shared
        catalog; the same catalog drives Quantura Search, preview, charting and
        original CSV download. Other users can access published data. Only
        upload data you are authorized to share. Saved quantile forecasts remain
        Download resources, never observations for another forecast.
      operationId: publishAdminCanvasDataset
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CanvasPublishRequest'
            example:
              name: SPY Canvas forecast
              ticker: SPY
              csv: |
                date,P01,P50,P99
                2026-10-29,80,100,120
      responses:
        '200':
          description: Shared catalog and CSV committed together
          content:
            application/json:
              schema:
                type: object
              example:
                ok: true
                item:
                  id: >-
                    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                  kind: forecast
                  ticker: SPY
                commit: verified-commit-sha
                url: >-
                  /historical-data?sagemakerForecastId=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                type: object
              example:
                ok: false
                error: api_key_missing
        '403':
          description: Verified platform admin and publish scope required
          content:
            application/json:
              schema:
                type: object
              example:
                ok: false
                error: admin_required
        '422':
          description: Invalid CSV or metadata
          content:
            application/json:
              schema:
                type: object
              example:
                ok: false
                error: canvas_columns_invalid
        '503':
          description: Repository unavailable
          content:
            application/json:
              schema:
                type: object
              example:
                ok: false
                error: canvas_github_unavailable
      security:
        - bearerAuth: []
        - clerkOAuth:
            - openid
            - profile
            - email
components:
  schemas:
    CanvasPublishRequest:
      type: object
      required:
        - csv
        - name
        - ticker
      properties:
        csv:
          type: string
          minLength: 1
          maxLength: 3000000
          description: >-
            Original CSV contents, at most 3,000,000 UTF-8 bytes. Original
            quantile columns and source bytes are preserved.
        name:
          type: string
          minLength: 1
          maxLength: 120
        ticker:
          type: string
          minLength: 1
          maxLength: 40
          pattern: ^[A-Za-z0-9.^=_/-]{1,40}$
        metrics:
          type: object
          properties:
            mae:
              type: number
              minimum: 0
            rmse:
              type: number
              minimum: 0
            smape:
              type: number
              minimum: 0
              maximum: 2
            average_wql:
              type: number
              minimum: 0
            mape:
              type: number
              minimum: 0
            wape:
              type: number
              minimum: 0
            mase:
              type: number
              minimum: 0
        metrics_basis:
          type: string
          maxLength: 240
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Clerk personal API key or legacy Quantura key
    clerkOAuth:
      type: oauth2
      description: >-
        Clerk authorization code with PKCE S256. Pass
        resource=https://quantura.studio on authorization and token requests.
        Paid Pro, enterprise or verified administrator API access is required.
      flows:
        authorizationCode:
          authorizationUrl: https://clerk.quantura.studio/oauth/authorize
          tokenUrl: https://clerk.quantura.studio/oauth/token
          refreshUrl: https://clerk.quantura.studio/oauth/token
          scopes:
            openid: Identify the Quantura account
            profile: Resolve the account profile
            email: Verify account email
            offline_access: Refresh access after expiry

````

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