{"openapi":"3.1.0","info":{"title":"Dextrade Alerts Setting API","description":"","license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"},"version":"1.0.0"},"paths":{"/api/v1/token-alert-settings":{"get":{"tags":["Token Price Alert Settings"],"summary":"Get Token Price Alert Settings paginated","description":"Get Token Price Alert Settings paginated","operationId":"get_token_alert_settings_paginated","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"cursor","in":"query","description":"Cursor for keyset-based pagination (ObjectId as string)","required":false,"schema":{"type":["string","null"]}},{"name":"alertType","in":"query","required":false,"schema":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AlertType"}]}},{"name":"frequency","in":"query","required":false,"schema":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Frequency"}]}},{"name":"tokenAddress","in":"query","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]},"post":{"tags":["Token Price Alert Settings"],"summary":"Create a pair alert setting","description":"Create a pair alert setting. Network is determined from the token address via gRPC.","operationId":"create_token_alert_settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenAlertSettingsRequestDto"}}},"required":true},"responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]}},"/api/v1/token-alert-settings/bulk":{"delete":{"tags":["Token Price Alert Settings"],"summary":"Bulk delete Token Price Alert Settings by ids","description":"Bulk delete Token Price Alert Settings by ids","operationId":"bulk_delete_token_alert_settings_by_ids","parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]}},"/api/v1/token-alert-settings/delete-all":{"delete":{"tags":["Token Price Alert Settings"],"summary":"Delete all Token Price Alert Settings","description":"Delete all Token Price Alert Settings","operationId":"delete_all_token_alert_settings","responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]}},"/api/v1/token-alert-settings/delete-all-active":{"delete":{"tags":["Token Price Alert Settings"],"summary":"Delete all active Token Price Alert Settings","description":"Delete all active Token Price Alert Settings","operationId":"delete_all_active_token_alert_settings","responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]}},"/api/v1/token-alert-settings/delete-all-expired":{"delete":{"tags":["Token Price Alert Settings"],"summary":"Delete all expired Token Price Alert Settings","description":"Delete all expired Token Price Alert Settings","operationId":"delete_all_expired_token_alert_settings","responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]}},"/api/v1/token-alert-settings/{id}":{"get":{"tags":["Token Price Alert Settings"],"summary":"Get Token Price Alert Settings by id","description":"Get Token Price Alert Settings by id","operationId":"get_token_alert_settings_by_id","parameters":[{"name":"id","in":"path","description":"Alert id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]},"put":{"tags":["Token Price Alert Settings"],"summary":"Update Token Price Alert Settings","description":"Update Token Price Alert Settings","operationId":"update_token_alert_settings","parameters":[{"name":"id","in":"path","description":"Alert id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenAlertSettingsRequestDto"}}},"required":true},"responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]},"delete":{"tags":["Token Price Alert Settings"],"summary":"Delete Token Price Alert Settings by id","description":"Delete Token Price Alert Settings by id","operationId":"delete_token_alert_settings_by_id","parameters":[{"name":"id","in":"path","description":"Alert id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}},"security":[{"bearer_auth":[]}]}},"/health":{"get":{"tags":["health"],"operationId":"health_check","responses":{"200":{"description":"Application is healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}}},"components":{"schemas":{"AlertCondition":{"type":"string","enum":["price_usd","marketcap_usd"]},"AlertType":{"type":"string","enum":["active","expired"]},"BulkDeleteTokenAlertSettingsRequestDto":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string"}}}},"ENetwork":{"type":"string","enum":["sui","hyperevm","somnia","plasma","monad","base","bsc","solana"]},"Frequency":{"type":"string","enum":["always","only_once"]},"GetAllAlertFilter":{"type":"object","properties":{"alertType":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AlertType"}]},"frequency":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Frequency"}]},"tokenAddress":{"type":["string","null"]}}},"HealthResponse":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}}},"PriceAlertTriggerType":{"type":"string","enum":["goes_over","goes_under","up","down"]},"TokenAlertSettingsRequestDto":{"type":"object","required":["tokenAddress","condition","triggerType"],"properties":{"alertName":{"type":["string","null"]},"changePercent":{"type":["string","null"]},"condition":{"$ref":"#/components/schemas/AlertCondition"},"expiredAt":{"type":["integer","null"],"format":"int64"},"frequency":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Frequency"}]},"targetMc":{"type":["string","null"]},"targetPriceUsd":{"type":["string","null"]},"tokenAddress":{"type":"string"},"triggerType":{"$ref":"#/components/schemas/PriceAlertTriggerType"}}},"TokenMetadata":{"type":"object","required":["address","name","symbol","decimals"],"properties":{"address":{"type":"string"},"circulating_supply":{"type":["integer","null"],"format":"int64","minimum":0},"decimals":{"type":"integer","format":"int32","minimum":0},"logo_url":{"type":["string","null"]},"name":{"type":"string"},"symbol":{"type":"string"},"total_supply":{"type":["integer","null"],"format":"int64","minimum":0}}},"TokenPriceAlertResponseDto":{"type":"object","required":["id","userId","tokenInfo","condition","triggerType","network"],"properties":{"alertName":{"type":["string","null"]},"changePercent":{"type":["string","null"]},"condition":{"$ref":"#/components/schemas/AlertCondition"},"currentMarketCap":{"type":["string","null"]},"currentPrice":{"type":["string","null"]},"deletedAt":{"type":["integer","null"],"format":"int64"},"expiredAt":{"type":["integer","null"],"format":"int64"},"frequency":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Frequency"}]},"id":{"type":"string"},"network":{"type":"string"},"targetMc":{"type":["string","null"]},"targetPriceUsd":{"type":["string","null"]},"tokenInfo":{"$ref":"#/components/schemas/TokenMetadata"},"triggerType":{"$ref":"#/components/schemas/PriceAlertTriggerType"},"userId":{"type":"string"}}}},"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}