Skip to content

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"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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"
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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