Get user
For the complete documentation index, see llms.txt. For the full documentation snapshot, see llms-full.txt.
Use contexts instead
After you have upgraded your LaunchDarkly SDK to use contexts instead of users, you should use Get context instances instead of this endpoint.
Get a user by key. The user object contains all attributes sent in variation calls for that key.
curl --request GET \
--url https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey} \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"lastPing": "2022-06-28T23:21:29.176609596Z",
"environmentId": "1234a56b7c89d012345e678f",
"ownerId": "12ab3c45de678910abc12345",
"user": {
"key": "user-key-123abc",
"secondary": "2398127",
"ip": "10.10.10.10",
"country": "United States",
"email": "sandy@example.com",
"firstName": "Sandy",
"lastName": "Smith",
"avatar": "http://example.com/avatar.png",
"name": "Sandy Smith",
"anonymous": false,
"custom": {},
"privateAttrs": [
"<string>"
]
},
"sortValue": "user-key-123abc",
"_links": {
"parent": {
"href": "/api/v2/users/my-project/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/users/my-project/my-environment/my-user",
"type": "application/json"
},
"settings": {
"href": "/api/v2/users/my-project/my-environment/my-user/flags",
"type": "text/html"
},
"site": {
"href": "/my-project/my-environment/users/my-user",
"type": "text/html"
}
},
"_access": {
"denied": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
],
"allowed": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
]
}
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Authorizations
Path Parameters
The project key
The environment key
The user key
Response
User response
Timestamp of the last time this user was seen
"2022-06-28T23:21:29.176609596Z"
The environment ID
"1234a56b7c89d012345e678f"
The ID of the member who is the owner for this account
"12ab3c45de678910abc12345"
Details on the user
Show child attributes
Show child attributes
If this record is returned as part of a list, the value used to sort the list. This is only included when the sort query parameter is specified. It is a time, in Unix milliseconds, if the sort is by lastSeen. It is a user key if the sort is by userKey.
"user-key-123abc"
The location and content type of related resources
Show child attributes
Show child attributes
{
"parent": {
"href": "/api/v2/users/my-project/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/users/my-project/my-environment/my-user",
"type": "application/json"
},
"settings": {
"href": "/api/v2/users/my-project/my-environment/my-user/flags",
"type": "text/html"
},
"site": {
"href": "/my-project/my-environment/users/my-user",
"type": "text/html"
}
}
Details on the allowed and denied actions for this user
Show child attributes
Show child attributes
curl --request GET \
--url https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey} \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/users/{projectKey}/{environmentKey}/{userKey}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"lastPing": "2022-06-28T23:21:29.176609596Z",
"environmentId": "1234a56b7c89d012345e678f",
"ownerId": "12ab3c45de678910abc12345",
"user": {
"key": "user-key-123abc",
"secondary": "2398127",
"ip": "10.10.10.10",
"country": "United States",
"email": "sandy@example.com",
"firstName": "Sandy",
"lastName": "Smith",
"avatar": "http://example.com/avatar.png",
"name": "Sandy Smith",
"anonymous": false,
"custom": {},
"privateAttrs": [
"<string>"
]
},
"sortValue": "user-key-123abc",
"_links": {
"parent": {
"href": "/api/v2/users/my-project/my-environment",
"type": "application/json"
},
"self": {
"href": "/api/v2/users/my-project/my-environment/my-user",
"type": "application/json"
},
"settings": {
"href": "/api/v2/users/my-project/my-environment/my-user/flags",
"type": "text/html"
},
"site": {
"href": "/my-project/my-environment/users/my-user",
"type": "text/html"
}
},
"_access": {
"denied": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
],
"allowed": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
]
}
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}