{"openapi":"3.1.0","info":{"title":"OpenIntel API","description":"On-chain investigation API for AI agents. Pay-per-call via x402 (USDC) on Base.","version":"1.0.0","x-guidance":"POST a JSON body to any /v1/* route or to /find_token_by_ticker. Without a payment header you receive a 402 with the required amount plus the x402 challenge envelope.","guidance":"POST a JSON body to any /v1/* route or to /find_token_by_ticker. Without a payment header you receive a 402 with the required amount plus the x402 challenge envelope."},"servers":[{"url":"https://api.openintel.agency"}],"tags":[{"name":"Find_candidate_wallets_for_token_balances"},{"name":"Find_candidate_wallets_from_partial_address"},{"name":"Find_shared_holders_for_tokens"},{"name":"Find_token_by_ticker"},{"name":"Get_first_buyers_for_token"}],"paths":{"/api/find_token_by_ticker":{"post":{"operationId":"find_token_by_ticker","summary":"Resolve a ticker, name, or partial token name to a canonical token address. Returns one canonical match plus up to `limit-1` alternatives, each clearing $10k liquidity and $1k 24h volume floors.","tags":["Find_token_by_ticker"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","minLength":1},"chain":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":["ticker","chain"]}}}},"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}}}},"/api/v1/find_candidate_wallets_from_partial_address":{"post":{"operationId":"find_candidate_wallets_from_partial_address","summary":"Given a partial wallet address (prefix...suffix), return ranked candidate full addresses by recent on-chain activity. Walks tiered time windows (10/40/100 days) and short-circuits on first hit.","tags":["Find_candidate_wallets_from_partial_address"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partial_wallet_address":{"type":"string","minLength":1},"chain":{"type":"string","minLength":1},"limit":{"type":"integer","minimum":1,"maximum":200}},"required":["partial_wallet_address","chain"]}}}},"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}}}},"/api/v1/find_shared_holders_for_tokens":{"post":{"operationId":"find_shared_holders_for_tokens","summary":"Find wallet addresses that hold (or held) ALL of N specified tokens at `snapshot_at`. Intersection across the input tokens; balances per token returned per wallet.","tags":["Find_shared_holders_for_tokens"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token_addresses":{"minItems":2,"type":"array","items":{"type":"string","minLength":1}},"chain":{"type":"string","minLength":1},"snapshot_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"limit":{"type":"integer","minimum":1,"maximum":5000}},"required":["token_addresses","chain"]}}}},"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}}}},"/api/v1/get_first_buyers_for_token":{"post":{"operationId":"get_first_buyers_for_token","summary":"Early buyers of one token, or wallets that were early across ALL of N tokens (intersection). Rows: wallet_address, first_buy_time, first_transaction_id. Sorted by first_buy_time ASC.","tags":["Get_first_buyers_for_token"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token_addresses":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}},"chain":{"type":"string","minLength":1},"early_definition":{"type":"object","properties":{"mode":{"default":"first_n","type":"string","enum":["first_n","first_hours"]},"value":{"default":100,"type":"integer","minimum":1,"maximum":9007199254740991}}},"limit":{"type":"integer","minimum":1,"maximum":1000}},"required":["token_addresses","chain"]}}}},"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}}}},"/api/v1/find_candidate_wallets_for_token_balances":{"post":{"operationId":"find_candidate_wallets_for_token_balances","summary":"Progressive matching of partial wallet observations (ticker + ~balance or partial address) against on-chain token holders. Returns ranked candidate wallets with the matched-pass and k/n hit counts.","tags":["Find_candidate_wallets_for_token_balances"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"observations":{"minItems":1,"type":"array","items":{"type":"object","properties":{"maybe_partial_maybe_full_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"maybe_ticker":{"anyOf":[{"type":"string"},{"type":"null"}]},"maybe_partial_balance_amount":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"chain":{"type":"string","minLength":1},"observation_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"since":{"anyOf":[{"type":"string"},{"type":"null"}]},"time_tolerance_days":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":200}},"required":["observations","chain"]}}}},"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}}}}}}