Queries the network for information stored on the ledger, such as accounts and transactions.
Access to certain sensitive fields, such as account balances, may be restricted based on the identity of the sender derived from the signature in the request. If the sender lacks permission, sensitive fields will be redacted from the response and reported in the redactedFields field.
HTTP request
POST https://universalledger.googleapis.com/v1/{endpoint=projects/*/locations/*/endpoints/*}:queryData The URLs use gRPC Transcoding syntax.
Path parameters
| Parameters | |
|---|---|
endpoint |
Required. The endpoint to serve the request. Format: |
Request body
The request body contains data with the following structure:
| JSON representation |
|---|
{ "serializedSignedQueryRequest": string } |
| Fields | |
|---|---|
serializedSignedQueryRequest |
Required. A protobuf serialized A base64-encoded string. |
Response body
Response message for endpoints.queryData.
If successful, the response body contains data with the following structure:
| JSON representation |
|---|
{ "redactedFields": [ { object ( |
| Fields | |
|---|---|
redactedFields[] |
Indicates which fields have been redacted from the response due to permission restrictions. |
| The query-specific result. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: | |
account |
The account information, if the query was for an account. |
transactionState |
The state of a transaction, if the query was for a transaction. |
| End of mutually exclusive fields. | |
Authorization scopes
Requires the following OAuth scope:
https://www.googleapis.com/auth/cloud-platform
For more information, see the Authentication Overview.
TransactionState
The state of a transaction.
| JSON representation |
|---|
{
"transactionAttempts": [
{
object ( |
| Fields | |
|---|---|
transactionAttempts[] |
One entry per each known submission of the transaction to the validator handling the request. |
RedactedField
Information about a redacted field in the response.
| JSON representation |
|---|
{
"redactedPath": string,
"reason": string,
"reasonCode": enum ( |
| Fields | |
|---|---|
redactedPath |
Output only. The fully qualified field paths that were redacted from the payload. This is a comma-separated list of fully qualified names of fields. Example: |
reason |
Output only. A human-readable explanation of why the fields were redacted. |
reasonCode |
Output only. A machine readable code for why the fields were redacted. |
Code
The canonical error codes for gRPC APIs.
Sometimes multiple error codes may apply. Services should return the most specific error code that applies. For example, prefer OUT_OF_RANGE over FAILED_PRECONDITION if both codes apply. Similarly prefer NOT_FOUND or ALREADY_EXISTS over FAILED_PRECONDITION.
| Enums | |
|---|---|
OK |
Not an error; returned on success. HTTP Mapping: 200 OK |
CANCELLED |
The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request |
UNKNOWN |
Unknown error. For example, this error may be returned when a HTTP Mapping: 500 Internal Server Error |
INVALID_ARGUMENT |
The client specified an invalid argument. Note that this differs from HTTP Mapping: 400 Bad Request |
DEADLINE_EXCEEDED |
The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout |
NOT_FOUND |
Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, HTTP Mapping: 404 Not Found |
ALREADY_EXISTS |
The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict |
PERMISSION_DENIED |
The caller does not have permission to execute the specified operation. HTTP Mapping: 403 Forbidden |
UNAUTHENTICATED |
The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized |
RESOURCE_EXHAUSTED |
Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests |
FAILED_PRECONDITION |
The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between HTTP Mapping: 400 Bad Request |
ABORTED |
The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between HTTP Mapping: 409 Conflict |
OUT_OF_RANGE |
The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike There is a fair bit of overlap between HTTP Mapping: 400 Bad Request |
UNIMPLEMENTED |
The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented |
INTERNAL |
Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error |
UNAVAILABLE |
The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between HTTP Mapping: 503 Service Unavailable |
DATA_LOSS |
Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error |