202 Accepted for every processed batch, so the HTTP status is not the write verdict. Read errors[]: only an empty array means every entry applied. Failed entries are named there with their reason, and the remaining entries are committed.player source are consistent once this call returns: the next list read of that source goes to the primary instead of the list cache, so it sees what this batch wrote. Reads of every other source may be served from a one-hour cache, so a write there can take up to an hour to surface on the list endpoints.Cache-Control: no-cache is still accepted on list reads and forces a fresh read for every source.curl --location 'https://api.lootlocker.io/server/metadata' \
--header 'Content-Type: application/json' \
--data '{
"source": "reward",
"source_id": "01J3ZEYRX4QVFZ0QC4DF4J1SST",
"entries": [
{
"value": true,
"key": "newsletter_signup",
"type": "bool",
"tags": [],
"access": [
"game_api.read"
],
"action": "upsert"
},
{
"value": true,
"key": "has_beta_access",
"type": "bool",
"tags": [],
"access": [
"game_api.read"
],
"action": "create"
},
{
"value": "xXx_ProGamer9000_xXx",
"key": "preferred_nickname",
"type": "string",
"tags": [
"foo"
],
"access": [
"game_api.read",
"game_api.write"
],
"action": "create"
},
{
"value": 25,
"key": "player_age",
"type": "number",
"tags": [
"foo",
"bar"
],
"access": [
"game_api.read"
],
"action": "create"
},
{
"value": 35,
"key": "player_age",
"type": "number",
"tags": [
"foo",
"bar"
],
"access": [
"game_api.read"
],
"action": "update"
},
{
"value": {
"key": "value",
"properties": {
"tutorial_complete": true,
"chapter_one_complete": true
}
},
"key": "game_state",
"type": "json",
"tags": [],
"access": [
"game_api.read"
],
"action": "create"
},
{
"value": {
"content_type": "image/jpeg",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII="
},
"key": "chosen_icon",
"type": "base64",
"tags": [],
"access": [
"game_api.read"
],
"action": "create"
},
{
"key": "some_deprecated_key",
"action": "delete"
}
]
}'{
"errors": [],
"source": "reward",
"source_id": "01J3ZEYRX4QVFZ0QC4DF4J1SST"
}