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

# Submit



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/licenses/{licenseId}/seat-requests
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/licenses/{licenseId}/seat-requests:
    post:
      tags:
        - License Seat Requests
      summary: Submit
      operationId: LicenseSeatRequestsController_submit_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
            pattern: ^\d+$
        - name: licenseId
          required: true
          in: path
          schema:
            type: string
            pattern: ^\d+$
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitSeatRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SeatRequestResponseDto'
components:
  schemas:
    SubmitSeatRequestDto:
      type: object
      properties:
        reason:
          type: string
          maxLength: 1000
      additionalProperties: false
    SeatRequestResponseDto:
      type: object
      properties:
        id:
          type: string
        licenseId:
          type: string
        status:
          enum:
            - canceled
            - pending
            - approved
            - denied
          type: string
        reason:
          type: string
          nullable: true
        requestedBy:
          $ref: '#/components/schemas/UserSummaryDto'
        decidedByUserId:
          type: string
          nullable: true
        decidedAt:
          type: string
          nullable: true
        decisionMessage:
          type: string
          nullable: true
        createdAt:
          type: string
          nullable: true
      required:
        - id
        - licenseId
        - status
        - reason
        - requestedBy
        - decidedByUserId
        - decidedAt
        - decisionMessage
        - createdAt
    UserSummaryDto:
      type: object
      properties:
        userId:
          type: string
        email:
          type: string
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
      required:
        - userId
        - email
        - firstName
        - lastName

````