tessl.io Tiles API

Tile catalog, versions, and metadata.

OpenAPI Specification

tesslio-tiles-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Tessl Admin Keys Tiles API
  version: 1.0.0
  description: Admin-scoped API keys for support tooling.
servers:
- url: https://api.tessl.io
tags:
- name: Tiles
  description: Tile catalog, versions, and metadata.
paths:
  /v1/tiles:
    get:
      tags:
      - Tiles
      description: Lists tiles in the catalog. Supports search, filtering by workspace/registry/featured, and ranked sorting.
      parameters:
      - schema:
          default: -updatedAt
          anyOf:
          - type: array
            items:
              anyOf:
              - type: string
                enum:
                - updatedAt
              - type: string
                enum:
                - -updatedAt
              - type: string
                enum:
                - similarity
              - type: string
                enum:
                - -similarity
              - type: string
                enum:
                - id
              - type: string
                enum:
                - -id
              - type: string
                enum:
                - relevance
              - type: string
                enum:
                - -relevance
              - type: string
                enum:
                - evalImprovementMultiplier
              - type: string
                enum:
                - -evalImprovementMultiplier
          - anyOf:
            - type: string
              enum:
              - updatedAt
            - type: string
              enum:
              - -updatedAt
            - type: string
              enum:
              - similarity
            - type: string
              enum:
              - -similarity
            - type: string
              enum:
              - id
            - type: string
              enum:
              - -id
            - type: string
              enum:
              - relevance
            - type: string
              enum:
              - -relevance
            - type: string
              enum:
              - evalImprovementMultiplier
            - type: string
              enum:
              - -evalImprovementMultiplier
        in: query
        name: sort
        required: false
      - schema:
          minimum: 1
          maximum: 20
          default: 20
          type: number
        in: query
        name: page[size]
        required: false
      - schema:
          type: string
        in: query
        name: page[after]
        required: false
      - schema:
          type: string
        in: query
        name: page[before]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][eq]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][ne]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][gt]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][gte]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][lt]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][lte]
        required: false
      - schema:
          type: string
        in: query
        name: filter[fullName][like]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][eq]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][ne]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][gt]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][gte]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][lt]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][lte]
        required: false
      - schema:
          type: string
        in: query
        name: filter[describes][like]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][eq]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][ne]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][gt]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][gte]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][lt]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][lte]
        required: false
      - schema:
          type: string
        in: query
        name: filter[search][like]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[archived]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[archived][eq]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[archived][ne]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][eq]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][ne]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][gt]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][gte]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][lt]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][lte]
        required: false
      - schema:
          format: uuid
          type: string
        in: query
        name: filter[workspaceId][like]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][eq]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][ne]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][gt]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][gte]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][lt]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][lte]
        required: false
      - schema:
          pattern: ^[a-z]+$
          type: string
        in: query
        name: filter[packageRegistry][like]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[featured]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[featured][eq]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[featured][ne]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasSkills]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasSkills][eq]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasSkills][ne]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasSteering]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasSteering][eq]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasSteering][ne]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasDocs]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasDocs][eq]
        required: false
      - schema:
          type: boolean
        in: query
        name: filter[hasDocs][ne]
        required: false
      - schema:
          anyOf:
          - type: string
            enum:
            - versions
          - type: array
            items:
              type: string
              enum:
              - versions
        in: query
        name: include
        required: false
      - schema:
          type: boolean
        in: query
        name: includeModerationFailed
        required: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - links
                - meta
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    - next
                    - prev
                    properties:
                      self:
                        format: uri
                        type: string
                      next:
                        anyOf:
                        - format: uri
                          type: string
                        - type: 'null'
                      prev:
                        anyOf:
                        - format: uri
                          type: string
                        - type: 'null'
                  meta:
                    type: object
                    required:
                    - count
                    properties:
                      count:
                        type: number
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - type
                      - attributes
                      - relationships
                      - meta
                      properties:
                        id:
                          format: uuid
                          type: string
                        type:
                          type: string
                          enum:
                          - tile
                        attributes:
                          type: object
                          required:
                          - name
                          - describes
                          - featured
                          - isPrivate
                          - fullName
                          - createdAt
                          - updatedAt
                          properties:
                            name:
                              type: string
                            describes:
                              anyOf:
                              - type: string
                              - type: 'null'
                            featured:
                              type: boolean
                            isPrivate:
                              type: boolean
                            fullName:
                              type: string
                            createdAt:
                              format: date-time
                              type: string
                            updatedAt:
                              format: date-time
                              type: string
                            similarity:
                              anyOf:
                              - type: number
                              - type: 'null'
                            relevance:
                              anyOf:
                              - type: number
                              - type: 'null'
                            evalImprovementMultiplier:
                              anyOf:
                              - type: number
                              - type: 'null'
                            versions:
                              type: array
                              items:
                                type: object
                                required:
                                - describes
                                - version
                                - summary
                                - major
                                - minor
                                - patch
                                - archived
                                - createdAt
                                - tesslVerified
                                - docs
                                - hasDocs
                                - hasSteering
                                - hasSkills
                                - evalScore
                                - evalBaselineScore
                                - evalImprovement
                                - evalImprovementMultiplier
                                - moderationStatus
                                - moderationError
                                properties:
                                  describes:
                                    anyOf:
                                    - type: string
                                    - type: 'null'
                                  version:
                                    format: date-time
                                    type: string
                                  summary:
                                    type: string
                                  major:
                                    type: number
                                  minor:
                                    type: number
                                  patch:
                                    type: number
                                  archived:
                                    type: boolean
                                  createdAt:
                                    type: string
                                  tesslVerified:
                                    type: boolean
                                  docs:
                                    anyOf:
                                    - type: string
                                    - type: 'null'
                                  hasDocs:
                                    type: boolean
                                  hasSteering:
                                    type: boolean
                                  hasSkills:
                                    type: boolean
                                  evalScore:
                                    anyOf:
                                    - type: integer
                                    - type: 'null'
                                  evalBaselineScore:
                                    anyOf:
                                    - type: integer
                                    - type: 'null'
                                  evalImprovement:
                                    anyOf:
                                    - type: integer
                                    - type: 'null'
                                  evalImprovementMultiplier:
                                    anyOf:
                                    - type: number
                                    - type: 'null'
                                  moderationStatus:
                                    description: Aggregate outcome of the moderation pipeline. `pass` means moderation passed; `skipped` means moderation did not run; `pending` means moderation is in progress; `fail` means moderation rejected the version; `error` means moderation could not complete.
                                    anyOf:
                                    - type: string
                                      enum:
                                      - pending
                                    - type: string
                                      enum:
                                      - pass
                                    - type: string
                                      enum:
                                      - fail
                                    - type: string
                                      enum:
                                      - error
                                    - type: string
                                      enum:
                                      - skipped
                                  moderationError:
                                    anyOf:
                                    - description: Reason for non-visible moderation state. Populated for `fail` and `error`. Null for `pass`, `skipped`, and `pending`.
                                      type: string
                                    - type: 'null'
                                  moderationPassed:
                                    deprecated: true
                                    type: boolean
                                  scores:
                                    type: object
                                    required:
                                    - version
                                    - aggregate
                                    - quality
                                    - impact
                                    - security
                                    - evalAvg
                                    - evalBaseline
                                    - evalImprovement
                                    - evalImprovementMultiplier
                                    - evalCount
                                    - validationErrors
                                    - lastScoredAt
                                    properties:
                                      version:
                                        type: string
                                      aggregate:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      quality:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      impact:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      security:
                                        anyOf:
                                        - anyOf:
                                          - type: string
                                            enum:
                                            - LOW
                                          - type: string
                                            enum:
                                            - MEDIUM
                                          - type: string
                                            enum:
                                            - HIGH
                                          - type: string
                                            enum:
                                            - CRITICAL
                                        - type: 'null'
                                      evalAvg:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      evalBaseline:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      evalImprovement:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      evalImprovementMultiplier:
                                        anyOf:
                                        - type: number
                                        - type: 'null'
                                      evalCount:
                                        anyOf:
                                        - type: integer
                                        - type: 'null'
                                      validationErrors:
                                        type: array
                                        items:
                                          type: string
                                      lastScoredAt:
                                        anyOf:
                                        - format: date-time
                                          type: string
                                        - type: 'null'
                        relationships:
                          type: object
                          required:
                          - workspace
                          properties:
                            workspace:
                              type: object
                              required:
                              - data
                              - links
                              properties:
                                data:
                                  type: object
                                  required:
                                  - id
                                  - type
                                  properties:
                                    id:
                                      format: uuid
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                      - workspace
                                links:
                                  type: object
                                  required:
                                  - self
                                  properties:
                                    self:
                                      format: uri
                                      type: string
                        meta:
                          type: object
                          required:
                          - allowedActions
                          properties:
                            allowedActions:
                              type: array
                              items:
                                type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Internal Server Error
                      status:
                        type: number
                        enum:
                        - 500
                      message:
                        type: string
    post:
      summary: Publish a tile version
      tags:
      - Tiles
      description: Publishes a new tile version to the registry. If the tile does not yet exist, it will be created automatically. The request body should be a gzipped tar archive (tar.gz) containing the tile manifest (tile.json) and tile contents, e.g. markdown documentation files, eval scenarios, etc. The tile name and version are extracted from the manifest file.
      parameters:
      - schema:
          type: string
          enum:
          - application/x-tar
        in: header
        name: content-type
        required: true
      - schema:
          type: string
        in: header
        name: github-oidc-token
        required: false
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - links
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    properties:
                      self:
                        format: uri
                        type: string
                  data:
                    type: object
                    required:
                    - id
                    - type
                    - attributes
                    properties:
                      id:
                        format: uuid
                        type: string
                      type:
                        type: string
                        enum:
                        - tile
                      attributes:
                        type: object
                        required:
                        - featured
                        - isPrivate
                        - workspaceId
                        - name
                        - version
                        - fullName
                        - describes
                        - createdAt
                        - updatedAt
                        properties:
                          featured:
                            type: boolean
                          isPrivate:
                            type: boolean
                          workspaceId:
                            format: uuid
                            type: string
                          name:
                            minLength: 1
                            maxLength: 90
                            type: string
                          version:
                            type: string
                          fullName:
                            type: string
                          describes:
                            anyOf:
                            - type: string
                            - type: 'null'
                          createdAt:
                            format: date-time
                            type: string
                          updatedAt:
                            format: date-time
                            type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: Bad Request
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Bad Request
                      status:
                        type: number
                        enum:
                        - 400
                      message:
                        type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Unauthorized
                      status:
                        type: number
                        enum:
                        - 401
                      message:
                        type: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                description: Forbidden
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Forbidden
                      status:
                        type: number
                        enum:
                        - 403
                      message:
                        type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                description: Conflict
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Conflict
                      status:
                        type: number
                        enum:
                        - 409
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
         

# --- truncated at 32 KB (190 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tesslio/refs/heads/main/openapi/tesslio-tiles-api-openapi.yml