# submit POST https://api.0x.org/gasless/submit Content-Type: application/json Submit a gasless swap Reference: https://docs.0x.org/api-reference/openapi-json/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://0x.org/docs/developer-resources/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 v: type: number format: double r: type: string s: type: string required: - signatureType - v - r - s 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 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 v: type: number format: double r: type: string s: type: string required: - signatureType - v - r - s 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 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 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/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 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 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 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 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 import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse 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 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 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 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() ```