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

# Execute Order

> Submit a taker-signed transaction for the market maker to fill



## OpenAPI

````yaml openapi-spec/swap/v2/jupiterz.yaml post /execute
openapi: 3.0.3
info:
  title: JupiterZ API
  version: 1.0.0
  description: >
    Standalone JupiterZ (RFQ) API. Request a firm quote and unsigned transaction
    from

    Jupiter's market makers (`/order`, `/global-order`), have the taker sign the
    transaction,

    and submit it for the market maker to co-sign and execute (`/execute`).


    Access is whitelisted: your API key must be enabled for the JupiterZ API.

    Request access via the enterprise form at
    https://airtable.com/apppC9l7PaT9XG8jN/pagjXGV6PFNwUd9P2/form
servers:
  - url: https://api.jup.ag/swap/v2/jupiterz
    description: JupiterZ API Endpoint
security: []
paths:
  /execute:
    post:
      summary: Submit a taker-signed transaction for the market maker to fill
      description: >
        Takes the transaction from `/order` or `/global-order`, now signed by
        the taker,

        and hands it to the market maker, who adds the final signature and
        submits it to

        Solana. A rejected or failed swap still returns `200 OK` with the state
        in the

        body. Calling `/execute` again with the same `requestId` is safe: it
        does not

        re-execute the swap, it re-checks the existing one.
      operationId: executeJupiterzOrder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecuteRequest'
      responses:
        '200':
          description: Swap processed. Check `state` in the body, not just the HTTP status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecuteResponse'
        '400':
          description: >-
            Malformed `requestId`, `quoteId`, or transaction, or the quote
            expired (`errorCode: QUOTE_EXPIRED`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: 59db3e19-c7b0-4753-a8aa-206701004498
                errorCode: QUOTE_EXPIRED
        '401':
          description: Missing or invalid `x-api-key` header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No quote matching this `requestId`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ExecuteRequest:
      type: object
      properties:
        requestId:
          type: string
          description: '`requestId` from the order response, unchanged'
          example: 629bddf3-0038-43a6-8956-f5433d6b1191
        quoteId:
          type: string
          description: '`quoteId` from the order response, unchanged'
          example: 59db3e19-c7b0-4753-a8aa-206701004498
        transaction:
          type: string
          description: >
            The order's `transaction`, signed by the taker and re-encoded as
            base64.

            Sign the transaction as-is: rebuilding it, reordering instructions,
            or changing

            amounts invalidates it
      required:
        - requestId
        - quoteId
        - transaction
    ExecuteResponse:
      type: object
      properties:
        quoteId:
          type: string
          description: Echo of the quote ID
          example: 59db3e19-c7b0-4753-a8aa-206701004498
        state:
          type: string
          enum:
            - confirmed
            - accepted
            - rejected
            - invalid
            - failed
          description: >
            Outcome of the swap.

            `confirmed`: the swap landed on-chain (terminal).

            `accepted`: the market maker accepted and submitted the swap,
            on-chain

            confirmation is pending. Call `/execute` again with the same body to
            re-check.

            `rejected`: the market maker declined to fill.

            `invalid`: the transaction did not pass validation.

            `failed`: network error or timeout reaching the market maker
          example: confirmed
        signature:
          type: string
          nullable: true
          description: Transaction signature, present once the fill is known
      required:
        - quoteId
        - state
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: |
            Error description. Always present. Usually human-readable
            (for example `Unauthorized`, `No quote found`), but some hard
            failures return an opaque request identifier here instead
          example: No quote found
        errorCode:
          type: string
          nullable: true
          description: >
            Machine-readable error code. `null` unless the failure maps to a
            known code:

            `NO_QUOTE_FOUND` (no market maker quoted the pair), `QUOTE_EXPIRED`
            (the quote

            expired before `/execute`), `0x1` (taker has insufficient funds),
            `0xbc4`

            (a required token account is missing), `0x11` (a token account is
            frozen),

            `SIMULATION_FAILED`, `TRANSACTION_ERROR`, `INSTRUCTION_ERROR`
            (simulation failures)
          example: NO_QUOTE_FOUND
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Get API key via https://developers.jup.ag/portal

````