---
title: "Submit transaction"
method: POST
path: "/transactions"
tags: ["Transactions"]
---

# Submit transaction

`POST /transactions`

This endpoint accepts transaction submissions in two formats.

To submit a transaction as JSON, you must submit a SubmitTransactionRequest.
To build this request, do the following:

1. Encode the transaction as BCS. If you are using a language that has
native BCS support, make sure of that library. If not, you may take
advantage of /transactions/encode_submission. When using this
endpoint, make sure you trust the node you're talking to, as it is
possible they could manipulate your request.
2. Sign the encoded transaction and use it to create a TransactionSignature.
3. Submit the request. Make sure to use the "application/json" Content-Type.

To submit a transaction as BCS, you must submit a SignedTransaction
encoded as BCS. See SignedTransaction in types/src/transaction/mod.rs.
Make sure to use the `application/x.aptos.signed_transaction+bcs` Content-Type.

## Request body

- SubmitTransactionRequest — unresolved $ref

## Response `202`

- PendingTransaction — unresolved $ref

## Other responses

- `400`
- `403`
- `404`
- `413`
- `500`
- `503`
- `507`

## Changes

- **2026-03-23** `10ecd1005697` — 7 warning
  - added the new `rate_limited` enum value to the `error_code` response property for the response status `400`
  - added the new `rate_limited` enum value to the `error_code` response property for the response status `403`
  - added the new `rate_limited` enum value to the `error_code` response property for the response status `404`
  - added the new `rate_limited` enum value to the `error_code` response property for the response status `413`
  - …3 more
- **2026-03-16** `6d931d0abdf3` — 1 breaking, 3 info
  - added `#/components/schemas/TransactionPayload_EncryptedTransactionPayload` to the `payload` response property `oneOf` list for the response status `202`
  - added `encrypted_transaction_payload` discriminator mapping keys to the `payload` request property
  - added `#/components/schemas/TransactionPayload_EncryptedTransactionPayload` to the `payload` request property `oneOf` list
  - added `encrypted_transaction_payload` discriminator mapping keys to the `payload` response property for the response status `202`
- …earlier changes not shown

[Full history](https://skmtc.dev/aptoslabs/apis/aptos-node-api/changes/transactions/post.md)

---

[API](https://skmtc.dev/aptoslabs/apis/aptos-node-api.md) · [All operations](https://skmtc.dev/aptoslabs/apis/aptos-node-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/aptoslabs/aptos-node-api/revisions/10ecd1005697/schema)
