2018-11-20 20:34:42 +01:00
---
id: strategies
title: /api/admin/strategies
---
2016-11-30 21:17:39 +01:00
2021-03-09 21:44:45 +01:00
> In order to access the admin api endpoints you need to identify yourself. If you are using the `unsecure` authentication method, you may use [basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) to identify yourself.
2020-12-03 21:29:01 +01:00
2018-11-22 11:20:28 +01:00
### Fetch Strategies
2017-06-28 10:17:48 +02:00
`GET: http://unleash.host.com/api/admin/strategies`
2016-11-30 21:17:39 +01:00
2021-03-09 21:44:45 +01:00
Used to fetch all defined strategies and their defined parameters.
2016-11-30 21:17:39 +01:00
**Response**
2018-11-22 11:20:28 +01:00
```json
2016-11-30 21:17:39 +01:00
{
2018-11-22 11:20:28 +01:00
"version": 1,
"strategies": [
{
"name": "default",
"description": "Default on/off strategy.",
"parameters": []
},
{
"name": "userWithId",
"description": "Active for userId specified in the comma seperated 'userIds' parameter.",
"parameters": [
2016-11-30 21:17:39 +01:00
{
2018-11-22 11:20:28 +01:00
"name": "userIds",
"type": "list",
"description": "List of unique userIds the feature should be active for.",
"required": true
}
]
},
{
"name": "gradualRollout",
"description": "Gradual rollout to logged in users",
"parameters": [
2016-11-30 21:17:39 +01:00
{
2018-11-22 11:20:28 +01:00
"name": "percentage",
"type": "percentage",
"description": "How many percent should the new feature be active for.",
"required": false
2016-11-30 21:17:39 +01:00
},
{
2018-11-22 11:20:28 +01:00
"name": "group",
"type": "string",
"description": "Group key to use when hasing the userId. Makes sure that the same user get different value for different groups",
"required": false
}
]
}
]
}
2016-11-30 21:17:39 +01:00
```
### Create strategy
2017-06-28 10:17:48 +02:00
`POST: http://unleash.host.com/api/admin/strategies`
2016-11-30 21:17:39 +01:00
**Body**
```json
{
2016-12-13 14:07:55 +01:00
"name": "gradualRollout",
"description": "Gradual rollout to logged in users",
"parameters": [
{
"name": "percentage",
"type": "percentage",
"description": "How many percent should the new feature be active for.",
"required": false
},
{
"name": "group",
"type": "string",
"description": "Group key to use when hasing the userId. Makes sure that the same user get different value for different groups",
"required": false
}
]
},
2016-11-30 21:17:39 +01:00
```
2018-11-22 11:20:28 +01:00
Used to create a new Strategy. Name is required and must be unique. It is also required to have a parameters array, but it can be empty.
2016-12-17 13:03:31 +01:00
### Update strategy
2017-06-28 10:17:48 +02:00
`PUT: http://unleash.host.com/api/admin/strategies/:name`
2016-12-17 13:03:31 +01:00
**Body**
```json
{
"name": "gradualRollout",
"description": "Gradual rollout to logged in users with updated desc",
"parameters": [
{
"name": "percentage",
"type": "percentage",
"description": "How many percent should the new feature be active for.",
"required": false
},
{
"name": "group",
"type": "string",
"description": "Group key to use when hasing the userId. Makes sure that the same user get different value for different groups",
"required": false
}
]
},
```
2021-03-09 21:44:45 +01:00
Used to update a Strategy definition. Name can't be changed. **PS! I can be dangerous to change an implemented strategy as the implementation also might need to be changed**
2021-01-21 13:47:08 +01:00
### Deprecate strategy
`POST: https://unleash.host.com/api/admin/strategies/:name/deprecate`
Used to deprecate a strategy definition. This will set the deprecated flag to true. If the strategy is already deprecated, this will be a noop.
#### Errors
_404 NOT FOUND_ - if `:name` does not exist
### Reactivate strategy
`POST: https://unleash.host.com/api/admin/strategies/:name/reactivate`
2021-03-09 21:44:45 +01:00
Used to reactivate a deprecated strategy definition. This will set the deprecated flag back to false. If the strategy is not deprecated this is a noop and will still return 200.
2021-01-21 13:47:08 +01:00
#### Errors
2021-03-09 21:44:45 +01:00
_404 NOT FOUND_ - if `:name` does not exist