{"note":"OpenAPI conversion -- returning structured metadata","name":"upstash-developer","description":"Developer API - Upstash","version":"1.0.0","base_url":"https://api.upstash.com/v2","endpoints":58,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Developer API - Upstash\n@base https://api.upstash.com/v2\n@version 1.0.0\n@auth Bearer basic\n@endpoints 58\n@hint download_for_search\n@toc redis(22), teams(4), auditlogs(1), team(2), vector(10), search(9), qstash(10)\n\n@group redis\n@endpoint GET /redis/databases\n@desc List Databases\n@returns(200) OK\n\n@endpoint GET /redis/database/{id}\n@desc Get Database\n@required {id: str # The ID of the database}\n@optional {credentials: str # Set to 'hide' to remove credentials from the response.}\n@returns(200) {database_id: str, database_name: str, region: str, port: int(int64), creation_time: int(int64), state: str, endpoint: str, tls: bool, db_max_clients: int(int64), db_max_request_size: int(int64), db_disk_threshold: int(int64), db_max_entry_size: int(int64), db_memory_threshold: int(int64), db_max_commands_per_second: int(int64), db_request_limit: int(int64), type: str, budget: int(int64), primary_region: str, primary_members: [str], all_members: [str], eviction: bool, auto_upgrade: bool, consistent: bool, modifying_state: str, db_resource_size: str, db_type: str, db_conn_idle_timeout: int(int64), db_lua_timeout: int(int64), db_lua_credits_per_min: int(int64), db_store_max_idle: int(int64), db_max_loads_per_sec: int(int64), db_acl_enabled: str, db_acl_default_user_status: str, db_eviction: bool, last_plan_upgrade_time: int(int64), replicas: int, customer_id: str, daily_backup_enabled: bool, read_regions: [str], securityAddons: map{ipWhitelisting: bool, vpcPeering: bool, privateLink: bool, tlsMutualAuth: bool, encryptionAtRest: bool}, prometheus_enabled: str, prod_pack_enabled: bool} # OK\n\n@endpoint DELETE /redis/database/{id}\n@desc Delete Database\n@required {id: str # The ID of the database to be deleted}\n@returns(200) OK\n\n@endpoint POST /redis/database\n@desc Create Redis Database\n@required {database_name: str # Name of the database, platform: str(aws/gcp) # Desired cloud platform for the database., primary_region: str(us-east-1/us-east-2/us-west-1/us-west-2/ca-central-1/eu-central-1/eu-west-1/eu-west-2/sa-east-1/ap-south-1/ap-northeast-1/ap-southeast-1/ap-southeast-2/af-south-1/us-central1/us-east4/europe-west1/asia-northeast1) # Primary Region of the Global Database}\n@optional {read_regions: [str] # Array of Read Regions of the Database, plan: str(free/payg/fixed_250mb/fixed_1gb/fixed_5gb/fixed_10gb/fixed_50gb/fixed_100gb/fixed_500gb) # Specifies the fixed plan type for the database. If omitted, the database defaults to either the pay-as-you-go or free plan, based on the account type., budget: int # Monthly budget of the database, eviction: bool # Whether to enable eviction for the database, tls: bool # Whether to enable TLS for the database}\n@returns(200) {database_id: str, database_name: str, region: str, port: int(int64), creation_time: int(int64), state: str, endpoint: str, tls: bool, db_max_clients: int(int64), db_max_request_size: int(int64), db_disk_threshold: int(int64), db_max_entry_size: int(int64), db_memory_threshold: int(int64), db_max_commands_per_second: int(int64), db_request_limit: int(int64), type: str, budget: int(int64), primary_region: str, primary_members: [str], all_members: [str], eviction: bool, auto_upgrade: bool, consistent: bool, modifying_state: str, db_resource_size: str, db_type: str, db_conn_idle_timeout: int(int64), db_lua_timeout: int(int64), db_lua_credits_per_min: int(int64), db_store_max_idle: int(int64), db_max_loads_per_sec: int(int64), db_acl_enabled: str, db_acl_default_user_status: str, db_eviction: bool, last_plan_upgrade_time: int(int64), replicas: int, customer_id: str, daily_backup_enabled: bool, read_regions: [str], securityAddons: map{ipWhitelisting: bool, vpcPeering: bool, privateLink: bool, tlsMutualAuth: bool, encryptionAtRest: bool}, prometheus_enabled: str, prod_pack_enabled: bool} # Database created successfully\n\n@endpoint POST /redis/rename/{id}\n@desc Rename Database\n@required {id: str # The ID of the database to be renamed, name: str # The new name of the database}\n@returns(200) {database_id: str, database_name: str, region: str, port: int(int64), creation_time: int(int64), state: str, endpoint: str, tls: bool, db_max_clients: int(int64), db_max_request_size: int(int64), db_disk_threshold: int(int64), db_max_entry_size: int(int64), db_memory_threshold: int(int64), db_max_commands_per_second: int(int64), db_request_limit: int(int64), type: str, budget: int(int64), primary_region: str, primary_members: [str], all_members: [str], eviction: bool, auto_upgrade: bool, consistent: bool, modifying_state: str, db_resource_size: str, db_type: str, db_conn_idle_timeout: int(int64), db_lua_timeout: int(int64), db_lua_credits_per_min: int(int64), db_store_max_idle: int(int64), db_max_loads_per_sec: int(int64), db_acl_enabled: str, db_acl_default_user_status: str, db_eviction: bool, last_plan_upgrade_time: int(int64), replicas: int, customer_id: str, daily_backup_enabled: bool, read_regions: [str], securityAddons: map{ipWhitelisting: bool, vpcPeering: bool, privateLink: bool, tlsMutualAuth: bool, encryptionAtRest: bool}, prometheus_enabled: str, prod_pack_enabled: bool} # Database renamed successfully\n\n@endpoint POST /redis/reset-password/{id}\n@desc Reset Password\n@required {id: str # The ID of the database to reset password}\n@returns(200) {database_id: str, database_name: str, region: str, port: int(int64), creation_time: int(int64), state: str, endpoint: str, tls: bool, db_max_clients: int(int64), db_max_request_size: int(int64), db_disk_threshold: int(int64), db_max_entry_size: int(int64), db_memory_threshold: int(int64), db_max_commands_per_second: int(int64), db_request_limit: int(int64), type: str, budget: int(int64), primary_region: str, primary_members: [str], all_members: [str], eviction: bool, auto_upgrade: bool, consistent: bool, modifying_state: str, db_resource_size: str, db_type: str, db_conn_idle_timeout: int(int64), db_lua_timeout: int(int64), db_lua_credits_per_min: int(int64), db_store_max_idle: int(int64), db_max_loads_per_sec: int(int64), db_acl_enabled: str, db_acl_default_user_status: str, db_eviction: bool, last_plan_upgrade_time: int(int64), replicas: int, customer_id: str, daily_backup_enabled: bool, read_regions: [str], securityAddons: map{ipWhitelisting: bool, vpcPeering: bool, privateLink: bool, tlsMutualAuth: bool, encryptionAtRest: bool}, prometheus_enabled: str, prod_pack_enabled: bool} # Password reset successfully\n\n@endpoint POST /redis/enable-tls/{id}\n@desc Enable TLS\n@required {id: str # The ID of the database to enable TLS}\n@returns(200) {database_id: str, database_name: str, region: str, port: int(int64), creation_time: int(int64), state: str, endpoint: str, tls: bool, db_max_clients: int(int64), db_max_request_size: int(int64), db_disk_threshold: int(int64), db_max_entry_size: int(int64), db_memory_threshold: int(int64), db_max_commands_per_second: int(int64), db_request_limit: int(int64), type: str, budget: int(int64), primary_region: str, primary_members: [str], all_members: [str], eviction: bool, auto_upgrade: bool, consistent: bool, modifying_state: str, db_resource_size: str, db_type: str, db_conn_idle_timeout: int(int64), db_lua_timeout: int(int64), db_lua_credits_per_min: int(int64), db_store_max_idle: int(int64), db_max_loads_per_sec: int(int64), db_acl_enabled: str, db_acl_default_user_status: str, db_eviction: bool, last_plan_upgrade_time: int(int64), replicas: int, customer_id: str, daily_backup_enabled: bool, read_regions: [str], securityAddons: map{ipWhitelisting: bool, vpcPeering: bool, privateLink: bool, tlsMutualAuth: bool, encryptionAtRest: bool}, prometheus_enabled: str, prod_pack_enabled: bool} # TLS enabled successfully\n\n@endpoint POST /redis/enable-eviction/{id}\n@desc Enable Eviction\n@required {id: str # The ID of the database to enable eviction}\n@returns(200) Eviction enabled successfully\n\n@endpoint POST /redis/disable-eviction/{id}\n@desc Disable Eviction\n@required {id: str # The ID of the database to disable eviction}\n@returns(200) Eviction disabled successfully\n\n@endpoint POST /redis/enable-autoupgrade/{id}\n@desc Enable Auto Upgrade\n@required {id: str # The ID of the database to enable auto upgrade}\n@returns(200) Auto upgrade enabled successfully\n\n@endpoint POST /redis/disable-autoupgrade/{id}\n@desc Disable Auto Upgrade\n@required {id: str # The ID of the database to disable auto upgrade}\n@returns(200) Auto upgrade disabled successfully\n\n@endpoint POST /redis/change-plan/{id}\n@desc Change Database Plan\n@required {id: str # The ID of the database whose plan will be changed, plan_name: str(free/payg/fixed_250mb/fixed_1gb/fixed_5gb/fixed_10gb/fixed_50gb/fixed_100gb/fixed_500gb) # The new plan for the database}\n@optional {database_id: str # ID of the database, auto_upgrade: bool # Whether to enable automatic upgrade for the database, prod_pack_enabled: bool # Whether to enable the production pack for the database}\n@returns(200) Plan changed successfully\n\n@endpoint PATCH /redis/update-budget/{id}\n@desc Update Database Budget\n@required {id: str # The ID of the database whose budget will be updated, budget: int # The new monthly budget for the database}\n@returns(200) Budget updated successfully\n\n@endpoint POST /redis/update-regions/{id}\n@desc Update Regions\n@required {id: str # The ID of your database, read_regions: [str] # Array of Read Regions of the Database}\n@returns(200) Regions updated successfully\n\n@endpoint POST /redis/move-to-team\n@desc Move To Team\n@required {team_id: str # The ID of the target team, database_id: str # The ID of the database to be moved}\n@returns(200) Database moved successfully\n\n@endpoint GET /redis/stats/{id}\n@desc Get Database Stats\n@required {id: str # The ID of the database}\n@returns(200) {monitor_count: map{x: str, y: num}, daily_net_commands: int, daily_read_requests: int, daily_write_requests: int, connection_count: [map], keyspace: [map], throughput: [map], diskusage: [map], latencymean: [map], latency_99: [map], read_latency_mean: [map], read_latency_99: [map], write_latency_mean: [map], write_latency_99: [map], hits: [map], misses: [map], read: [map], write: [map], dailyrequests: [map], days: [str], dailybilling: [map], dailybandwidth: int, bandwidths: [map], total_monthly_bandwidth: int, total_monthly_requests: int, total_monthly_read_requests: int, total_monthly_write_requests: int, total_monthly_script_requests: int, queue_optimized: bool, total_monthly_storage: int, current_storage: int, total_monthly_billing: num(float), command_counts: [map]} # Database stats retrieved successfully\n\n@endpoint GET /redis/list-backup/{id}\n@desc List Backup\n@required {id: str # The ID of the Redis database}\n@returns(200) Backups retrieved successfully\n\n@endpoint POST /redis/create-backup/{id}\n@desc Create Backup\n@required {id: str # The ID of the Redis database, name: str # Name of the backup}\n@returns(200) Backup created successfully\n\n@endpoint DELETE /redis/delete-backup/{id}/{backup_id}\n@desc Delete Backup\n@required {id: str # The ID of the Redis database, backup_id: str # The ID of the backup to delete}\n@returns(200) Backup deleted successfully\n\n@endpoint POST /redis/restore-backup/{id}\n@desc Restore Backup\n@required {id: str # The ID of the Redis database, backup_id: str # ID of the backup to restore}\n@returns(200) Backup restored successfully\n\n@endpoint PATCH /redis/enable-dailybackup/{id}\n@desc Enable Daily Backup\n@required {id: str # The ID of the Redis database}\n@returns(200) Daily backup enabled successfully\n\n@endpoint PATCH /redis/disable-dailybackup/{id}\n@desc Disable Daily Backup\n@required {id: str # The ID of the Redis database}\n@returns(200) Daily backup disabled successfully\n\n@endgroup\n\n@group teams\n@endpoint GET /teams\n@desc List Teams\n@returns(200) Teams retrieved successfully\n\n@endgroup\n\n@group auditlogs\n@endpoint GET /auditlogs\n@desc List Audit Logs\n@returns(200) Audit logs retrieved successfully\n\n@endgroup\n\n@group team\n@endpoint POST /team\n@desc Create Team\n@required {team_name: str # Name of the new team, copy_cc: bool # Whether to copy existing credit card information to team or not}\n@returns(200) {team_id: str, team_name: str, copy_cc: bool} # Team created successfully\n\n@endpoint DELETE /team/{id}\n@desc Delete Team\n@required {id: str # The ID of the team to delete}\n@returns(200) Team deleted successfully\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_id}\n@desc Get Team Members\n@required {team_id: str # ID of the team}\n@returns(200) Team members retrieved successfully\n\n@endpoint POST /teams/member\n@desc Add Team Member\n@required {team_id: str # Id of the team to add the member to, member_email: str # Email of the new team member, member_role: str(admin/dev/finance) # Role of the new team member}\n@returns(200) {team_id: str, team_name: str, member_email: str, member_role: str, copy_cc: bool} # Team member added successfully\n\n@endpoint DELETE /teams/member\n@desc Delete Team Member\n@required {team_id: str # Id of the team to remove the member from, member_email: str # Email of the team member to remove}\n@returns(200) Team member deleted successfully\n\n@endgroup\n\n@group vector\n@endpoint GET /vector/index\n@desc List Indices\n@returns(200) Indices retrieved successfully\n\n@endpoint POST /vector/index\n@desc Create Index\n@required {name: str # Name of the index, region: str(eu-west-1/us-east-1/us-central1) # Region of the database, similarity_function: str(COSINE/EUCLIDEAN/DOT_PRODUCT) # Similarity function that's used to calculate the distance between two vectors, dimension_count: num # The amount of values in a single vector}\n@optional {type: str(payg/fixed/paid) # The payment plan of your index, embedding_model: str(BGE_SMALL_EN_V1_5/BGE_BASE_EN_V1_5/BGE_LARGE_EN_V1_5/BGE_M3) # The embedding model to use for the index, index_type: str(DENSE/SPARSE/HYBRID) # The type of the vector index, sparse_embedding_model: str(BM25/BGE_M3) # The sparse embedding model to be used for indexes}\n@returns(200) {customer_id: str, id: str, name: str, similarity_function: str, dimension_count: num, embedding_model: str, sparse_embedding_model: str, endpoint: str, token: str, read_only_token: str, type: str, region: str, max_vector_count: num, max_daily_updates: num, max_daily_queries: num, max_monthly_bandwidth: num, max_writes_per_second: num, max_query_per_second: num, max_reads_per_request: num, max_writes_per_request: num, max_total_metadata_size: num, reserved_price: num, creation_time: num, index_type: str, throughput_vector: [map]} # Index created successfully\n\n@endpoint GET /vector/index/{id}\n@desc Get Index\n@required {id: str # The unique ID of the index to fetch}\n@returns(200) {customer_id: str, id: str, name: str, similarity_function: str, dimension_count: num, embedding_model: str, sparse_embedding_model: str, endpoint: str, token: str, read_only_token: str, type: str, region: str, max_vector_count: num, max_daily_updates: num, max_daily_queries: num, max_monthly_bandwidth: num, max_writes_per_second: num, max_query_per_second: num, max_reads_per_request: num, max_writes_per_request: num, max_total_metadata_size: num, reserved_price: num, creation_time: num, index_type: str, throughput_vector: [map]} # Index retrieved successfully\n\n@endpoint DELETE /vector/index/{id}\n@desc Delete Index\n@required {id: str # The unique ID of the index to be deleted}\n@returns(200) Index deleted successfully\n\n@endpoint POST /vector/index/{id}/rename\n@desc Rename Index\n@required {id: str # The unique ID of the index to be renamed, name: str # The new name of the index}\n@returns(200) Index renamed successfully\n\n@endpoint POST /vector/index/{id}/reset-password\n@desc Reset Index Passwords\n@required {id: str # The unique ID of the index to reset the password for}\n@returns(200) Index passwords reset successfully\n\n@endpoint POST /vector/index/{id}/setplan\n@desc Set Index Plan\n@required {id: str # The unique ID of the index to change plan for, target_plan: str(free/payg/fixed) # The new plan for the index}\n@returns(200) Index plan changed successfully\n\n@endpoint POST /vector/index/{id}/transfer\n@desc Transfer Index\n@required {id: str # The unique ID of the index to be transferred, target_account: str # The team ID of the target team.}\n@returns(200) Index transferred successfully\n\n@endpoint GET /vector/index/stats\n@desc Get Vector Stats\n@returns(200) {record_count: int, request: int, bandwidth: int, storage: int, billing: num(float), rerank_count: int} # Statistics for the vector indices retrieved successfully\n\n@endpoint GET /vector/index/{id}/stats\n@desc Get Index Stats\n@required {id: str # The ID of the vector index}\n@optional {period: str(1h/3h/12h/1d/3d/7d/30d)=1h # Time period for statistics aggregation. Each period returns 60 datapoints  with intervals adjusted to the period length.   Exceptionally for 30 days, it returns 240 datapoints with 3-hour intervals for increased granularity.}\n@returns(200) {pending_index_count: int, current_vector_count: int, daily_query_count: int, daily_update_count: int, monthly_query_count: int, monthly_update_count: int, monthly_bandwidth_usage: int, storage_usage: int, monthly_cost: num(float), daily_update_requests: [map], daily_query_requests: [map], daily_bandwidths: [map], days: [str], query_throughput: [map], update_throughput: [map], query_latency_mean: [map], query_latency_99: [map], update_latency_mean: [map], update_latency_99: [map], embeds_latency_mean: [map], embeds_latency_99: [map], vector_count: [map], data_size: [map], daily_rerank_count: int, monthly_rerank_count: int, daily_rerank_requests: [map], rerank_latency_mean: [map], rerank_latency_99: [map]} # Statistics for the specified vector index retrieved successfully\n\n@endgroup\n\n@group search\n@endpoint GET /search\n@desc List Search Indexes\n@returns(200) Successfully retrieved list of search indices.\n\n@endpoint POST /search\n@desc Create Search Index\n@required {name: str # Name of the search index, region: str(eu-west-1/us-central1) # Region of the index, type: str(free/payg/fixed) # Index payment type. Currently 'free' and 'payg' are available.}\n@returns(200) {customer_id: str, id: str(uuid), name: str, endpoint: str, type: str, region: str, vercel_email: str, token: str, read_only_token: str, max_vector_count: int, max_monthly_reranks: int, max_daily_updates: int, max_daily_queries: int, max_monthly_bandwidth: int, max_writes_per_second: int, max_query_per_second: int, max_reads_per_request: int, max_writes_per_request: int, creation_time: int(int64), input_enrichment_enabled: bool, throughput_vector: [map]} # Index created successfully\n\n@endpoint GET /search/{id}\n@desc Get Search Index\n@required {id: str # The unique ID of the search index to be retrieved}\n@returns(200) {customer_id: str, id: str(uuid), name: str, endpoint: str, type: str, region: str, vercel_email: str, token: str, read_only_token: str, max_vector_count: int, max_monthly_reranks: int, max_daily_updates: int, max_daily_queries: int, max_monthly_bandwidth: int, max_writes_per_second: int, max_query_per_second: int, max_reads_per_request: int, max_writes_per_request: int, creation_time: int(int64), input_enrichment_enabled: bool, throughput_vector: [map]} # Successfully retrieved specified search index\n\n@endpoint DELETE /search/{id}\n@desc Delete Search Index\n@required {id: str # The unique ID of the search index to be deleted}\n@returns(200) Search Index Deleted Successfully\n\n@endpoint GET /search/stats\n@desc Get Search Stats\n@returns(200) {record_count: int, request: int, bandwidth: int, storage: int, billing: num(float), rerank_count: int} # Statistics for the search indices retrieved successfully\n\n@endpoint GET /search/{id}/stats\n@desc Get Index Stats\n@required {id: str # The ID of the search index}\n@optional {period: str(1h/3h/12h/1d/3d/7d/30d)=1h # Time period for statistics aggregation. Each period returns 60 datapoints  with intervals adjusted to the period length.   Exceptionally for 30 days, it returns 240 datapoints with 3-hour intervals for increased granularity.}\n@returns(200) {pending_index_count: int, current_vector_count: int, daily_query_count: int, daily_update_count: int, monthly_query_count: int, monthly_update_count: int, monthly_bandwidth_usage: int, storage_usage: int, monthly_cost: num(float), daily_update_requests: [map], daily_query_requests: [map], daily_bandwidths: [map], days: [str], query_throughput: [map], update_throughput: [map], query_latency_mean: [map], query_latency_99: [map], update_latency_mean: [map], update_latency_99: [map], embeds_latency_mean: [map], embeds_latency_99: [map], vector_count: [map], data_size: [map], daily_rerank_count: int, monthly_rerank_count: int, daily_rerank_requests: [map], rerank_latency_mean: [map], rerank_latency_99: [map]} # Statistics for the specified search index retrieved successfully\n\n@endpoint POST /search/{id}/reset-password\n@desc Reset Password\n@required {id: str # The ID of the search index}\n@returns(200) Search index passwords reset successfully\n\n@endpoint POST /search/{id}/transfer\n@desc Transfer Search Index\n@required {id: str # The ID of the search index, target_account: str # The ID of the target team account.}\n@returns(200) Search index transferred successfully\n\n@endpoint POST /search/{id}/rename\n@desc Rename Search Index\n@required {id: str # The ID of the search index, name: str # New name for the index}\n@returns(200) Search index renamed successfully\n\n@endgroup\n\n@group qstash\n@endpoint GET /qstash/users\n@desc List QStash Users\n@returns(200) Successful response\n\n@endpoint GET /qstash/user/{id}\n@desc Get QStash\n@required {id: str # QStash user ID}\n@returns(200) {customer_id: str, id: str(uuid), password: str, token: str, active: bool, state: str, modifying_state: str, last_plan_upgrade_time: int(int64), max_message_size: int, max_requests_per_day: int, max_requests_per_day_hard: int, max_endpoints_per_topic: int, max_requests_per_second: int, max_dlq_size: int, max_completion_tokens_per_day: int, max_completion_tokens_per_minute: int, max_completions_per_day: int, max_completions_per_minute: int, max_retries: int, max_topics: int, max_schedules: int, max_events_size: int, max_dlq_retention_time_milis: int(int64), max_delay: int, max_parallelism: int, max_global_parallelism: int, max_queues: int, retention: int, timeout: int, rate_limit: int, type: str, reserved_type: str, reserved_price: num(float), prod_pack_enabled: bool, prometheus_enabled: str, enterprise: map{enabled: bool}, region: str, budget: int, created_by: str, creation_time: int(int64)} # Successful response\n\n@endpoint POST /qstash/rotate-token/{id}\n@desc Reset QStash Token\n@required {id: str # QStash user ID}\n@returns(200) {customer_id: str, id: str(uuid), password: str, token: str, active: bool, state: str, modifying_state: str, last_plan_upgrade_time: int(int64), max_message_size: int, max_requests_per_day: int, max_requests_per_day_hard: int, max_endpoints_per_topic: int, max_requests_per_second: int, max_dlq_size: int, max_completion_tokens_per_day: int, max_completion_tokens_per_minute: int, max_completions_per_day: int, max_completions_per_minute: int, max_retries: int, max_topics: int, max_schedules: int, max_events_size: int, max_dlq_retention_time_milis: int(int64), max_delay: int, max_parallelism: int, max_global_parallelism: int, max_queues: int, retention: int, timeout: int, rate_limit: int, type: str, reserved_type: str, reserved_price: num(float), prod_pack_enabled: bool, prometheus_enabled: str, enterprise: map{enabled: bool}, region: str, budget: int, created_by: str, creation_time: int(int64)} # Token reset successfully, returns updated user information with new credentials\n\n@endpoint POST /qstash/set-plan/{id}\n@desc Set QStash Plan\n@required {id: str # QStash user ID, plan_name: str(paid/qstash_fixed_1m/qstash_fixed_10m/qstash_fixed_100m) # Target plan to upgrade to}\n@returns(200) QStash plan changed successfully\n\n@endpoint GET /qstash/stats/{id}\n@desc Get QStash Stats\n@required {id: str # QStash user ID}\n@optional {period: str(1h/3h/12h/1d/3d/7d/30d)=1h # Time period for statistics aggregation. Each period returns 60 datapoints with intervals adjusted to the period length.  Exceptionally for 30 days, it returns 240 datapoints with 3-hour intervals for increased granularity.}\n@returns(200) {days: [str], daily_requests: [map], daily_billings: [map], daily_bandwidths: [map], daily_used: [map], daily_used_workflow: [map], daily_qstash_messages: [map], daily_workflow_messages: [map], dlq_message_count: int, daily_bandwidth_used: [map], total_monthly_billing: num(float)} # Successful response with usage statistics\n\n@endpoint GET /qstash/ipv4\n@desc Get QStash IPv4 Addresses\n@returns(200) List of IPv4 CIDR blocks\n\n@endpoint POST /qstash/move-to-team\n@desc Move QStash to Team\n@required {qstash_id: str # ID of the QStash instance to move, target_team_id: str # ID of the target team}\n@returns(200) QStash moved successfully\n\n@endpoint PATCH /qstash/update-budget/{id}\n@desc Update QStash Budget\n@required {id: str # QStash user ID, budget: int # Monthly spending budget limit in dollars. Minimum 20, maximum 10000, or 0 for no limit.}\n@returns(200) Budget updated successfully\n\n@endpoint POST /qstash/enable-prodpack/{id}\n@desc Enable Production Pack\n@required {id: str # QStash user ID}\n@returns(200) Production pack enabled successfully\n\n@endpoint POST /qstash/disable-prodpack/{id}\n@desc Disable Production Pack\n@required {id: str # QStash user ID}\n@returns(200) Production pack disabled successfully\n\n@endgroup\n\n@end\n"}