{"components":{"schemas":{"Error":{"properties":{"context":{"description":"What happened and what to do","type":"string"},"error":{"enum":["invalid_request","unauthorized","forbidden","not_found","conflict","rate_limited","pending","upstream","internal"],"type":"string"}},"required":["error","context"],"type":"object"}},"securitySchemes":{"apiKey":{"bearerFormat":"dxr_…","description":"An API key from the cabinet; X-Api-Key works too","scheme":"bearer","type":"http"}}},"info":{"contact":{"email":"support@dexra.dev"},"description":"Solana DeFi intelligence for agents and bots: one call, one verdict. Send your API key as a bearer token, or pay per call over x402 without one. Docs: /docs on the cabinet site.","title":"Dexra","version":"0.1.0"},"openapi":"3.1.0","paths":{"/account":{"get":{"description":"Plan, what covers calls today (access), credits used today, keys and limits.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{}},"type":"object"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"}},"security":[{"apiKey":[]}],"summary":"The account","tags":["account"]}},"/account/calls":{"get":{"description":"Calls made with the account's keys, newest first. Query: limit (1-100), before (id), tool.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{}},"type":"object"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"}},"security":[{"apiKey":[]}],"summary":"Call log","tags":["account"]}},"/account/calls/summary":{"get":{"description":"Calls, credits, errors and average time per tool. Query: days.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{}},"type":"object"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"}},"security":[{"apiKey":[]}],"summary":"Calls per tool","tags":["account"]}},"/account/usage":{"get":{"description":"Credits used per day, as far back as the plan shows. Query: days.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{}},"type":"object"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"}},"security":[{"apiKey":[]}],"summary":"Credits per day","tags":["account"]}},"/account/watches":{"get":{"description":"The account's watches, plan limit, supported kinds, account-specific run credits and interval bounds.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{}},"type":"object"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"}},"security":[{"apiKey":[]}],"summary":"Watches","tags":["account"]},"post":{"description":"Run a check on a schedule and POST a signed webhook when the answer changes. The response carries the webhook secret once.","requestBody":{"content":{"application/json":{"schema":{"properties":{"interval_minutes":{"description":"Default 60 (2 for launches); at least 15 (1 for launches)","type":"integer"},"kind":{"enum":["token","holders","wallet","pool","range","market","launches"],"type":"string"},"options":{"properties":{"min_liquidity_usd":{"description":"Launch watches: liquidity floor","minimum":0,"type":"number"},"size_usd":{"description":"Market watches: execution size in USD; default 10000","exclusiveMinimum":0,"maximum":5000000,"type":"number"},"threshold":{"description":"Change required: percentage points for shares/yields/funding APR; relative percent for TVL, price, holder count and open interest. Default 5 (10 for pool).","type":"number"},"width_pct":{"description":"Range watches: centered CLMM range width in percent; default 10","exclusiveMinimum":0,"maximum":100,"type":"number"}},"type":"object"},"target":{"description":"Solana address, or an alphanumeric ticker such as SOL for market; not for launches","type":"string"},"webhook_url":{"format":"uri","type":"string"}},"required":["kind","webhook_url"],"type":"object"}}},"required":true},"responses":{"200":{"description":"The watch, with its secret"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A field is invalid, or the webhook is not a public https URL"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The account has as many watches as it may"}},"security":[{"apiKey":[]}],"summary":"Create a watch","tags":["account"]}},"/clmm_range_stats":{"get":{"description":"For Raydium CLMM, Orca Whirlpool and Meteora DLMM: liquidity by price, share of time a range of the given width would have stayed in range over 7 and 30 days, fee yield inside the range, impermanent loss and how many rebalances it would have needed. Returns a verdict (ok, caution, avoid, or unknown when data is missing) with reasons.\n\nCosts 4 credits from a plan's daily credits, or 0.02 USDC per call over x402.","operationId":"clmm_range_stats","parameters":[{"description":"Concentrated liquidity pool","example":"Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE","in":"query","name":"pool","required":true,"schema":{"description":"Concentrated liquidity pool","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}},{"description":"Full range width in percent of the current price","example":10,"in":"query","name":"width_pct","required":false,"schema":{"default":10,"description":"Full range width in percent of the current price","exclusiveMinimum":0,"maximum":100,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Which range to hold in a concentrated pool","tags":["tools"],"x-dexra-credits":4,"x-dexra-price-usdc":"0.02","x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/describe_address":{"get":{"description":"Free. Call first with any Solana address to learn what it is: wallet, program, pool or token, its age, activity and basic stats. Points to the paid tool that answers the next question (wallet_check, pool_health, token_deep_check).\n\nFree.","operationId":"describe_address","parameters":[{"description":"Any Solana address","example":"58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","in":"query","name":"address","required":true,"schema":{"description":"Any Solana address","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[],"summary":"Describe a Solana address","tags":["tools"],"x-dexra-credits":null,"x-dexra-price-usdc":null}},"/market_snapshot":{"get":{"description":"Funding, open interest, liquidations and order book depth for a ticker across Binance, Bybit, OKX, Hyperliquid and Drift, price and funding divergence, and the all-in cost of an order of the given size on each venue and on Jupiter with the cheapest venue. Returns a verdict (ok, caution, avoid, or unknown when data is missing) with reasons.\n\nCosts 2 credits from a plan's daily credits, or 0.01 USDC per call over x402.","operationId":"market_snapshot","parameters":[{"description":null,"example":10000,"in":"query","name":"size_usd","required":false,"schema":{"default":10000,"exclusiveMinimum":0,"maximum":5000000,"type":"number"}},{"description":"Ticker such as SOL","example":"SOL","in":"query","name":"symbol","required":true,"schema":{"description":"Ticker such as SOL","pattern":"^[A-Za-z0-9]{1,12}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Perp venues and execution cost in one answer","tags":["tools"],"x-dexra-credits":2,"x-dexra-price-usdc":"0.01","x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/new_launches":{"get":{"description":"New tokens and pools on Solana (pump.fun, LetsBonk, Raydium LaunchLab, Meteora DBC, PumpSwap, Raydium AMM and CPMM) from the last N minutes with mint and freeze authority, Token-2022 extensions that can trap holders, liquidity and lock, price and market cap (pump.fun curves and AMM pools) with pump.fun curve progress, creator history and links to past collapses, and the first-buyer funding graph: same-block buyers, wallets funded by the creator or by one shared address, known snipers. Each launch has a verdict (ok, caution, avoid, or unknown when data is missing) with reasons. Up to 20 launches per answer, or as many as the plan's batch size. Windows over 60 minutes or more than 20 launches cost more.\n\nCosts 1 credit from a plan's daily credits, or 0.005 USDC per call over x402.","operationId":"new_launches","parameters":[{"description":null,"example":null,"in":"query","name":"include_collapsed","required":false,"schema":{"default":false,"type":"boolean"}},{"description":"Launches to return: up to 20, or up to the plan's batch size (max_batch in /billing/plans)","example":10,"in":"query","name":"limit","required":false,"schema":{"default":20,"description":"Launches to return: up to 20, or up to the plan's batch size (max_batch in /billing/plans)","maximum":500,"minimum":1,"type":"integer"}},{"description":null,"example":1000,"in":"query","name":"min_liquidity_usd","required":false,"schema":{"minimum":0,"type":"number"}},{"description":"Look-back window in minutes","example":15,"in":"query","name":"minutes","required":false,"schema":{"default":15,"description":"Look-back window in minutes","maximum":1440,"minimum":1,"type":"integer"}},{"description":"Comma separated: pump_fun, letsbonk, raydium_launchlab, meteora_dbc, pump_swap, raydium_amm_v4, raydium_cpmm","example":null,"in":"query","name":"platforms","required":false,"schema":{"description":"Comma separated: pump_fun, letsbonk, raydium_launchlab, meteora_dbc, pump_swap, raydium_amm_v4, raydium_cpmm","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Fresh Solana launches, already checked","tags":["tools"],"x-dexra-credits":1,"x-dexra-price-usdc":"0.005","x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/new_launches/batch":{"post":{"description":"The same checks as new_launches (authorities, Token-2022 extensions, liquidity and lock, price and market cap, creator history, first-buyer funding graph) for Solana token mints you already know about, in one call: up to 5 on Free, 50 when paid per call, or the plan's batch size (max_batch in /billing/plans). Each launch has a verdict (ok, caution, avoid, or unknown when data is missing) with reasons.\n\nCosts 3 credits from a plan's daily credits, or 0.015 USDC per call over x402.","operationId":"new_launches_batch","requestBody":{"content":{"application/json":{"example":{"mints":["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"]},"schema":{"additionalProperties":false,"properties":{"mints":{"description":"Up to 50 mints paid per call, or up to the plan's batch size","items":{"description":"Token mint","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"},"maxItems":500,"minItems":1,"type":"array"}},"required":["mints"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Launch checks for a list of mints","tags":["tools"],"x-dexra-credits":3,"x-dexra-price-usdc":"0.015","x-payment-info":{"price":{"amount":"0.015","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/pool_health":{"get":{"description":"For Raydium AMM, CPMM and CLMM, Orca Whirlpool, Meteora DLMM and PumpSwap pools: depth within 2%, slippage for $1k and $10k, 24h liquidity inflow or outflow, LP return versus holding over 7 and 30 days after impermanent loss, bot and sandwich share of volume. Returns a verdict (ok, caution, avoid, or unknown when data is missing) with reasons.\n\nCosts 6 credits from a plan's daily credits, or 0.03 USDC per call over x402.","operationId":"pool_health","parameters":[{"description":"Pool address","example":"Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE","in":"query","name":"pool","required":true,"schema":{"description":"Pool address","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Real pool yield after impermanent loss","tags":["tools"],"x-dexra-credits":6,"x-dexra-price-usdc":"0.03","x-payment-info":{"price":{"amount":"0.03","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/score_performance":{"get":{"description":"Free. For every launch risk flag we publish: how often flagged tokens collapsed within 24h versus the base rate across all launches, sample size, test window and daily drift.\n\nFree.","operationId":"score_performance","parameters":[{"description":"Test window in days, rounded up to 1, 7, 30 or 90","example":30,"in":"query","name":"days","required":false,"schema":{"default":30,"description":"Test window in days, rounded up to 1, 7, 30 or 90","maximum":90,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[],"summary":"Measured accuracy of our flags","tags":["tools"],"x-dexra-credits":null,"x-dexra-price-usdc":null}},"/service_stats":{"get":{"description":"Free. Calls, unique payers, paid volume, uptime and latency of this service over 24h, 7d and 30d. Check before paying.\n\nFree.","operationId":"service_stats","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[],"summary":"Service reputation","tags":["tools"],"x-dexra-credits":null,"x-dexra-price-usdc":null}},"/swap_preflight":{"get":{"description":"Before a Solana swap: price impact on the best route, sandwich share on the pool from our history, Token-2022 transfer fees, hooks and permanent delegate, mint and freeze authority. Returns a verdict (ok, caution, avoid) with reasons, and the assessment behind it (ok, unverified, high_slippage_risk, high_sandwich_risk, blocked).\n\nCosts 1 credit from a plan's daily credits, or 0.005 USDC per call over x402.","operationId":"swap_preflight","parameters":[{"description":"Amount in quote units for buy, in token units for sell","example":100,"in":"query","name":"amount","required":true,"schema":{"description":"Amount in quote units for buy, in token units for sell","exclusiveMinimum":0,"type":"number"}},{"description":"Token to buy or sell","example":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","in":"query","name":"mint","required":true,"schema":{"description":"Token to buy or sell","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}},{"description":"Quote mint, SOL by default","example":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","in":"query","name":"quote","required":false,"schema":{"description":"Quote mint, SOL by default","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}},{"description":null,"example":"buy","in":"query","name":"side","required":true,"schema":{"enum":["buy","sell"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Is this swap safe to execute now","tags":["tools"],"x-dexra-credits":1,"x-dexra-price-usdc":"0.005","x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/token_deep_check":{"get":{"description":"Use before buying or holding a Solana token to see who really holds it: which top holders were funded from the same address, real concentration after merging linked wallets, holder and liquidity dynamics from our snapshot history, blacklist proximity within two transfers, and the mint's authorities and Token-2022 extensions (transfer fee, hook, permanent delegate). Returns a verdict (ok, caution, avoid, or unknown when data is missing) with reasons. Goes deeper than a single safety score such as RugCheck's.\n\nCosts 6 credits from a plan's daily credits, or 0.03 USDC per call over x402.","operationId":"token_deep_check","parameters":[{"description":"Token mint","example":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","in":"query","name":"mint","required":true,"schema":{"description":"Token mint","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Holder graph and history for a token","tags":["tools"],"x-dexra-credits":6,"x-dexra-price-usdc":"0.03","x-payment-info":{"price":{"amount":"0.03","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/token_holders_delta":{"get":{"description":"Use to see whether insiders are leaving a Solana token: top holder changes over 1h and 24h from our snapshots, new and exited holders, concentration shift and large holders selling. Returns a verdict (ok, caution, avoid, or unknown when data is missing) with reasons.\n\nCosts 6 credits from a plan's daily credits, or 0.03 USDC per call over x402.","operationId":"token_holders_delta","parameters":[{"description":"Token mint","example":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","in":"query","name":"mint","required":true,"schema":{"description":"Token mint","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Who entered and left the top holders","tags":["tools"],"x-dexra-credits":6,"x-dexra-price-usdc":"0.03","x-payment-info":{"price":{"amount":"0.03","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/wallet_check":{"get":{"description":"One verdict with reasons for a Solana address: known exchange or not, age, activity, bot or human, PnL on fresh launches, exchange funding, OFAC and hack links up to two hops.\n\nCosts 6 credits from a plan's daily credits, or 0.03 USDC per call over x402.","operationId":"wallet_check","parameters":[{"description":"Wallet address","example":"6TAiFrQJKGFysH26Gjg8U8t8XGf54koF3PWuHcvCbrbE","in":"query","name":"address","required":true,"schema":{"description":"Wallet address","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"additionalProperties":true,"description":"Every result has summary, generated_at and the sources it used. Checks also have a verdict with reasons (new_launches: one per launch); describe_address, service_stats and score_performance are descriptive and have none.","properties":{"generated_at":{"type":"integer"},"reasons":{"description":"Why, worst first","items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"verdict":{"description":"avoid: one finding is enough to stay away; caution: something needs a look; unknown: the data to judge is missing; ok: nothing found","enum":["ok","caution","avoid","unknown"],"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}}},"description":"The answer","headers":{"X-Dexra-Calls-Remaining":{"description":"Credits left today","schema":{"type":"integer"}},"X-Dexra-Plan":{"description":"The plan that covered the call, or free","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is missing or wrong; no credits are used"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The key is invalid or revoked"},"402":{"description":"Payment required: the x402 requirements are in the Payment-Required header (base64 JSON). X-Dexra-Subscription says why the account did not cover the call.","headers":{"Payment-Required":{"schema":{"type":"string"}},"X-Dexra-Subscription":{"schema":{"enum":["quota_exceeded","plan_required","email_unconfirmed","inactive"],"type":"string"}}}},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests a second; wait for Retry-After"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A data source did not answer; retry later"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The analysis is still running; retry after Retry-After"}},"security":[{"apiKey":[]},{}],"summary":"Should I deal with this address","tags":["tools"],"x-dexra-credits":6,"x-dexra-price-usdc":"0.03","x-payment-info":{"price":{"amount":"0.03","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}}},"servers":[{"url":"https://api.dexra.dev"}],"tags":[{"description":"Every tool, as on MCP","name":"tools"},{"description":"What an agent can read and set up with its key","name":"account"}]}