Update a metadata descriptor

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/projects/{project_id}/metadata-descriptors/{metadata_descriptor_id}

Update a metadata descriptor of a project. A metadata descriptor describes an extra column. The values of the column are in the data field of the entities. Send every field. A field you leave out goes back to its default value, except the name. Administrators and managers of the project can use this route. A supervisor of the project can use it only when the descriptor, with the departments you send, has at least one department and these departments include every department of the supervisor.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

  • metadata_descriptor_id string(uuid) Required

    Metadata descriptor unique identifier

application/json

Body Required

  • name string

    Name of the metadata descriptor, kept when left out

  • for_client string

    Whether the descriptor is for client

    Default value is False.

  • data_type string

    Type of the values, for example string, number, list or boolean

    Default value is string.

  • choices array[string]

    List of choices for the descriptor

  • departments array[string]

    List of departments for the descriptor

Responses

  • 200 application/json

    The updated descriptor

  • 400

    The name is empty, the data type is not valid, or the name is used by another column of the same type, by a built-in field, or is too long

  • 403

    You cannot change this descriptor

  • 404

    The project has no descriptor with this identifier, or a department does not exist

PUT /data/projects/{project_id}/metadata-descriptors/{metadata_descriptor_id}
curl -X PUT "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Custom Field",
  "for_client": "True",
  "choices": [
    "option1",
    "option2"
  ],
  "departments": [
    "department1",
    "department2"
  ]
}'
import requests

url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Accept": "application/json",
    "Content-Type": "application/json"
}
params = {}
payload = {
    "name": "Custom Field",
    "for_client": "True",
    "choices": [
        "option1",
        "option2"
    ],
    "departments": [
        "department1",
        "department2"
    ]
}

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

response.raise_for_status()

if response.content:
    print(response.json())
Request examples
{
  "name": "Custom Field",
  "for_client": "True",
  "data_type": "string",
  "choices": [
    "option1",
    "option2"
  ],
  "departments": [
    "department1",
    "department2"
  ]
}
Response examples (200)
{}