Update a person

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://api-docs.kitsu.cloud/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "Kitsu API MCP server": {
    "url": "https://api-docs.kitsu.cloud/mcp"
  }
}

Close
PUT /data/persons/{instance_id}

Update the fields of a person. Send only the fields to change. You can change your own person. To change another person, you must be an administrator. If you are not an administrator, the route ignores expiration_date, role, departments, active, is_bot, archived, studio_id, last_presence, the login failure fields and the LDAP, OIDC and SAML fields. To change your own email, give current_password too, and one of totp, email_otp, fido_authentication_response or recovery_code when two-factor authentication is enabled. You cannot change id, created_at, updated_at, password, jti, the two-factor fields and the preview account fields. You cannot change a preview account. You cannot deactivate a protected account of another person or change its role. You cannot activate a person who is not a bot when the user limit is reached. The route checks role, contract_type, country, locale, display_date_format, two_factor_authentication, email and expiration_date. A new expiration date cannot be in the past. When you change the expiration_date of a bot, the response gives a new access_token, unless the date is in the past. expiration_date uses the YYYY-MM-DD format.

Path parameters

  • instance_id string(uuid) Required

    Unique identifier of the person

application/json

Body Required

  • first_name string
  • last_name string
  • email string(email)
  • role string

    Admin only

  • active boolean

    Admin only

  • contract_type string
  • expiration_date string(date)

    Admin only

  • current_password string

    Current password, to change your own email

  • country string

    ISO 3166-1 alpha-2 country code (nullable)

Responses

  • 200 application/json

    The updated person

    Hide response attributes Show response attributes object
    • id string(uuid)
    • first_name string
    • last_name string
    • email string(email)
    • role string
    • active boolean
    • contract_type string
    • two_factor_authentication string
    • departments array[string(uuid)]
    • country string

      ISO 3166-1 alpha-2 country code (nullable)

    • access_token string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    The body is not valid, a date is not valid, or a field breaks a database constraint

  • 403

    The person is not you and you are not an administrator, the person is a preview account, or you try to deactivate or change the role of a protected account

  • 404

    The person does not exist

PUT /data/persons/{instance_id}
curl -X PUT "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "first_name": "Jane",
  "last_name": "Smith",
  "email": "jane.smith@example.com",
  "password": "newsecurepassword123",
  "role": "manager",
  "active": true,
  "contract_type": "freelance",
  "two_factor_authentication": "totp",
  "expiration_date": "2025-12-31"
}'
import requests

url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Accept": "application/json",
    "Content-Type": "application/json"
}
params = {}
payload = {
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane.smith@example.com",
    "password": "newsecurepassword123",
    "role": "manager",
    "active": true,
    "contract_type": "freelance",
    "two_factor_authentication": "totp",
    "expiration_date": "2025-12-31"
}

response = requests.put(
    url,
    headers=headers,
    params=params,
    json=payload
)

response.raise_for_status()

if response.content:
    print(response.json())
Request examples
{
  "first_name": "Jane",
  "last_name": "Smith",
  "email": "jane.smith@example.com",
  "role": "manager",
  "active": true,
  "contract_type": "freelance",
  "expiration_date": "2025-12-31",
  "current_password": "string",
  "country": "FR"
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c250",
  "first_name": "Jane",
  "last_name": "Smith",
  "email": "jane.smith@example.com",
  "role": "manager",
  "active": true,
  "contract_type": "freelance",
  "two_factor_authentication": "totp",
  "departments": [
    "string"
  ],
  "country": "FR",
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}