> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.0x.org/llms.txt.
> For full documentation content, see https://docs.0x.org/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.0x.org/_mcp/server.

# submit

POST https://api.0x.org/gasless/submit
Content-Type: application/json

Submit a gasless swap

Reference: https://docs.0x.org/api-reference/0-x-api/gasless/submit

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: 0x API
  version: 1.0.0
paths:
  /gasless/submit:
    post:
      operationId: submit
      summary: submit
      description: Submit a gasless swap
      tags:
        - subpackage_gasless
      parameters:
        - name: 0x-api-key
          in: header
          description: Visit dashboard.0x.org to get your API Key
          required: true
          schema:
            type: string
        - name: 0x-version
          in: header
          description: API version
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gasless_submit_Response_200'
        '400':
          description: 400 error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gasless::submitRequestBadRequestError'
        '500':
          description: 500 error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gasless::submitRequestInternalServerError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                chainId:
                  type: integer
                  description: >-
                    Chain ID. See
                    [here](https://docs.0x.org/docs/introduction/supported-chains)
                    for the list of supported chains
                approval:
                  oneOf:
                    - $ref: >-
                        #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApproval
                    - type: 'null'
                  description: >-
                    The gasless approval object from the quote endpoint
                    including its signature
                trade:
                  $ref: >-
                    #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTrade
                  description: >-
                    The trade object from the quote endpoint including its
                    signature
              required:
                - chainId
                - trade
servers:
  - url: https://api.0x.org
components:
  schemas:
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalType:
      type: string
      enum:
        - executeMetaTransaction::approve
        - permit
        - daiPermit
      description: The `approval.type` from the quote endpoint
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalType
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesEip712DomainItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesEip712DomainItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesPermitItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesPermitItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Types:
      type: object
      properties:
        EIP712Domain:
          type: array
          items:
            $ref: >-
              #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesEip712DomainItems
        Permit:
          type: array
          items:
            $ref: >-
              #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesPermitItems
      required:
        - EIP712Domain
        - Permit
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Types
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Domain:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        chainId:
          type: number
          format: double
        verifyingContract:
          type: string
        salt:
          type: string
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Domain
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Message:
      type: object
      properties:
        owner:
          type: string
        spender:
          type: string
        value:
          type: string
        nonce:
          type: number
          format: double
        deadline:
          type: string
      required:
        - owner
        - spender
        - value
        - nonce
        - deadline
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Message
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0PrimaryType:
      type: string
      enum:
        - Permit
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0PrimaryType
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7120:
      type: object
      properties:
        types:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Types
        domain:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Domain
        message:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Message
        primaryType:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0PrimaryType
      required:
        - types
        - domain
        - message
        - primaryType
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7120
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesEip712DomainItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesEip712DomainItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesPermitItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesPermitItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Types:
      type: object
      properties:
        EIP712Domain:
          type: array
          items:
            $ref: >-
              #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesEip712DomainItems
        Permit:
          type: array
          items:
            $ref: >-
              #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesPermitItems
      required:
        - EIP712Domain
        - Permit
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Types
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Domain:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        chainId:
          type: number
          format: double
        verifyingContract:
          type: string
        salt:
          type: string
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Domain
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Message:
      type: object
      properties:
        holder:
          type: string
        spender:
          type: string
        nonce:
          type: number
          format: double
        expiry:
          type: string
        allowed:
          type: boolean
      required:
        - holder
        - spender
        - nonce
        - expiry
        - allowed
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Message
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1PrimaryType:
      type: string
      enum:
        - Permit
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1PrimaryType
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7121:
      type: object
      properties:
        types:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Types
        domain:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Domain
        message:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Message
        primaryType:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1PrimaryType
      required:
        - types
        - domain
        - message
        - primaryType
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7121
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesEip712DomainItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesEip712DomainItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesMetaTransactionItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesMetaTransactionItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Types:
      type: object
      properties:
        EIP712Domain:
          type: array
          items:
            $ref: >-
              #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesEip712DomainItems
        MetaTransaction:
          type: array
          items:
            $ref: >-
              #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesMetaTransactionItems
      required:
        - EIP712Domain
        - MetaTransaction
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Types
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Domain:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        chainId:
          type: number
          format: double
        verifyingContract:
          type: string
        salt:
          type: string
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Domain
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Message:
      type: object
      properties:
        nonce:
          type: number
          format: double
        from:
          type: string
        functionSignature:
          type: string
      required:
        - nonce
        - from
        - functionSignature
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Message
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2PrimaryType:
      type: string
      enum:
        - MetaTransaction
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2PrimaryType
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7122:
      type: object
      properties:
        types:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Types
        domain:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Domain
        message:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Message
        primaryType:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2PrimaryType
      required:
        - types
        - domain
        - message
        - primaryType
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7122
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712:
      oneOf:
        - $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7120
        - $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7121
        - $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7122
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalSignature:
      type: object
      properties:
        signatureType:
          type: number
          format: double
          description: >-
            Signature type enum: `2` (EIP712), `3` (EthSign), or `5` (Raw).
            Determines which other fields are required.
        v:
          type: number
          format: double
          description: >-
            ECDSA recovery id. Required when signatureType is `2` (EIP712) or
            `3` (EthSign).
        r:
          type: string
          description: >-
            ECDSA signature r value (hex string). Required when signatureType is
            `2` (EIP712) or `3` (EthSign).
        s:
          type: string
          description: >-
            ECDSA signature s value (hex string). Required when signatureType is
            `2` (EIP712) or `3` (EthSign).
        signatureBytes:
          type: string
          description: >-
            Raw signature bytes (hex string). Required when signatureType is `5`
            (Raw). Must not be provided for other signature types.
      required:
        - signatureType
      description: >-
        A discriminated union based on `signatureType`. For EIP712
        (`signatureType: 2`) or EthSign (`signatureType: 3`): provide `v`, `r`,
        and `s`. For Raw (`signatureType: 5`): provide `signatureBytes` only.
        Use Raw (`signatureType: 5`) to support smart contract wallets (e.g.
        ERC-1271) that return opaque signature bytes.
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalSignature
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApproval:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalType
          description: The `approval.type` from the quote endpoint
        eip712:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712
        signature:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalSignature
          description: >-
            A discriminated union based on `signatureType`. For EIP712
            (`signatureType: 2`) or EthSign (`signatureType: 3`): provide `v`,
            `r`, and `s`. For Raw (`signatureType: 5`): provide `signatureBytes`
            only. Use Raw (`signatureType: 5`) to support smart contract wallets
            (e.g. ERC-1271) that return opaque signature bytes.
      required:
        - type
        - eip712
        - signature
      description: >-
        The gasless approval object from the quote endpoint including its
        signature
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApproval
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeType:
      type: string
      enum:
        - settler_metatransaction
        - settler_intent
      description: The `trade.type` from the quote endpoint
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeType
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712TypesItems:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712TypesItems
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Domain:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        chainId:
          type: number
          format: double
        verifyingContract:
          type: string
        salt:
          type: string
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Domain
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0PermittedAmount:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0PermittedAmount
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Permitted:
      type: object
      properties:
        token:
          type: string
        amount:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0PermittedAmount
      required:
        - token
        - amount
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Permitted
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Nonce:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Nonce
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Deadline:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Deadline
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActionsMinAmountOut:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActionsMinAmountOut
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActions:
      type: object
      properties:
        recipient:
          type: string
        buyToken:
          type: string
        minAmountOut:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActionsMinAmountOut
        actions:
          type: array
          items:
            type: string
      required:
        - recipient
        - buyToken
        - minAmountOut
        - actions
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActions
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message0:
      type: object
      properties:
        permitted:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Permitted
        spender:
          type: string
        nonce:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Nonce
        deadline:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Deadline
        slippageAndActions:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActions
      required:
        - permitted
        - spender
        - nonce
        - deadline
        - slippageAndActions
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message0
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1PermittedAmount:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1PermittedAmount
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Permitted:
      type: object
      properties:
        token:
          type: string
        amount:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1PermittedAmount
      required:
        - token
        - amount
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Permitted
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Nonce:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Nonce
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Deadline:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Deadline
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1SlippageMinAmountOut:
      oneOf:
        - type: string
        - type: number
          format: double
        - description: Any type
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1SlippageMinAmountOut
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Slippage:
      type: object
      properties:
        recipient:
          type: string
        buyToken:
          type: string
        minAmountOut:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1SlippageMinAmountOut
      required:
        - recipient
        - buyToken
        - minAmountOut
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Slippage
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message1:
      type: object
      properties:
        permitted:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Permitted
        spender:
          type: string
        nonce:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Nonce
        deadline:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Deadline
        slippage:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Slippage
      required:
        - permitted
        - spender
        - nonce
        - deadline
        - slippage
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message1
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message:
      oneOf:
        - $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message0
        - $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message1
      title: >-
        GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712:
      type: object
      properties:
        types:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: >-
                #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712TypesItems
        primaryType:
          type: string
        domain:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Domain
        message:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message
      required:
        - types
        - primaryType
        - domain
        - message
      description: The `trade.eip712` from the quote endpoint
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeSignature:
      type: object
      properties:
        signatureType:
          type: number
          format: double
          description: >-
            Signature type enum: `2` (EIP712), `3` (EthSign), or `5` (Raw).
            Determines which other fields are required.
        v:
          type: number
          format: double
          description: >-
            ECDSA recovery id. Required when signatureType is `2` (EIP712) or
            `3` (EthSign).
        r:
          type: string
          description: >-
            ECDSA signature r value (hex string). Required when signatureType is
            `2` (EIP712) or `3` (EthSign).
        s:
          type: string
          description: >-
            ECDSA signature s value (hex string). Required when signatureType is
            `2` (EIP712) or `3` (EthSign).
        signatureBytes:
          type: string
          description: >-
            Raw signature bytes (hex string). Required when signatureType is `5`
            (Raw). Must not be provided for other signature types.
      required:
        - signatureType
      description: >-
        A discriminated union based on `signatureType`. For EIP712
        (`signatureType: 2`) or EthSign (`signatureType: 3`): provide `v`, `r`,
        and `s`. For Raw (`signatureType: 5`): provide `signatureBytes` only.
        Use Raw (`signatureType: 5`) to support smart contract wallets (e.g.
        ERC-1271) that return opaque signature bytes.
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeSignature
    GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTrade:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeType
          description: The `trade.type` from the quote endpoint
        eip712:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712
          description: The `trade.eip712` from the quote endpoint
        signature:
          $ref: >-
            #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeSignature
          description: >-
            A discriminated union based on `signatureType`. For EIP712
            (`signatureType: 2`) or EthSign (`signatureType: 3`): provide `v`,
            `r`, and `s`. For Raw (`signatureType: 5`): provide `signatureBytes`
            only. Use Raw (`signatureType: 5`) to support smart contract wallets
            (e.g. ERC-1271) that return opaque signature bytes.
      required:
        - type
        - eip712
        - signature
      description: The trade object from the quote endpoint including its signature
      title: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTrade
    GaslessSubmitPostResponsesContentApplicationJsonSchemaType:
      type: string
      enum:
        - settler_metatransaction
        - settler_intent
      description: >-
        The transaction type determined by the trade route. This is currently
        just `settler_metatransaction` and could expand to more types in the
        future
      title: GaslessSubmitPostResponsesContentApplicationJsonSchemaType
    Gasless_submit_Response_200:
      type: object
      properties:
        tradeHash:
          type: string
          description: >-
            The hash for the trade according to
            [EIP-712](https://eips.ethereum.org/EIPS/eip-712)
        type:
          $ref: >-
            #/components/schemas/GaslessSubmitPostResponsesContentApplicationJsonSchemaType
          description: >-
            The transaction type determined by the trade route. This is
            currently just `settler_metatransaction` and could expand to more
            types in the future
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
      required:
        - tradeHash
        - type
        - zid
      title: Gasless_submit_Response_200
    InputInvalidName:
      type: string
      enum:
        - INPUT_INVALID
      title: InputInvalidName
    InputInvalidDataDetailsItems:
      type: object
      properties:
        field:
          type: string
          description: The input field name
        reason:
          type: string
          description: The validation failure reason
      required:
        - field
        - reason
      title: InputInvalidDataDetailsItems
    InputInvalidData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        details:
          type: array
          items:
            $ref: '#/components/schemas/InputInvalidDataDetailsItems'
          description: The list of invalid inputs
      required:
        - zid
        - details
      title: InputInvalidData
    INPUT_INVALID:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/InputInvalidName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/InputInvalidData'
      required:
        - name
        - message
        - data
      title: INPUT_INVALID
    InsufficientBalanceOrAllowanceName:
      type: string
      enum:
        - INSUFFICIENT_BALANCE_OR_ALLOWANCE
      title: InsufficientBalanceOrAllowanceName
    InsufficientBalanceOrAllowanceData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        metaTransactionHash:
          type: string
          description: The hash of the meta-transaction provided by the caller
        taker:
          type: string
          description: The intended signer of the meta-transaction
        sellToken:
          type: string
          description: The sell token
        sellAmount:
          type: string
          description: The sell amount
        minBalanceOrAllowance:
          type: string
          description: The smaller value of the balance or the allowance of the taker
      required:
        - zid
        - metaTransactionHash
        - taker
        - sellToken
        - sellAmount
        - minBalanceOrAllowance
      title: InsufficientBalanceOrAllowanceData
    INSUFFICIENT_BALANCE_OR_ALLOWANCE:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/InsufficientBalanceOrAllowanceName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/InsufficientBalanceOrAllowanceData'
      required:
        - name
        - message
        - data
      title: INSUFFICIENT_BALANCE_OR_ALLOWANCE
    InvalidSignatureName:
      type: string
      enum:
        - INVALID_SIGNATURE
      title: InvalidSignatureName
    InvalidSignatureData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        metaTransactionHash:
          type: string
          description: The hash of the meta-transaction provided by the caller
        taker:
          type: string
          description: The intended signer of the meta-transaction
      required:
        - zid
        - metaTransactionHash
        - taker
      title: InvalidSignatureData
    INVALID_SIGNATURE:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/InvalidSignatureName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/InvalidSignatureData'
      required:
        - name
        - message
        - data
      title: INVALID_SIGNATURE
    InvalidSignerName:
      type: string
      enum:
        - INVALID_SIGNER
      title: InvalidSignerName
    InvalidSignerData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        metaTransactionHash:
          type: string
          description: The hash of the meta-transaction provided by the caller
        taker:
          type: string
          description: The intended signer of the meta-transaction
        signer:
          type: string
          description: The signer of the meta-transaction
      required:
        - zid
        - metaTransactionHash
        - taker
        - signer
      title: InvalidSignerData
    INVALID_SIGNER:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/InvalidSignerName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/InvalidSignerData'
      required:
        - name
        - message
        - data
      title: INVALID_SIGNER
    MetaTransactionExpiryTooSoonName:
      type: string
      enum:
        - META_TRANSACTION_EXPIRY_TOO_SOON
      title: MetaTransactionExpiryTooSoonName
    MetaTransactionExpiryTooSoonData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        metaTransactionHash:
          type: string
          description: The hash of the meta-transaction provided by the caller
        expiry:
          type: string
          description: The expiry of the meta-transaction provided by the caller in ms
      required:
        - zid
        - metaTransactionHash
        - expiry
      title: MetaTransactionExpiryTooSoonData
    META_TRANSACTION_EXPIRY_TOO_SOON:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/MetaTransactionExpiryTooSoonName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/MetaTransactionExpiryTooSoonData'
      required:
        - name
        - message
        - data
      title: META_TRANSACTION_EXPIRY_TOO_SOON
    MetaTransactionInvalidName:
      type: string
      enum:
        - META_TRANSACTION_INVALID
      title: MetaTransactionInvalidName
    MetaTransactionInvalidData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        metaTransactionHash:
          type: string
          description: The hash of the meta-transaction provided by the caller
      required:
        - zid
        - metaTransactionHash
      title: MetaTransactionInvalidData
    META_TRANSACTION_INVALID:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/MetaTransactionInvalidName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/MetaTransactionInvalidData'
      required:
        - name
        - message
        - data
      title: META_TRANSACTION_INVALID
    PendingTradesAlreadyExistName:
      type: string
      enum:
        - PENDING_TRADES_ALREADY_EXIST
      title: PendingTradesAlreadyExistName
    PendingTradesAlreadyExistData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        metaTransactionHash:
          type: string
          description: The hash of the meta-transaction provided by the caller
        pendingMetaTransactionHashes:
          type: array
          items:
            type: string
          description: >-
            The list of pending meta-transaction hashes for the same taker and
            sell token
      required:
        - zid
        - metaTransactionHash
        - pendingMetaTransactionHashes
      title: PendingTradesAlreadyExistData
    PENDING_TRADES_ALREADY_EXIST:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/PendingTradesAlreadyExistName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/PendingTradesAlreadyExistData'
      required:
        - name
        - message
        - data
      title: PENDING_TRADES_ALREADY_EXIST
    SmartWalletNotSupportedName:
      type: string
      enum:
        - SMART_WALLET_NOT_SUPPORTED
      title: SmartWalletNotSupportedName
    SmartWalletNotSupportedData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        taker:
          type: string
          description: The smart wallet address that was rejected
        chainId:
          type: number
          format: double
          description: The chain where smart wallets are not supported
      required:
        - zid
        - taker
        - chainId
      title: SmartWalletNotSupportedData
    SMART_WALLET_NOT_SUPPORTED:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/SmartWalletNotSupportedName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/SmartWalletNotSupportedData'
      required:
        - name
        - message
        - data
      title: SMART_WALLET_NOT_SUPPORTED
    TradeAlreadySubmittedName:
      type: string
      enum:
        - TRADE_ALREADY_SUBMITTED
      title: TradeAlreadySubmittedName
    TradeAlreadySubmittedData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
        tradeHash:
          type: string
          description: The hash of the trade that was already submitted
      required:
        - zid
        - tradeHash
      title: TradeAlreadySubmittedData
    TRADE_ALREADY_SUBMITTED:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/TradeAlreadySubmittedName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/TradeAlreadySubmittedData'
      required:
        - name
        - message
        - data
      title: TRADE_ALREADY_SUBMITTED
    Gasless::submitRequestBadRequestError:
      oneOf:
        - $ref: '#/components/schemas/INPUT_INVALID'
        - $ref: '#/components/schemas/INSUFFICIENT_BALANCE_OR_ALLOWANCE'
        - $ref: '#/components/schemas/INVALID_SIGNATURE'
        - $ref: '#/components/schemas/INVALID_SIGNER'
        - $ref: '#/components/schemas/META_TRANSACTION_EXPIRY_TOO_SOON'
        - $ref: '#/components/schemas/META_TRANSACTION_INVALID'
        - $ref: '#/components/schemas/PENDING_TRADES_ALREADY_EXIST'
        - $ref: '#/components/schemas/SMART_WALLET_NOT_SUPPORTED'
        - $ref: '#/components/schemas/TRADE_ALREADY_SUBMITTED'
      title: Gasless::submitRequestBadRequestError
    InternalServerErrorName:
      type: string
      enum:
        - INTERNAL_SERVER_ERROR
      title: InternalServerErrorName
    InternalServerErrorData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
      required:
        - zid
      title: InternalServerErrorData
    INTERNAL_SERVER_ERROR:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/InternalServerErrorName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/InternalServerErrorData'
      required:
        - name
        - message
        - data
      title: INTERNAL_SERVER_ERROR
    UncategorizedName:
      type: string
      enum:
        - UNCATEGORIZED
      title: UncategorizedName
    UncategorizedData:
      type: object
      properties:
        zid:
          type: string
          description: The unique ZeroEx identifier of the request
      required:
        - zid
      title: UncategorizedData
    UNCATEGORIZED:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/UncategorizedName'
        message:
          type: string
        data:
          $ref: '#/components/schemas/UncategorizedData'
      required:
        - name
        - message
        - data
      title: UNCATEGORIZED
    Gasless::submitRequestInternalServerError:
      oneOf:
        - $ref: '#/components/schemas/INTERNAL_SERVER_ERROR'
        - $ref: '#/components/schemas/UNCATEGORIZED'
      title: Gasless::submitRequestInternalServerError

```

## SDK Code Examples

```python Gasless_submit_example
import requests

url = "https://api.0x.org/gasless/submit"

payload = {
    "chainId": 8453,
    "trade": {
        "type": "settler_metatransaction",
        "eip712": {
            "types": {
                "PermitWitnessTransferFrom": [
                    {
                        "name": "permitted",
                        "type": "TokenPermissions"
                    },
                    {
                        "name": "spender",
                        "type": "address"
                    },
                    {
                        "name": "nonce",
                        "type": "uint256"
                    },
                    {
                        "name": "deadline",
                        "type": "uint256"
                    },
                    {
                        "name": "slippageAndActions",
                        "type": "SlippageAndActions"
                    }
                ],
                "TokenPermissions": [
                    {
                        "name": "token",
                        "type": "address"
                    },
                    {
                        "name": "amount",
                        "type": "uint256"
                    }
                ],
                "EIP712Domain": [
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "chainId",
                        "type": "uint256"
                    },
                    {
                        "name": "verifyingContract",
                        "type": "address"
                    }
                ],
                "SlippageAndActions": [
                    {
                        "name": "recipient",
                        "type": "address"
                    },
                    {
                        "name": "buyToken",
                        "type": "address"
                    },
                    {
                        "name": "minAmountOut",
                        "type": "uint256"
                    },
                    {
                        "name": "actions",
                        "type": "bytes[]"
                    }
                ]
            },
            "primaryType": "PermitWitnessTransferFrom",
            "domain": {
                "name": "Permit2",
                "chainId": 8453,
                "verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3"
            },
            "message": {
                "permitted": {
                    "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                    "amount": "50000000"
                },
                "spender": "0x5ce929ddb01804bff35b2f5c77b735bdb094aac8",
                "nonce": "2241959297937691820908574931991585",
                "deadline": "1718672122",
                "slippageAndActions": {
                    "recipient": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e",
                    "buyToken": "0x50c5725949a6f0c72e6c4a641f24049a917db0cb",
                    "minAmountOut": "49793430139340757517",
                    "actions": ["0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa", "0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]
                }
            }
        },
        "signature": {
            "signatureType": 2,
            "v": 28,
            "r": "0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88",
            "s": "0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2"
        }
    },
    "approval": {
        "type": "permit",
        "eip712": {
            "types": {
                "EIP712Domain": [
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "version",
                        "type": "string"
                    },
                    {
                        "name": "chainId",
                        "type": "uint256"
                    },
                    {
                        "name": "verifyingContract",
                        "type": "address"
                    }
                ],
                "Permit": [
                    {
                        "name": "owner",
                        "type": "address"
                    },
                    {
                        "name": "spender",
                        "type": "address"
                    },
                    {
                        "name": "value",
                        "type": "uint256"
                    },
                    {
                        "name": "nonce",
                        "type": "uint256"
                    },
                    {
                        "name": "deadline",
                        "type": "uint256"
                    }
                ]
            },
            "domain": {
                "name": "USD Coin",
                "version": "2",
                "chainId": 8453,
                "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
            },
            "message": {
                "owner": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e",
                "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3",
                "value": "50000000",
                "nonce": 0,
                "deadline": "1718669123"
            },
            "primaryType": "Permit"
        },
        "signature": {
            "signatureType": 2,
            "v": 27,
            "r": "0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb",
            "s": "0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81"
        }
    }
}
headers = {
    "0x-api-key": "0x-api-key",
    "0x-version": "v2",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Gasless_submit_example
const url = 'https://api.0x.org/gasless/submit';
const options = {
  method: 'POST',
  headers: {
    '0x-api-key': '0x-api-key',
    '0x-version': 'v2',
    'Content-Type': 'application/json'
  },
  body: '{"chainId":8453,"trade":{"type":"settler_metatransaction","eip712":{"types":{"PermitWitnessTransferFrom":[{"name":"permitted","type":"TokenPermissions"},{"name":"spender","type":"address"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"slippageAndActions","type":"SlippageAndActions"}],"TokenPermissions":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"EIP712Domain":[{"name":"name","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"SlippageAndActions":[{"name":"recipient","type":"address"},{"name":"buyToken","type":"address"},{"name":"minAmountOut","type":"uint256"},{"name":"actions","type":"bytes[]"}]},"primaryType":"PermitWitnessTransferFrom","domain":{"name":"Permit2","chainId":8453,"verifyingContract":"0x000000000022d473030f116ddee9f6b43ac78ba3"},"message":{"permitted":{"token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":"50000000"},"spender":"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8","nonce":"2241959297937691820908574931991585","deadline":"1718672122","slippageAndActions":{"recipient":"0x70a9f34f9b34c64957b9c401a97bfed35b95049e","buyToken":"0x50c5725949a6f0c72e6c4a641f24049a917db0cb","minAmountOut":"49793430139340757517","actions":["0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa","0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]}}},"signature":{"signatureType":2,"v":28,"r":"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88","s":"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2"}},"approval":{"type":"permit","eip712":{"types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]},"domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":{"owner":"0x70a9f34f9b34c64957b9c401a97bfed35b95049e","spender":"0x000000000022d473030f116ddee9f6b43ac78ba3","value":"50000000","nonce":0,"deadline":"1718669123"},"primaryType":"Permit"},"signature":{"signatureType":2,"v":27,"r":"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb","s":"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81"}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Gasless_submit_example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.0x.org/gasless/submit"

	payload := strings.NewReader("{\n  \"chainId\": 8453,\n  \"trade\": {\n    \"type\": \"settler_metatransaction\",\n    \"eip712\": {\n      \"types\": {\n        \"PermitWitnessTransferFrom\": [\n          {\n            \"name\": \"permitted\",\n            \"type\": \"TokenPermissions\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"slippageAndActions\",\n            \"type\": \"SlippageAndActions\"\n          }\n        ],\n        \"TokenPermissions\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"SlippageAndActions\": [\n          {\n            \"name\": \"recipient\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"buyToken\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"minAmountOut\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"actions\",\n            \"type\": \"bytes[]\"\n          }\n        ]\n      },\n      \"primaryType\": \"PermitWitnessTransferFrom\",\n      \"domain\": {\n        \"name\": \"Permit2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n      },\n      \"message\": {\n        \"permitted\": {\n          \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n          \"amount\": \"50000000\"\n        },\n        \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n        \"nonce\": \"2241959297937691820908574931991585\",\n        \"deadline\": \"1718672122\",\n        \"slippageAndActions\": {\n          \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n          \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n          \"minAmountOut\": \"49793430139340757517\",\n          \"actions\": [\n            \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n            \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n          ]\n        }\n      }\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 28,\n      \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n      \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n    }\n  },\n  \"approval\": {\n    \"type\": \"permit\",\n    \"eip712\": {\n      \"types\": {\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"version\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"Permit\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          }\n        ]\n      },\n      \"domain\": {\n        \"name\": \"USD Coin\",\n        \"version\": \"2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n      },\n      \"message\": {\n        \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n        \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n        \"value\": \"50000000\",\n        \"nonce\": 0,\n        \"deadline\": \"1718669123\"\n      },\n      \"primaryType\": \"Permit\"\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 27,\n      \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n      \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("0x-api-key", "0x-api-key")
	req.Header.Add("0x-version", "v2")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Gasless_submit_example
require 'uri'
require 'net/http'

url = URI("https://api.0x.org/gasless/submit")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["0x-api-key"] = '0x-api-key'
request["0x-version"] = 'v2'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"chainId\": 8453,\n  \"trade\": {\n    \"type\": \"settler_metatransaction\",\n    \"eip712\": {\n      \"types\": {\n        \"PermitWitnessTransferFrom\": [\n          {\n            \"name\": \"permitted\",\n            \"type\": \"TokenPermissions\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"slippageAndActions\",\n            \"type\": \"SlippageAndActions\"\n          }\n        ],\n        \"TokenPermissions\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"SlippageAndActions\": [\n          {\n            \"name\": \"recipient\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"buyToken\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"minAmountOut\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"actions\",\n            \"type\": \"bytes[]\"\n          }\n        ]\n      },\n      \"primaryType\": \"PermitWitnessTransferFrom\",\n      \"domain\": {\n        \"name\": \"Permit2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n      },\n      \"message\": {\n        \"permitted\": {\n          \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n          \"amount\": \"50000000\"\n        },\n        \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n        \"nonce\": \"2241959297937691820908574931991585\",\n        \"deadline\": \"1718672122\",\n        \"slippageAndActions\": {\n          \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n          \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n          \"minAmountOut\": \"49793430139340757517\",\n          \"actions\": [\n            \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n            \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n          ]\n        }\n      }\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 28,\n      \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n      \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n    }\n  },\n  \"approval\": {\n    \"type\": \"permit\",\n    \"eip712\": {\n      \"types\": {\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"version\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"Permit\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          }\n        ]\n      },\n      \"domain\": {\n        \"name\": \"USD Coin\",\n        \"version\": \"2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n      },\n      \"message\": {\n        \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n        \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n        \"value\": \"50000000\",\n        \"nonce\": 0,\n        \"deadline\": \"1718669123\"\n      },\n      \"primaryType\": \"Permit\"\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 27,\n      \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n      \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Gasless_submit_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.0x.org/gasless/submit")
  .header("0x-api-key", "0x-api-key")
  .header("0x-version", "v2")
  .header("Content-Type", "application/json")
  .body("{\n  \"chainId\": 8453,\n  \"trade\": {\n    \"type\": \"settler_metatransaction\",\n    \"eip712\": {\n      \"types\": {\n        \"PermitWitnessTransferFrom\": [\n          {\n            \"name\": \"permitted\",\n            \"type\": \"TokenPermissions\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"slippageAndActions\",\n            \"type\": \"SlippageAndActions\"\n          }\n        ],\n        \"TokenPermissions\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"SlippageAndActions\": [\n          {\n            \"name\": \"recipient\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"buyToken\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"minAmountOut\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"actions\",\n            \"type\": \"bytes[]\"\n          }\n        ]\n      },\n      \"primaryType\": \"PermitWitnessTransferFrom\",\n      \"domain\": {\n        \"name\": \"Permit2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n      },\n      \"message\": {\n        \"permitted\": {\n          \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n          \"amount\": \"50000000\"\n        },\n        \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n        \"nonce\": \"2241959297937691820908574931991585\",\n        \"deadline\": \"1718672122\",\n        \"slippageAndActions\": {\n          \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n          \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n          \"minAmountOut\": \"49793430139340757517\",\n          \"actions\": [\n            \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n            \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n          ]\n        }\n      }\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 28,\n      \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n      \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n    }\n  },\n  \"approval\": {\n    \"type\": \"permit\",\n    \"eip712\": {\n      \"types\": {\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"version\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"Permit\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          }\n        ]\n      },\n      \"domain\": {\n        \"name\": \"USD Coin\",\n        \"version\": \"2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n      },\n      \"message\": {\n        \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n        \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n        \"value\": \"50000000\",\n        \"nonce\": 0,\n        \"deadline\": \"1718669123\"\n      },\n      \"primaryType\": \"Permit\"\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 27,\n      \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n      \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n    }\n  }\n}")
  .asString();
```

```php Gasless_submit_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.0x.org/gasless/submit', [
  'body' => '{
  "chainId": 8453,
  "trade": {
    "type": "settler_metatransaction",
    "eip712": {
      "types": {
        "PermitWitnessTransferFrom": [
          {
            "name": "permitted",
            "type": "TokenPermissions"
          },
          {
            "name": "spender",
            "type": "address"
          },
          {
            "name": "nonce",
            "type": "uint256"
          },
          {
            "name": "deadline",
            "type": "uint256"
          },
          {
            "name": "slippageAndActions",
            "type": "SlippageAndActions"
          }
        ],
        "TokenPermissions": [
          {
            "name": "token",
            "type": "address"
          },
          {
            "name": "amount",
            "type": "uint256"
          }
        ],
        "EIP712Domain": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "chainId",
            "type": "uint256"
          },
          {
            "name": "verifyingContract",
            "type": "address"
          }
        ],
        "SlippageAndActions": [
          {
            "name": "recipient",
            "type": "address"
          },
          {
            "name": "buyToken",
            "type": "address"
          },
          {
            "name": "minAmountOut",
            "type": "uint256"
          },
          {
            "name": "actions",
            "type": "bytes[]"
          }
        ]
      },
      "primaryType": "PermitWitnessTransferFrom",
      "domain": {
        "name": "Permit2",
        "chainId": 8453,
        "verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3"
      },
      "message": {
        "permitted": {
          "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
          "amount": "50000000"
        },
        "spender": "0x5ce929ddb01804bff35b2f5c77b735bdb094aac8",
        "nonce": "2241959297937691820908574931991585",
        "deadline": "1718672122",
        "slippageAndActions": {
          "recipient": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e",
          "buyToken": "0x50c5725949a6f0c72e6c4a641f24049a917db0cb",
          "minAmountOut": "49793430139340757517",
          "actions": [
            "0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa",
            "0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
          ]
        }
      }
    },
    "signature": {
      "signatureType": 2,
      "v": 28,
      "r": "0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88",
      "s": "0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2"
    }
  },
  "approval": {
    "type": "permit",
    "eip712": {
      "types": {
        "EIP712Domain": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "version",
            "type": "string"
          },
          {
            "name": "chainId",
            "type": "uint256"
          },
          {
            "name": "verifyingContract",
            "type": "address"
          }
        ],
        "Permit": [
          {
            "name": "owner",
            "type": "address"
          },
          {
            "name": "spender",
            "type": "address"
          },
          {
            "name": "value",
            "type": "uint256"
          },
          {
            "name": "nonce",
            "type": "uint256"
          },
          {
            "name": "deadline",
            "type": "uint256"
          }
        ]
      },
      "domain": {
        "name": "USD Coin",
        "version": "2",
        "chainId": 8453,
        "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
      },
      "message": {
        "owner": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e",
        "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3",
        "value": "50000000",
        "nonce": 0,
        "deadline": "1718669123"
      },
      "primaryType": "Permit"
    },
    "signature": {
      "signatureType": 2,
      "v": 27,
      "r": "0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb",
      "s": "0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81"
    }
  }
}',
  'headers' => [
    '0x-api-key' => '0x-api-key',
    '0x-version' => 'v2',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Gasless_submit_example
using RestSharp;

var client = new RestClient("https://api.0x.org/gasless/submit");
var request = new RestRequest(Method.POST);
request.AddHeader("0x-api-key", "0x-api-key");
request.AddHeader("0x-version", "v2");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"chainId\": 8453,\n  \"trade\": {\n    \"type\": \"settler_metatransaction\",\n    \"eip712\": {\n      \"types\": {\n        \"PermitWitnessTransferFrom\": [\n          {\n            \"name\": \"permitted\",\n            \"type\": \"TokenPermissions\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"slippageAndActions\",\n            \"type\": \"SlippageAndActions\"\n          }\n        ],\n        \"TokenPermissions\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"SlippageAndActions\": [\n          {\n            \"name\": \"recipient\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"buyToken\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"minAmountOut\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"actions\",\n            \"type\": \"bytes[]\"\n          }\n        ]\n      },\n      \"primaryType\": \"PermitWitnessTransferFrom\",\n      \"domain\": {\n        \"name\": \"Permit2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n      },\n      \"message\": {\n        \"permitted\": {\n          \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n          \"amount\": \"50000000\"\n        },\n        \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n        \"nonce\": \"2241959297937691820908574931991585\",\n        \"deadline\": \"1718672122\",\n        \"slippageAndActions\": {\n          \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n          \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n          \"minAmountOut\": \"49793430139340757517\",\n          \"actions\": [\n            \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n            \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n            \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n          ]\n        }\n      }\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 28,\n      \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n      \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n    }\n  },\n  \"approval\": {\n    \"type\": \"permit\",\n    \"eip712\": {\n      \"types\": {\n        \"EIP712Domain\": [\n          {\n            \"name\": \"name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"version\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"chainId\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"verifyingContract\",\n            \"type\": \"address\"\n          }\n        ],\n        \"Permit\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"spender\",\n            \"type\": \"address\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"uint256\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"uint256\"\n          }\n        ]\n      },\n      \"domain\": {\n        \"name\": \"USD Coin\",\n        \"version\": \"2\",\n        \"chainId\": 8453,\n        \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n      },\n      \"message\": {\n        \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n        \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n        \"value\": \"50000000\",\n        \"nonce\": 0,\n        \"deadline\": \"1718669123\"\n      },\n      \"primaryType\": \"Permit\"\n    },\n    \"signature\": {\n      \"signatureType\": 2,\n      \"v\": 27,\n      \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n      \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Gasless_submit_example
import Foundation

let headers = [
  "0x-api-key": "0x-api-key",
  "0x-version": "v2",
  "Content-Type": "application/json"
]
let parameters = [
  "chainId": 8453,
  "trade": [
    "type": "settler_metatransaction",
    "eip712": [
      "types": [
        "PermitWitnessTransferFrom": [
          [
            "name": "permitted",
            "type": "TokenPermissions"
          ],
          [
            "name": "spender",
            "type": "address"
          ],
          [
            "name": "nonce",
            "type": "uint256"
          ],
          [
            "name": "deadline",
            "type": "uint256"
          ],
          [
            "name": "slippageAndActions",
            "type": "SlippageAndActions"
          ]
        ],
        "TokenPermissions": [
          [
            "name": "token",
            "type": "address"
          ],
          [
            "name": "amount",
            "type": "uint256"
          ]
        ],
        "EIP712Domain": [
          [
            "name": "name",
            "type": "string"
          ],
          [
            "name": "chainId",
            "type": "uint256"
          ],
          [
            "name": "verifyingContract",
            "type": "address"
          ]
        ],
        "SlippageAndActions": [
          [
            "name": "recipient",
            "type": "address"
          ],
          [
            "name": "buyToken",
            "type": "address"
          ],
          [
            "name": "minAmountOut",
            "type": "uint256"
          ],
          [
            "name": "actions",
            "type": "bytes[]"
          ]
        ]
      ],
      "primaryType": "PermitWitnessTransferFrom",
      "domain": [
        "name": "Permit2",
        "chainId": 8453,
        "verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3"
      ],
      "message": [
        "permitted": [
          "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
          "amount": "50000000"
        ],
        "spender": "0x5ce929ddb01804bff35b2f5c77b735bdb094aac8",
        "nonce": "2241959297937691820908574931991585",
        "deadline": "1718672122",
        "slippageAndActions": [
          "recipient": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e",
          "buyToken": "0x50c5725949a6f0c72e6c4a641f24049a917db0cb",
          "minAmountOut": "49793430139340757517",
          "actions": ["0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa", "0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]
        ]
      ]
    ],
    "signature": [
      "signatureType": 2,
      "v": 28,
      "r": "0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88",
      "s": "0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2"
    ]
  ],
  "approval": [
    "type": "permit",
    "eip712": [
      "types": [
        "EIP712Domain": [
          [
            "name": "name",
            "type": "string"
          ],
          [
            "name": "version",
            "type": "string"
          ],
          [
            "name": "chainId",
            "type": "uint256"
          ],
          [
            "name": "verifyingContract",
            "type": "address"
          ]
        ],
        "Permit": [
          [
            "name": "owner",
            "type": "address"
          ],
          [
            "name": "spender",
            "type": "address"
          ],
          [
            "name": "value",
            "type": "uint256"
          ],
          [
            "name": "nonce",
            "type": "uint256"
          ],
          [
            "name": "deadline",
            "type": "uint256"
          ]
        ]
      ],
      "domain": [
        "name": "USD Coin",
        "version": "2",
        "chainId": 8453,
        "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
      ],
      "message": [
        "owner": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e",
        "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3",
        "value": "50000000",
        "nonce": 0,
        "deadline": "1718669123"
      ],
      "primaryType": "Permit"
    ],
    "signature": [
      "signatureType": 2,
      "v": 27,
      "r": "0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb",
      "s": "0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81"
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.0x.org/gasless/submit")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```