A strategy group is an organizational layer above individual strategies. It lets you manage many strategies as a single unit — applying schedules, output schemas, and webhooks to all members at once.
Group-level scheduling — Apply a single schedule configuration (interval or cron, webhook URL, webhook type) to every strategy in the group. Each strategy gets its own schedule instance, but they share the same configuration.
Group-level output schemas — Apply an output schema to all strategies at once. Meter regenerates each strategy asynchronously to match the new schema.
Bulk management — Enable/disable all schedules, delete all schedules, or test webhooks for the whole group in one call.
# List all groupsgroups = client.list_strategy_groups()for g in groups: print(f"{g['name']}: {g['strategy_count']} strategies")# Get group details with member strategiesdetail = client.get_strategy_group(group["id"])for strategy in detail["strategies"]: print(f" - {strategy['name']}")
Copy
# List groupscurl https://api.meter.sh/api/strategy-groups \ -H "Authorization: Bearer sk_live_..."# Get group detailcurl https://api.meter.sh/api/strategy-groups/{group_id} \ -H "Authorization: Bearer sk_live_..."
Apply a schedule to every strategy in the group with a single call. Each strategy gets its own schedule instance with the same configuration.
Python SDK
curl
Copy
# Schedule all strategies to run every hour with a webhookclient.apply_group_schedule( group_id=group["id"], interval_seconds=3600, webhook_url="https://your-app.com/webhooks/meter")# Or use a cron expressionclient.apply_group_schedule( group_id=group["id"], cron_expression="0 */6 * * *", # Every 6 hours webhook_url="https://hooks.slack.com/services/T.../B.../xxx" # webhook_type auto-detected as "slack")
# Pause all schedules in the groupclient.toggle_group_schedules(group["id"], enabled=False)# Resume all schedulesclient.toggle_group_schedules(group["id"], enabled=True)# Delete all schedules in the groupclient.delete_group_schedules(group["id"])
Provide either interval_seconds or cron_expression, not both. The minimum interval is 60 seconds.
Apply an output schema to every strategy in a group. Meter regenerates each strategy asynchronously to match the schema structure.
Copy
# Apply a product schema to all strategies in the groupclient.apply_group_schema( group_id=group["id"], output_schema={ "product_name": "string", "price": "number", "in_stock": "boolean", "image_url": "string" })# Poll for regeneration progressprogress = client.get_schema_progress(group["id"])print(progress)
See Output Schemas for details on schema definition and type support.