Skip to main content
POST
Synchronous endpoint
HashDit-owned request fields are documented in snake_case. Equivalent camelCase input remains accepted for compatibility.
Find a wallet’s active token approvals, current exposure, and risky spenders.

Quick Start

Query an owner’s approvals with balance capping and spender-risk enrichment:

Request Fields

string
required
Your HashDit API key. Missing or invalid keys return HTTP 401. Keep the key on a trusted server.
string
required
Ethereum, BNB Smart Chain, or TRON identifier, such as "1", "56", or "tron". JSON clients may also send a numeric chain ID. See Supported Chains.
string
Wallet whose outstanding approvals should be returned.
string
Filter approvals by spender. At least one of owner or spender is required.
string
Optional token filter. It cannot be sent without owner or spender.
string
Optional result filter, including only-valid.
integer
Maximum number of approvals to return on this page.
integer
1-based page number. Defaults to 1.
boolean
default:"false"
Add the owner’s current token balance and cap immediate exposure to it.
boolean
default:"false"
Add spender risk enrichment to every row.
boolean
default:"false"
Add token-contract risk enrichment to every row.
boolean
default:"false"
Add owner-address risk enrichment to every row.
boolean
default:"false"
Add spender_type and owner_type classification fields to every row.
At least one of owner or spender is required. token is an optional filter and cannot be sent by itself. For an approval-management screen, set both include_balance and include_spender_risk to true.

Response Fields

string
required
API result code. "0" indicates success; non-zero values indicate an error.
string
required
Request status. A successful completed response returns "ok".
integer
Number of rows in approval_status after filtering.
object[]
The approvals returned for this query.
object[]
Metadata for indexed tokens represented in the approval rows.
object
Page-level current exposure and risky-approval totals.
boolean
Continue pagination while this value is true.

How to Use the Response

  • Render each item in approval_status; it contains the raw allowance and the realistic current exposure.
  • Use summary for page-level totals instead of summing rows yourself.
  • Use spender_risk.is_risky for the spender decision. Do not derive a verdict from risk_level.
  • Continue pagination while has_more is true.
  • Treat "Unknown" and "Unlimited" USD values as explicit states, never as zero.

Risk Level Reference

Use is_risky as the decision field. The numeric level and display label are for presentation.

Errors and Retry Guidance

Responses are cached for approximately 60 seconds per unique query and enrichment-flag combination. A recent revocation can remain visible until that cache expires.