Central Archives Identity API 1.0
Endpoints
GET /api/idp/v1/characters/{lodestoneId}
Return a character by Lodestone ID
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
lodestoneId |
path | number | No | Lodestone ID of the character being requested |
Response 200 OK
Character found
{
"persistentKey": "VPFGa2LlNhP7RHeaCY-r5mym634NBcyxn5lcbS9Ptfx",
"lodestoneId": "37681922",
"name": "John Finalfantasy",
"world": "Balmung",
"datacenter": "Crystal",
"region": "na",
"avatarUrl": "https://img2.finalfantasyxiv.com/f/5427dbf1f7ad8113e6949beb2946e098_39e25ac3d737c46452305eefe324372cfc0_96x96.jpg?1701713514",
"portraitUrl": "https://img2.finalfantasyxiv.com/f/5427dbf1f7ad8113e6949beb2946e098_39e25ac3d737c46452305eefe324372cfl0_640x873.jpg?1701713514",
"createdAt": "2021-09-13T19:08:02.352Z",
"verifiedAt": "2021-09-14T16:44:47.000Z",
"updatedAt": "2024-04-05T13:53:20.959Z"
}
Schema of the response body
{
"type": "object",
"properties": {
"persistentKey": {
"type": "string",
"description": "Persistent key, guaranteed to only change if the character is transferred between user accounts",
"example": "VPFGa2LlNhP7RHeaCY-r5mym634NBcyxn5lcbS9Ptfx"
},
"lodestoneId": {
"type": "string",
"description": "Lodestone ID",
"example": "37681922"
},
"name": {
"type": "string",
"description": "Character name",
"example": "John Finalfantasy"
},
"world": {
"type": "string",
"description": "Character world",
"example": "Balmung"
},
"datacenter": {
"type": "string",
"description": "Character datacenter",
"example": "Crystal"
},
"region": {
"type": "string",
"description": "Character region",
"example": "na",
"enum": [
"eu",
"na",
"jp",
"oc"
]
},
"avatarUrl": {
"type": "string",
"description": "Lodestone avatar URL",
"example": "https://img2.finalfantasyxiv.com/f/5427dbf1f7ad8113e6949beb2946e098_39e25ac3d737c46452305eefe324372cfc0_96x96.jpg?1701713514"
},
"portraitUrl": {
"type": "string",
"description": "Lodestone portrait URL",
"example": "https://img2.finalfantasyxiv.com/f/5427dbf1f7ad8113e6949beb2946e098_39e25ac3d737c46452305eefe324372cfl0_640x873.jpg?1701713514"
},
"createdAt": {
"type": "string",
"description": "Character registration date in ISO 8601 format",
"example": "2021-09-13T19:08:02.352Z"
},
"verifiedAt": {
"type": "string",
"description": "Character verification date in ISO 8601 format, or null if the character is not verified",
"example": "2021-09-14T16:44:47.000Z"
},
"updatedAt": {
"type": "string",
"description": "Last update date in ISO 8601 format",
"example": "2024-04-05T13:53:20.959Z"
}
},
"required": [
"persistentKey",
"lodestoneId",
"name",
"world",
"datacenter",
"region",
"avatarUrl",
"portraitUrl",
"createdAt",
"verifiedAt",
"updatedAt"
]
}
Response 400 Bad Request
Malformed Lodestone ID
Response 401 Unauthorized
Unauthorized
Response 404 Not Found
Character not found
GET /api/idp/v1/characters
Return all accessible characters
Response 200 OK
List of accessible characters, possibly empty
[
{
"persistentKey": "VPFGa2LlNhP7RHeaCY-r5mym634NBcyxn5lcbS9Ptfx",
"lodestoneId": "37681922",
"name": "John Finalfantasy",
"world": "Balmung",
"datacenter": "Crystal",
"region": "na",
"avatarUrl": "https://img2.finalfantasyxiv.com/f/5427dbf1f7ad8113e6949beb2946e098_39e25ac3d737c46452305eefe324372cfc0_96x96.jpg?1701713514",
"portraitUrl": "https://img2.finalfantasyxiv.com/f/5427dbf1f7ad8113e6949beb2946e098_39e25ac3d737c46452305eefe324372cfl0_640x873.jpg?1701713514",
"createdAt": "2021-09-13T19:08:02.352Z",
"verifiedAt": "2021-09-14T16:44:47.000Z",
"updatedAt": "2024-04-05T13:53:20.959Z"
}
]
Schema of the response body
{
"type": "array",
"items": {
"$ref": "#/components/schemas/CharacterDto"
}
}
Response 401 Unauthorized
Unauthorized
GET /api/idp/v1/user
Return user information
Response 200 OK
User information
{
"id": "bad1165e-e3f5-4aac-8a44-e8ba494138e9",
"email": "user@example.com",
"emailVerified": true,
"mfaEnabled": false,
"verifiedCharacters": true
}
Schema of the response body
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique ID (UUID) of the user",
"example": "bad1165e-e3f5-4aac-8a44-e8ba494138e9"
},
"email": {
"type": "string",
"description": "User email (if the API client has permissions to read it)",
"example": "user@example.com"
},
"emailVerified": {
"type": "boolean",
"description": "Whether the user email has been verified",
"example": true
},
"mfaEnabled": {
"type": "boolean",
"description": "Whether the user has multi-factor authentication verified",
"example": false
},
"verifiedCharacters": {
"type": "boolean",
"description": "Whether the user email has any verified characters",
"example": true
}
},
"required": [
"id",
"emailVerified",
"mfaEnabled",
"verifiedCharacters"
]
}
Response 401 Unauthorized
Unauthorized
Schemas
CharacterDto
| Name | Type | Description |
|---|---|---|
avatarUrl |
string | Lodestone avatar URL |
createdAt |
string | Character registration date in ISO 8601 format |
datacenter |
string | Character datacenter |
lodestoneId |
string | Lodestone ID |
name |
string | Character name |
persistentKey |
string | Persistent key, guaranteed to only change if the character is transferred between user accounts |
portraitUrl |
string | Lodestone portrait URL |
region |
string | Character region |
updatedAt |
string | Last update date in ISO 8601 format |
verifiedAt |
string | Character verification date in ISO 8601 format, or null if the character is not verified |
world |
string | Character world |
UserDto
| Name | Type | Description |
|---|---|---|
email |
string | User email (if the API client has permissions to read it) |
emailVerified |
boolean | Whether the user email has been verified |
id |
string | Unique ID (UUID) of the user |
mfaEnabled |
boolean | Whether the user has multi-factor authentication verified |
verifiedCharacters |
boolean | Whether the user email has any verified characters |
Security schemes
| Name | Type | Scheme | Description |
|---|---|---|---|
| bearer | oauth2 | Bearer | Access token obtained from OAuth |