---
title: "Update a company"
method: PATCH
path: "/companies/{id}"
tags: ["Companies"]
---

# Update a company

`PATCH /companies/{id}`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/companies/{id}`
- Auth: HTTP bearer

Updates the specified company by setting the values of the parameters passed. Any parameters not provided will be left unchanged. The request is idempotent when an `Idempotency-Key` header is supplied.

## Path parameters

- `id` string, required: The company's opaque object `id`: the `id` field returned by the company endpoints (e.g. `p17xq4c2b9r5gz3e8j0r6t4k7m2n9d5w`). This is NOT the `slug` or display name; passing a slug like `antler` returns 404. To look up a company by name or slug, use `GET /v1/companies`, `POST /v1/companies/search`, or `POST /v1/companies/find-or-create` and read the returned `id`.

## Request body

- UpdateCompanyBody
  - `website` string, nullable: Public company website URL. Normalized to a canonical apex domain when stored. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `summary` string, nullable: One-line summary of the company. Up to 280 characters. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `description` string, nullable: Long-form description of the company, as HTML. Up to 25,000 characters. The HTML is sanitized on write: tags and attributes outside the supported formatting set (paragraphs, headings, lists, links, inline emphasis) are removed. Plain text without HTML tags is converted to paragraphs. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `xUrl` string, nullable: X (Twitter) profile URL or handle. Stored as the canonical handle. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `linkedinUrl` string, nullable: LinkedIn company page URL. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `facebookUrl` string, nullable: Facebook company page URL. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `instagramUrl` string, nullable: Instagram profile URL or handle. Pass `null` or `""` to clear the stored value; omitted means unchanged.
  - `markets` string[]: Canonical market slugs assigned to the company. Pass an empty array to clear all markets.
  - `name` string: The company's display name.
  - `slug` string: URL-friendly slug for the company.

## Response `200`

Successful response.

- Company
  - `id` string, required: Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`).
  - `object` 'company', required: String representing the object's type. Objects of the same type share the same value.
  - `name` string, required: Display name of the company.
  - `slug` string, required: URL-friendly slug for the company.
  - `website` string, nullable, required: Public company website URL, or `null` if not set.
  - `logoUrl` string, nullable, required: URL of the company logo, or `null` if no logo is set.
  - `summary` string, nullable, required: One-line summary of the company, or `null` if not set.
  - `markets` string[], required: Canonical market slugs assigned to the company.
  - `xUrl` string, nullable, required: X (Twitter) profile URL, or `null` if not set.
  - `linkedinUrl` string, nullable, required: LinkedIn page URL, or `null` if not set.
  - `facebookUrl` string, nullable, required: Facebook page URL, or `null` if not set.
  - `instagramUrl` string, nullable, required: Instagram profile URL, or `null` if not set.
  - `createdAt` string, required: Time at which the company was created. ISO 8601 datetime.
  - `updatedAt` string, nullable, required: Time at which the company was last updated, or `null` if it has never been updated. ISO 8601 datetime.
  - `revision` integer, required: Public Company lifecycle revision. Historical rows may be 0 until rollout backfill.
  - `links` object, required: Public + admin URLs for this company. `public` may be `null` if the company lacks a slug.
    - `public` string, uri, nullable, required: Canonical public URL for this company on the board, or `null` when no slug is set.
    - `admin` string, uri, required: URL inside the Cavuno app where the authenticated owner can manage this resource.
  - `description` string, nullable, required: Long-form description of the company (HTML), or `null` if not set.
  - `canBackfill` boolean, nullable, required: Whether automated backfill of jobs from this company is supported, or `null` if not yet evaluated.
  - `jobCount` number, required: Total number of jobs at this company across all statuses.
  - `publishedJobCount` number, required: Number of currently-published jobs at this company.

## Other responses

- `400`: The request was malformed.
- `404`: Company not found.
- `409`: Another company already uses the same website domain or name.

## Changes

- **2026-10-19** `c34152c38176`: 3 info
  - added the optional property `error/upgrade` to the response with the `400` status
  - added the optional property `error/upgrade` to the response with the `404` status
  - added the optional property `error/upgrade` to the response with the `409` status

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/companies/:id/patch.md)

---

[API](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api.md) · [All operations](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/revisions/d5974dabff14?raw)
