Import shots from a CSV file

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
POST /import/csv/projects/{project_id}/shots

Create shots in a project from a CSV file. A line gives the episode, the sequence, the frames, the metadata and the task statuses of a shot. The route creates the missing episodes and sequences. Send the CSV file in a multipart form. The route finds the separator of the file. Each line is imported in order. If a line is not valid, the import stops. Without update=true, the lines of the entities that exist are skipped. You must be a manager of the project.

Path parameters

  • project_id string(uuid) Required

    Unique identifier of the project

Query parameters

  • update boolean

    Update the entities that exist

    Default value is false.

multipart/form-data

Body Required

  • file string(binary) Required

    CSV file with shot data

Responses

  • 201 application/json

    The imported lines

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
    • parent_id string(uuid)
    • nb_frames integer
    • description string
  • 400 application/json

    A line of the file is not valid. The lines before this line are imported.

    Hide response attributes Show response attributes object
    • error boolean
    • message string
    • line_number integer

      Number of the line that is not valid

    • imported_rows integer

      Number of lines that are imported

  • 403

    You are not a manager of the project

  • 404

    The project does not exist

POST /import/csv/projects/{project_id}/shots
curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots?update=false" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
import requests

url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Accept": "application/json"
}
params = {
    "update": false
}
payload = None

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

response.raise_for_status()

if response.content:
    print(response.json())
Response examples (201)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c250",
    "name": "SH010",
    "project_id": "b24a6ea4-ce75-4665-a070-57453082c250",
    "parent_id": "c24a6ea4-ce75-4665-a070-57453082c250",
    "nb_frames": 120,
    "description": "Shot description"
  }
]
Response examples (400)
{
  "error": true,
  "message": "string",
  "line_number": 42,
  "imported_rows": 42
}