Direct API Access
Some API actions require object UUIDs/IDs to be referenced. You can enable the JSON View from your account settings page which will help you access these variables.
Flagsmith is built around a client/server architecture. The REST API server is accessible from SDK clients as well as the administration front end. This decoupling means that you can programmatically access the entire API if you wish.
We have a Postman Collection that you can use to play around with the API and get a feel for how it works.
You can also access the API directly with tools like curl or httpie, or with clients for languages that we do not currently have SDKs for.
API Explorer
You can view the API via Swagger at https://api.flagsmith.com/api/v1/docs/ or get OpenAPI as JSON or YAML.
API Keys
Public API Endpoints
Publicly accessible API calls need to have an environment key supplied with each request. This is provided as an HTTP
header, with the name X-Environment-Key
and the value of the Environment Key that you can find within the Flagsmith
administrative area.
Private API Endpoints
You can also do things like create new flags, environments, toggle flags or indeed anything that is possible from the administrative front end via the API.
To authenticate, you can use the API Token associated with your account. This can be found in the "Account" page from the top navigation panel. You need to provide the token as an HTTP header of the form:
authorization: Token <API TOKEN FROM ACCOUNT PAGE>
For example, to create a new Environment:
curl 'https://api.flagsmith.com/api/v1/environments/' \
-H 'content-type: application/json' \
-H 'authorization: Token <API TOKEN FROM ACCOUNT PAGE>' \
--data-binary '{"name":"New Environment","project":"<Project ID>"}'
You can find a complete list of endpoints via the Swagger REST API at https://api.flagsmith.com/api/v1/docs/.
Curl Examples
These are the two main endpoints that you need to consume the SDK aspect of the API.
Get Environment Flags
curl 'https://edge.api.flagsmith.com/api/v1/flags/' -H 'X-Environment-Key: <Your Env Key>'
Send Identity with Traits and receive Flags
This command will perform the entire SDK Identity workflow in a single call:
- Lazily create an Identity
- Setting Traits for the Identity
- Receiving the Flags for that Identity
curl --request POST 'https://edge.api.flagsmith.com/api/v1/identities/' \
--header 'X-Environment-Key: <Your Env Key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"identifier":"identifier_5",
"traits": [
{
"trait_key": "my_trait_key",
"trait_value": 123.5
},
{
"trait_key": "my_other_key",
"trait_value": true
}
]
}'
JSON View
You can enable the JSON view in your Account Settings page. This will then give you access to relevant object meta data in the Flag area of the dashboard.