---
title: "Upload a file for the Architect"
method: POST
path: "/api/v1/files"
tags: ["Architect"]
---

# Upload a file for the Architect

`POST /api/v1/files`

## Request

- Base URL: `https://editor.pascal.app`
- URL: `https://editor.pascal.app/api/v1/files`
- Auth: HTTP bearer

OpenAI `files.create`: a multipart upload stored as one of the project’s files. Its id (`file-…`) goes in `input_file`, `input_image` or chat `file` parts. Images, PDFs, and the DXF, CSV and DAE plans architect-pro reads; the request body is capped at about 4.5 MB.

## Headers

- `X-Pascal-Project` string

## Response `200`

File object

- ArchitectFile
  - `id` string, required: `file-<asset id>`
  - `object` 'file', required
  - `bytes` integer, required
  - `created_at` integer, required
  - `filename` string, required
  - `purpose` 'user_data', required
  - `status` 'processed', required

## Other responses

- `400`: OpenAI-shaped error, with `x-should-retry: false`: no error is retried. 400 invalid request, missing project, a file that can’t be sent, or `unsupported_parameter` (tools, structured output, `n` > 1) with its `param`; 401 invalid key; 403 `upgrade_required`; 404 unknown model, or project not found or not editable with this key; 409 `turn_in_progress` (naming the running `response_id`) or `previous_response_id` not on the project’s active conversation; 503 `executor_unavailable` on a deployment with no executor. The one retryable error is a `background` launch that failed before its turn ran (502, without the header).
- `401`: OpenAI-shaped error, with `x-should-retry: false`: no error is retried. 400 invalid request, missing project, a file that can’t be sent, or `unsupported_parameter` (tools, structured output, `n` > 1) with its `param`; 401 invalid key; 403 `upgrade_required`; 404 unknown model, or project not found or not editable with this key; 409 `turn_in_progress` (naming the running `response_id`) or `previous_response_id` not on the project’s active conversation; 503 `executor_unavailable` on a deployment with no executor. The one retryable error is a `background` launch that failed before its turn ran (502, without the header).
- `404`: OpenAI-shaped error, with `x-should-retry: false`: no error is retried. 400 invalid request, missing project, a file that can’t be sent, or `unsupported_parameter` (tools, structured output, `n` > 1) with its `param`; 401 invalid key; 403 `upgrade_required`; 404 unknown model, or project not found or not editable with this key; 409 `turn_in_progress` (naming the running `response_id`) or `previous_response_id` not on the project’s active conversation; 503 `executor_unavailable` on a deployment with no executor. The one retryable error is a `background` launch that failed before its turn ran (502, without the header).

---

[API](https://skmtc.dev/pascal/apis/pascal-editor-scene-api.md) · [All operations](https://skmtc.dev/pascal/apis/pascal-editor-scene-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pascal/apis/pascal-editor-scene-api/revisions/08f1f3f41067?raw)
