Upload a device profile's saves and scores under one of the account's profiles: the newer save wins (ADR 0043).
POST
/api/profiles/{id}/merge
const url = 'https://example.com/api/profiles/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/merge';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"name":"example","data":{"saves":[{"gameId":"example","data":"example","updatedAt":"2026-04-15T12:00:00Z"}],"scores":[{"clientId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","gameId":"example","board":"example","value":1,"achievedAt":"2026-04-15T12:00:00Z","final":true}]}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/profiles/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/merge \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "data": { "saves": [ { "gameId": "example", "data": "example", "updatedAt": "2026-04-15T12:00:00Z" } ], "scores": [ { "clientId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "gameId": "example", "board": "example", "value": 1, "achievedAt": "2026-04-15T12:00:00Z", "final": true } ] } }'Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string format: uuid
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
name
required
string
data
One of:
null
object
saves
Array<object> | null
object
gameId
required
string
data
required
updatedAt
required
string format: date-time
scores
Array<object> | null
object
clientId
required
string format: uuid
gameId
required
string
board
required
string
value
required
number format: double
achievedAt
required
string format: date-time
final
boolean
Responses
Section titled “Responses”OK
Media typeapplication/json
object
account
required
object
id
required
string format: uuid
email
required
null | string
username
required
null | string
displayName
required
string
telemetry
required
boolean
hasPassword
required
boolean
hasManagePin
required
boolean
termsVersion
required
null | string
logins
required
Array<string>
role
required
null | string
community
required
null | string
consoleUrl
required
null | string
profiles
required
Array<object>
object
id
required
string format: uuid
publicId
required
string
name
required
string
avatar
required
string
kind
required
string
ageBand
required
null | string
hasPin
required
boolean
playWithOthers
required
boolean
onPublicBoards
required
boolean
hiddenFromBoards
required
boolean
invites
required
string
activeProfileId
required
null | string format: uuid
parentUnlockedUntil
required
null | string format: date-time
secureUntil
required
null | string format: date-time
Example generated
{ "account": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "email": "example", "username": "example", "displayName": "example", "telemetry": true, "hasPassword": true, "hasManagePin": true, "termsVersion": "example", "logins": [ "example" ], "role": "example", "community": "example", "consoleUrl": "example" }, "profiles": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "publicId": "example", "name": "example", "avatar": "example", "kind": "example", "ageBand": "example", "hasPin": true, "playWithOthers": true, "onPublicBoards": true, "hiddenFromBoards": true, "invites": "example" } ], "activeProfileId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "parentUnlockedUntil": "2026-04-15T12:00:00Z", "secureUntil": "2026-04-15T12:00:00Z"}Forbidden
Media typeapplication/problem+json
object
type
null | string
title
null | string
status
null | integer format: int32
detail
null | string
instance
null | string
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Not Found