---
title: "Upload Company File"
method: POST
path: "/api/companies/{company_uuid}/contents"
tags: ["contents"]
---

# Upload Company File

`POST /api/companies/{company_uuid}/contents`

## Request

- Base URL: `https://api.regdoor.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.regdoor.com/api/companies/{company_uuid}/contents`
- Auth: HTTP bearer

Upload a file to the company content library.
Returns information about the uploaded file including the storage uuid.

Args:
    file: The file to upload
    type: The type of the content
    name: The name of the content
    released_at: The release date of the content
    info: Additional metadata for the content, must be a valid JSON string

## Path parameters

- `company_uuid` string, uuid, required

## Query parameters

- `bucket_name` string

## Headers

- `X-User-Email` string, nullable
- `X-User-Name` string, nullable
- `X-Teamspace-Uuid` string, uuid, nullable

## Request body `multipart/form-data`

- BodyUploadCompanyFileApiCompaniesCompanyUuidContentsPost
  - `file` string, binary, required
  - `type` string, nullable: Type of the content
  - `name` string, nullable: Name of the content
  - `type_uuid` string, uuid, nullable: UUID of the main content type from content_types table
  - `subtype_uuid` string, uuid, nullable: UUID of the content subtype; must have parent_type_uuid == type_uuid
  - `info` string, nullable: Additional metadata for the content (JSON string)
  - `released_at` string, date-time, nullable: Release date of the content
  - `organizations_list` string[], nullable: List of related organization UUIDs
  - `jurisdictions_list` integer[], nullable: List of related jurisdiction IDs
  - `sectors_list` string, nullable: List of sector associations as JSON string. Each item should have: sector_uuid (UUID), impact_level (High|Medium|Low), info (optional dict)
  - `collections` string[], nullable: List of collection names to assign to this content
  - `embed` boolean, nullable: If true, launches ECS task for embedding
  - `visibility` string, nullable: 'personal' (default, only me) or 'company' (everyone with permission)

## Response `200`

Successful Response

- ContentResponse: Response model for content endpoint
  - `uuid` string, uuid4, required
  - `name` string, required
  - `original_file_name` string, required
  - `content_type` string, required
  - `type` string, nullable, required
  - `company_uuid` string, uuid4, nullable
  - `user_uuid` string, uuid4, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `released_at` string, date-time, nullable, required
  - `info` object, nullable
  - `collections` string[], nullable
  - `visibility` string
  - `personal_owner_user_uuid` string, uuid4, nullable
  - `relevance` 'None' | 'Low' | 'Moderate' | 'High' | 'Critical'
  - `relevance_reason` string, nullable
  - `access_denied` boolean
  - `my_access_level` string, nullable

## Other responses

- `404`: Not found
- `422`: Validation Error

---

[API](https://skmtc.dev/regdoor/apis/regdoor-api.md) - [All operations](https://skmtc.dev/regdoor/apis/regdoor-api/llms.txt) - [OpenAPI document](https://skmtc.dev/regdoor/apis/regdoor-api/revisions/7642336631af?raw)
