Scalar utility API

The utility API from Scalar — 3 operation(s) for utility.

OpenAPI Specification

scalar-utility-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Core access-groups utility API
  description: Core services for Scalar
  version: 1.0.1
  contact:
    name: Marc from Scalar
    url: https://scalar.com
    email: support@scalar.com
security:
- BearerAuth: []
tags:
- name: utility
paths:
  /feedback:
    post:
      tags:
      - utility
      description: Submit app feedback
      operationId: postfeedback
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: 'null'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400'
        '401':
          description: No auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404'
        '422':
          description: Invalid payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422'
        '500':
          description: Uncaught error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  $ref: '#/components/schemas/email'
                feedback:
                  type: string
                  minLength: 5
              required:
              - email
              - feedback
              additionalProperties: false
        required: true
  /signup-data:
    post:
      tags:
      - utility
      description: Save docs data on signup
      operationId: postsignupData
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  dataUid:
                    type: string
                required:
                - dataUid
                additionalProperties: false
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400'
        '401':
          description: No auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404'
        '422':
          description: Invalid payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422'
        '500':
          description: Uncaught error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500'
      security: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  $ref: '#/components/schemas/project-version'
                theme:
                  $ref: '#/components/schemas/theme'
                yjsDocs:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
                yjsReferences:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
              required:
              - version
              - yjsDocs
              - yjsReferences
              additionalProperties: false
        required: true
  /waitlist:
    post:
      tags:
      - utility
      description: Submit app feedback
      operationId: postwaitlist
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: 'null'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400'
        '401':
          description: No auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404'
        '422':
          description: Invalid payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422'
        '500':
          description: Uncaught error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500'
      security: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    anyOf:
                    - type: string
                    - type: number
                    - type: boolean
                email:
                  $ref: '#/components/schemas/email'
                products:
                  type: array
                  items:
                    type: string
                    enum:
                    - client
              required:
              - email
              - products
              additionalProperties: false
        required: true
