# Tokens

## Token search, details, listings, categories, and following

> Unified endpoint for all token information operations. The \`action\` query parameter selects the sub-operation.<br>

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"TokenObject":{"type":"object","description":"Token representation returned by list/paginated_list actions.","properties":{"id":{"type":"integer"},"address":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"image_url":{"type":"string","nullable":true},"decimals":{"type":"integer"},"chain":{"type":"string"},"pool_address":{"type":"string","nullable":true},"cg_id":{"type":"string","nullable":true},"price":{"type":"number","nullable":true},"market_cap":{"type":"string","nullable":true},"volume_24h":{"type":"string","nullable":true},"change4H":{"type":"number","nullable":true},"change1D":{"type":"number","nullable":true},"change1W":{"type":"number","nullable":true},"change1M":{"type":"number","nullable":true},"changeAll":{"type":"number","nullable":true},"is_verified":{"type":"boolean"},"archived":{"type":"boolean"},"categories":{"type":"array","items":{"type":"string"}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/token_info.php":{"post":{"tags":["Tokens"],"summary":"Token search, details, listings, categories, and following","description":"Unified endpoint for all token information operations. The `action` query parameter selects the sub-operation.\n","parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["search","new","detail","list","paginated_list","fetch","categories","follow","followers"]}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"oneOf":[{"title":"search","type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Search query (token name or symbol)."},"exclusions":{"type":"array","items":{"type":"string"},"description":"Token addresses to exclude from results."},"categories":{"type":"array","items":{"type":"string"},"description":"Filter by token categories."}}},{"title":"new","type":"object","required":["token_address"],"properties":{"token_address":{"type":"string","description":"Solana token mint address to add."}}},{"title":"detail","type":"object","required":["token_address"],"properties":{"token_address":{"type":"string","description":"Solana token mint address."}}},{"title":"list","type":"object","properties":{"limit":{"type":"integer","default":50},"offset":{"type":"integer","default":0},"sort":{"type":"string","enum":["id","name","symbol","price","market_cap","volume_24h","change4H","change1D","change1W","change1M","changeAll"],"description":"Sort field."},"order":{"type":"string","enum":["ASC","DESC"]},"search":{"type":"string","description":"Free-text name/symbol filter."},"following":{"type":"string","enum":["all","following","not_following"],"description":"Filter by follow status (requires auth)."},"categories":{"type":"array","items":{"type":"string"}},"include_unverified":{"type":"boolean","description":"Include tokens without a CoinGecko ID."},"price_min":{"type":"number"},"price_max":{"type":"number"},"mcap_min":{"type":"number"},"mcap_max":{"type":"number"},"volume_min":{"type":"number"},"volume_max":{"type":"number"}}},{"title":"paginated_list","description":"Same parameters as list; returns paginated wrapper.","type":"object","properties":{"limit":{"type":"integer","default":50},"offset":{"type":"integer","default":0},"sort":{"type":"string","enum":["id","name","symbol","price","market_cap","volume_24h","change4H","change1D","change1W","change1M","changeAll"]},"order":{"type":"string","enum":["ASC","DESC"]},"search":{"type":"string"},"following":{"type":"string","enum":["all","following","not_following"]},"categories":{"type":"array","items":{"type":"string"}},"include_unverified":{"type":"boolean"},"price_min":{"type":"number"},"price_max":{"type":"number"},"mcap_min":{"type":"number"},"mcap_max":{"type":"number"},"volume_min":{"type":"number"},"volume_max":{"type":"number"}}},{"title":"fetch","description":"Alias for list.","type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"sort":{"type":"string"},"order":{"type":"string","enum":["ASC","DESC"]},"search":{"type":"string"},"following":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"include_unverified":{"type":"boolean"},"price_min":{"type":"number"},"price_max":{"type":"number"},"mcap_min":{"type":"number"},"mcap_max":{"type":"number"},"volume_min":{"type":"number"},"volume_max":{"type":"number"}}},{"title":"categories","description":"No request body required.","type":"object"},{"title":"follow","type":"object","required":["token_address"],"properties":{"token_address":{"type":"string","description":"Solana token address to follow/unfollow (toggle)."}}},{"title":"followers","type":"object","required":["token_address"],"properties":{"token_address":{"type":"string"}}}]}}}},"responses":{"200":{"description":"Successful response. Shape varies by action.","content":{"application/json":{"schema":{"oneOf":[{"title":"SearchResponse","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string"},"icon":{"type":"string","nullable":true},"symbol":{"type":"string"},"is_verified":{"type":"boolean"}}}},{"title":"NewTokenResponse","type":"object","properties":{"token_address":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"image_url":{"type":"string","nullable":true},"decimals":{"type":"integer"},"pool_address":{"type":"string","nullable":true},"cg_id":{"type":"string","nullable":true}}},{"title":"TokenDetailResponse","type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"image_url":{"type":"string","nullable":true},"decimals":{"type":"integer"},"pool_address":{"type":"string","nullable":true},"price":{"type":"number","nullable":true},"market_cap":{"type":"string","nullable":true,"description":"Market cap as a string (may be very large)."},"volume_24h":{"type":"string","nullable":true},"change4H":{"type":"number","nullable":true},"change1D":{"type":"number","nullable":true},"change1W":{"type":"number","nullable":true},"change1M":{"type":"number","nullable":true},"changeAll":{"type":"number","nullable":true},"chain":{"type":"string"},"description":{"type":"string","nullable":true},"categories":{"type":"array","items":{"type":"string"}},"is_verified":{"type":"boolean"},"archived":{"type":"boolean"},"user_has_held":{"type":"boolean","description":"Whether the authenticated user has ever held this token. False when unauthenticated."},"user_following":{"type":"boolean","description":"Whether the authenticated user follows this token. False when unauthenticated."},"socials":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"url":{"type":"string"}}}}}},{"title":"TokenListResponse","type":"array","items":{"$ref":"#/components/schemas/TokenObject"}},{"title":"TokenPaginatedListResponse","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenObject"}},"pagination":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}}}}},{"title":"CategoriesResponse","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"token_count":{"type":"integer"}}}},{"title":"FollowResponse","type":"object","properties":{"following":{"type":"boolean"},"message":{"type":"string"}}},{"title":"TokenFollowersResponse","type":"object","properties":{"followers":{"type":"integer"},"is_following":{"type":"boolean","description":"Whether the authenticated user follows this token. False when unauthenticated."},"success":{"type":"string"}}}]}}}},"400":{"description":"Missing or invalid parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Token not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
