Link Android Device ID
Links the Android device identifier to the user’s PlayFab account
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| AccountLinkedToABannedPlayer | 1613 |
| LinkedDeviceAlreadyClaimed | 1118 |
POST
/
Client
/
LinkAndroidDeviceID
Link Android Device ID
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"AndroidDeviceId": "526f79204261747479",
"OS": "5.0",
"AndroidDevice": "Nexus 6"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID"
payload = {
"AndroidDeviceId": "526f79204261747479",
"OS": "5.0",
"AndroidDevice": "Nexus 6"
}
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({AndroidDeviceId: '526f79204261747479', OS: '5.0', AndroidDevice: 'Nexus 6'})
};
fetch('https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID', 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://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'AndroidDeviceId' => '526f79204261747479',
'OS' => '5.0',
'AndroidDevice' => 'Nexus 6'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID"
payload := strings.NewReader("{\n \"AndroidDeviceId\": \"526f79204261747479\",\n \"OS\": \"5.0\",\n \"AndroidDevice\": \"Nexus 6\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"AndroidDeviceId\": \"526f79204261747479\",\n \"OS\": \"5.0\",\n \"AndroidDevice\": \"Nexus 6\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"AndroidDeviceId\": \"526f79204261747479\",\n \"OS\": \"5.0\",\n \"AndroidDevice\": \"Nexus 6\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}Authorizations
This API requires a client session ticket, available from any Client Login function.
Body
application/json
Android device identifier for the user's device.
Specific model of the user's device.
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
If another user is already linked to the device, unlink the other user and re-link.
Specific Operating System version for the user's device.
Last modified on October 1, 2026
Was this page helpful?
⌘I
Link Android Device ID
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"AndroidDeviceId": "526f79204261747479",
"OS": "5.0",
"AndroidDevice": "Nexus 6"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID"
payload = {
"AndroidDeviceId": "526f79204261747479",
"OS": "5.0",
"AndroidDevice": "Nexus 6"
}
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({AndroidDeviceId: '526f79204261747479', OS: '5.0', AndroidDevice: 'Nexus 6'})
};
fetch('https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID', 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://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'AndroidDeviceId' => '526f79204261747479',
'OS' => '5.0',
'AndroidDevice' => 'Nexus 6'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID"
payload := strings.NewReader("{\n \"AndroidDeviceId\": \"526f79204261747479\",\n \"OS\": \"5.0\",\n \"AndroidDevice\": \"Nexus 6\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"AndroidDeviceId\": \"526f79204261747479\",\n \"OS\": \"5.0\",\n \"AndroidDevice\": \"Nexus 6\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/LinkAndroidDeviceID")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"AndroidDeviceId\": \"526f79204261747479\",\n \"OS\": \"5.0\",\n \"AndroidDevice\": \"Nexus 6\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}