components:
  schemas:
    namespace:
      type: string
      minLength: 3
      maxLength: 50
      pattern: ^[a-zA-Z0-9-_]+$
    project-version:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        name:
          default: Default Version
          type: string
        primaryGuideId:
          type: string
        primaryReferenceId:
          type: string
        references:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: '#/components/schemas/reference'
        guides:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: '#/components/schemas/guide'
        header:
          type: array
          items:
            $ref: '#/components/schemas/header-link'
        footer:
          default: ''
          type: string
        footerCss:
          default: ''
          type: string
        footerBelowSidebar:
          default: false
          type: boolean
        headScript:
          default: ''
          type: string
        bodyScript:
          default: ''
          type: string
      required:
      - uid
      - name
      - primaryGuideId
      - primaryReferenceId
      - references
      - guides
      - header
      - footer
      - footerCss
      - footerBelowSidebar
      - headScript
      - bodyScript
      additionalProperties: false
    guide:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        description:
          type: string
        sidebar:
          $ref: '#/components/schemas/sidebar'
        show:
          default: true
          type: boolean
        isButton:
          default: false
          type: boolean
        isStarred:
          default: false
          type: boolean
      required:
      - uid
      - title
      - description
      - sidebar
      - show
      - isButton
      - isStarred
      additionalProperties: false
    sidebar:
      type: object
      properties:
        items:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: '#/components/schemas/sidebar-item'
        children:
          type: array
          items:
            type: string
      required:
      - items
      - children
      additionalProperties: false
    header-link-guide:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        show:
          default: true
          type: boolean
        isStarred:
          default: false
          type: boolean
        type:
          type: string
          const: guide
      required:
      - uid
      - title
      - show
      - isStarred
      - type
      additionalProperties: false
    header-link-external:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        show:
          default: true
          type: boolean
        isStarred:
          default: false
          type: boolean
        type:
          type: string
          const: link
        isButton:
          default: false
          type: boolean
        link:
          type: string
      required:
      - uid
      - title
      - show
      - isStarred
      - type
      - isButton
      - link
      additionalProperties: false
    '500':
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
      - message
      - code
    sidebar-page:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
          minLength: 1
        type:
          type: string
          const: Page
        link:
          type: string
        icon:
          $ref: '#/components/schemas/project-icon'
        children:
          default: []
          type: array
          items:
            type: string
        description:
          type: string
        show:
          type: boolean
        sidebarTitle:
          type: string
        defaultOpen:
          type: boolean
        yjsReference:
          type: string
        backgroundImage:
          type: string
        isMdx:
          default: false
          type: boolean
        isHtml:
          default: false
          type: boolean
      required:
      - uid
      - title
      - type
      - children
      - description
      - show
      - yjsReference
      - isMdx
      - isHtml
      additionalProperties: false
    '400':
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
      - message
      - code
    reference-managed-doc:
      type: object
      properties:
        namespace:
          $ref: '#/components/schemas/namespace'
        slug:
          $ref: '#/components/schemas/slug'
        versions:
          default:
          - latest
          type: array
          items:
            type: string
      required:
      - namespace
      - slug
      - versions
      additionalProperties: false
    '422':
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
      - message
      - code
    header-link-reference:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        show:
          default: true
          type: boolean
        isStarred:
          default: false
          type: boolean
        type:
          type: string
          const: reference
        hasPermalink:
          default: false
          description: Whether the reference has a permalinked reference or not
          type: boolean
        hasManagedDoc:
          default: false
          description: Whether the reference has a linked registry API
          type: boolean
      required:
      - uid
      - title
      - show
      - isStarred
      - type
      - hasPermalink
      - hasManagedDoc
      additionalProperties: false
    sidebar-folder:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
          minLength: 1
        type:
          type: string
          const: Folder
        link:
          type: string
        icon:
          $ref: '#/components/schemas/project-icon'
        children:
          default: []
          type: array
          items:
            type: string
        description:
          type: string
        show:
          type: boolean
        defaultOpen:
          type: boolean
      required:
      - uid
      - title
      - type
      - children
      - show
      additionalProperties: false
    header-link-spacer:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        show:
          default: true
          type: boolean
        isStarred:
          default: false
          type: boolean
        type:
          type: string
          const: spacer
      required:
      - uid
      - title
      - show
      - isStarred
      - type
      additionalProperties: false
    nanoid:
      type: string
      minLength: 5
    '404':
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
      - message
      - code
    reference:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        description:
          type: string
        yjsReference:
          $ref: '#/components/schemas/nanoid'
        config:
          default: '{}'
          type: string
        specPermalink:
          default: ''
          type: string
        managedDoc:
          default: null
          anyOf:
          - $ref: '#/components/schemas/reference-managed-doc'
          - type: 'null'
        show:
          default: true
          type: boolean
        isButton:
          default: false
          type: boolean
        isStarred:
          default: false
          type: boolean
      required:
      - uid
      - title
      - description
      - yjsReference
      - config
      - specPermalink
      - managedDoc
      - show
      - isButton
      - isStarred
      additionalProperties: false
    project-icon:
      $ref: '#/components/schemas/project-icon-info'
    sidebar-link:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
          minLength: 1
        type:
          type: string
          const: Link
        link:
          type: string
        icon:
          $ref: '#/components/schemas/project-icon'
        children:
          type: array
          items:
            type: string
        description:
          type: string
        show:
          type: boolean
      required:
      - uid
      - title
      - type
      - link
      - show
      additionalProperties: false
    '403':
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
      - message
      - code
    header-link:
      anyOf:
      - $ref: '#/components/schemas/header-link-guide'
      - $ref: '#/components/schemas/header-link-reference'
      - $ref: '#/components/schemas/header-link-group'
      - $ref: '#/components/schemas/header-link-external'
      - $ref: '#/components/schemas/header-link-version-selector'
      - $ref: '#/components/schemas/header-link-spacer'
    header-link-group:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        show:
          default: true
          type: boolean
        isStarred:
          default: false
          type: boolean
        type:
          type: string
          const: group
        children:
          type: array
          items:
            anyOf:
            - $ref: '#/components/schemas/header-link-guide'
            - $ref: '#/components/schemas/header-link-reference'
            - $ref: '#/components/schemas/header-link-external'
          description: Children of the group. Groups cannot contain other groups, spacers, or the version selector
      required:
      - uid
      - title
      - show
      - isStarred
      - type
      - children
      additionalProperties: false
    theme:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        name:
          type: string
        description:
          type: string
        theme:
          type: string
        slug:
          $ref: '#/components/schemas/slug'
      required:
      - uid
      - name
      - description
      - theme
      - slug
      additionalProperties: false
    sidebar-item:
      anyOf:
      - $ref: '#/components/schemas/sidebar-link'
      - $ref: '#/components/schemas/sidebar-page'
      - $ref: '#/components/schemas/sidebar-folder'
    header-link-version-selector:
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/nanoid'
        title:
          type: string
        show:
          default: true
          type: boolean
        isStarred:
          default: false
          type: boolean
        type:
          type: string
          const: version-selector
      required:
      - uid
      - title
      - show
      - isStarred
      - type
      additionalProperties: false
    project-icon-info:
      type: object
      properties:
        src:
          default: ''
          type: string
        title:
          type: string
        mask:
          type: boolean
      required:
      - src
      additionalProperties: false
    '401':
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
      - message
      - code
    slug:
      type: string
      minLength: 3
      maxLength: 60
      pattern: ^[a-z](?:[a-z0-9-]*[a-z0-9])?$
    email:
      type: string
      format: email
      pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT