---
title: "Parse a Transaction"
method: POST
path: "/construction/parse"
tags: ["Construction"]
---

# Parse a Transaction

`POST /construction/parse`

Parse is called on both unsigned and signed transactions to
understand the intent of the formulated transaction.

This is run as a sanity check before signing (after `/construction/payloads`)
and before broadcast (after `/construction/combine`).

## Request body

- ConstructionParseRequest — ConstructionParseRequest is the input to the `/construction/parse` endpoint. It allows the caller to parse either an unsigned or signed transaction.
  - `network_identifier` NetworkIdentifier, required — unresolved $ref
  - `signed` boolean, required — Signed is a boolean indicating whether the transaction is signed.
  - `transaction` string, required — This must be either the unsigned transaction blob returned by `/construction/payloads` or the signed transaction blob returned by `/construction/combine`.

## Response `200`

Expected response to a valid request

- ConstructionParseResponse — ConstructionParseResponse contains an array of operations that occur in a transaction blob. This should match the array of operations provided to `/construction/preprocess` and `/construction/payloads`.
  - `operations` Operation[], required — unresolved $ref
  - `signers` string[] — [DEPRECATED by `account_identifier_signers` in `v1.4.4`] All signers (addresses) of a particular transaction. If the transaction is unsigned, it should be empty.
  - `account_identifier_signers` AccountIdentifier[] — unresolved $ref
  - `metadata` object

## Other responses

- `500` — unexpected error

## Changes

> 50 revisions in range; 3 could not be searched.

- **2020-09-08** `944246e03cfa` — 1 breaking, 1 info
  - the response property `signers` became optional for the status `200`
  - added the optional property `account_identifier_signers` to the response with the `200` status
- **2020-08-07** `97f3c6540212` — 1 warning, 1 info
  - removed the optional property `account_identifier_signers` from the response with the `200` status
  - the response property `signers` became required for the status `200`

[Change history](https://skmtc.dev/coinbase/apis/rosetta/changes/construction/parse/post.md)

---

[API](https://skmtc.dev/coinbase/apis/rosetta.md) · [All operations](https://skmtc.dev/coinbase/apis/rosetta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/coinbase/rosetta/revisions/758497aacc08/schema)
