From 3e81f7c16b90a717e2083ed9cb60078e0ecfb443 Mon Sep 17 00:00:00 2001
From: M5Max128
Delete an identity permanently.
PATCH /api/v1/identity/:identity_uuidAuth: Required +Scope: identity-level
+Partially update an identity. Only provided fields are modified. The name field is a display label and may repeat across identities (removed UNIQUE constraint). Aliases for multilingual display are stored in metadata.aliases (see BCP 47 reference below).
| Field | +Type | +Description | +
|---|---|---|
name |
+string | +New display name | +
metadata |
+object | +Merged into existing metadata. Use "aliases" key for locale-tagged names |
+
status |
+string | +"confirmed", "pending", or "skipped" |
+
identity_type |
+string | +"people", "brand", "object", "concept", etc. |
+
# Update name and add aliases
+curl -s -X PATCH "$API/api/v1/identity/$IDENTITY_UUID" \
+ -H "X-API-Key: $KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "John Smith",
+ "metadata": {
+ "aliases": [
+ {"locale": "en", "name": "John Smith"},
+ {"locale": "zh-TW", "name": "約翰·史密斯"},
+ {"locale": "ja", "name": "ジョン・スミス"}
+ ]
+ }
+ }'
+
+# Update status only
+curl -s -X PATCH "$API/api/v1/identity/$IDENTITY_UUID" \
+ -H "X-API-Key: $KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"status": "confirmed"}'
+{
+ "success": true,
+ "identity_uuid": "a9a901056d6b46ff92da0c3c1a57dff4",
+ "updated_fields": ["name", "metadata"]
+}
+| HTTP | +When | +
|---|---|
400 |
+No fields to update or invalid UUID format | +
404 |
+Identity not found | +
GET /api/v1/identity/:identity_uuid/filesAuth: Required Scope: identity-level
@@ -349,7 +436,7 @@ a { color: #0066cc; }Auth: Required Scope: identity-level
Upload an identity.json file to create or update an identity. Accepts the same format as the identity.json files stored on disk.
-If an identity with the same name already exists, it will be updated with the new values.
If an identity with the same identity_uuid already exists, it will be updated with the new values.
The request body is an IdentityFile object:
Updated: 2026-05-19 12:49:24
+Identity aliases support multilingual display names. Aliases are stored in metadata.aliases as an array of {locale, name} objects.
| Locale | +Tag | +Example | +
|---|---|---|
| English | +en |
+John Smith | +
| Traditional Chinese | +zh-TW |
+約翰·史密斯 | +
| Simplified Chinese | +zh-CN |
+约翰·史密斯 | +
| Japanese | +ja |
+ジョン・スミス | +
| Korean | +ko |
+존 스미스 | +
| Cantonese | +yue |
+約翰·史密夫 | +
| French | +fr |
+John Smith (French spelling) | +
| Spanish | +es |
+Juan Smith | +
| Arabic | +ar |
+جون سميث | +
| Russian | +ru |
+Джон Смит | +
| Thai | +th |
+จอห์น สมิธ | +
BCP 47 is the IETF standard for language tags. Format: language (e.g. en, ja) or language-Region (e.g. zh-TW, zh-CN). Region suffix distinguishes regional variants.
function getDisplayName(identity, preferredLocale) {
+ // 1. Exact locale match
+ const match = identity.metadata?.aliases?.find(a => a.locale === preferredLocale);
+ if (match) return match.name;
+
+ // 2. Language-only match (zh-TW → zh)
+ const lang = preferredLocale.split('-')[0];
+ const langMatch = identity.metadata?.aliases?.find(a => a.locale.startsWith(lang));
+ if (langMatch) return langMatch.name;
+
+ // 3. Fallback to identity.name
+ return identity.name;
+}
+PATCH /api/v1/identity/:identity_uuid
+{
+ "metadata": {
+ "aliases": [
+ {"locale": "en", "name": "John Smith"},
+ {"locale": "zh-TW", "name": "約翰·史密斯"}
+ ]
+ }
+}
+This replaces the entire aliases array. To add to existing aliases, include all existing entries in the request.
*Updated: 2026-05-22