# PATCH /v1/orgs/:org - Update organization

Source: <https://everruns.com/docs/api/operations/update_organization/>

PATCH

/v1/orgs/{org}

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/orgs/example';
const options = {
  method: 'PATCH',
  headers: {'Content-Type': 'application/json'},
  body: '{"agentid_agents_per_owner":5,"base_harness_id":"harness_01933b5a000070008000000000000601","default_harness_id":"harness_01933b5a000070008000000000000602","default_harness_name":"conversation","default_model_id":"model_01933b5a00007000800000000000001","default_provider_per_service":"example","name":"Acme Corporation","system_decisions":"deployment","web_search_defaults":{"account_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","allow_native":true,"automatic_order":["example"],"blocked_domains":["example"],"fallback":"next","provider":"org_default","results_per_search":1}}'
};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request PATCH \
  --url https://app.everruns.com/api/v1/orgs/example \
  --header 'Content-Type: application/json' \
  --data '{ "agentid_agents_per_owner": 5, "base_harness_id": "harness_01933b5a000070008000000000000601", "default_harness_id": "harness_01933b5a000070008000000000000602", "default_harness_name": "conversation", "default_model_id": "model_01933b5a00007000800000000000001", "default_provider_per_service": "example", "name": "Acme Corporation", "system_decisions": "deployment", "web_search_defaults": { "account_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "allow_native": true, "automatic_order": [ "example" ], "blocked_domains": [ "example" ], "fallback": "next", "provider": "org_default", "results_per_search": 1 } }'
```

* Production APIapp.everruns.com/api/v1/orgs/{org}

## Authorizations

* **[bearerAuth](https://everruns.com/docs/api/#bearerauth)**
* **[cookieAuth](https://everruns.com/docs/api/#cookieauth)**

## Parameters

### Path Parameters

**org**

required

string

Organization public ID

## Request Bodyrequired

Media typeapplication/json

Request to update an organization

object

**agentid\_agents\_per\_owner**

How many agents one AgentID owner may sign in to this organization’s Public Chat channels. Pass null to use the platform default (5).

integer | null format: int32

##### Example

```json
5
```

**base\_harness\_id**

Base harness to use when a session is started without an explicit harness\_id.

string | null

##### Example

```plaintext
harness_01933b5a000070008000000000000601
```

**default\_harness\_id**

Default harness to preselect in the UI for new sessions. Mutually exclusive with `default_harness_name`.

string | null

##### Example

```plaintext
harness_01933b5a000070008000000000000602
```

**default\_harness\_name**

Alternative to `default_harness_id` — looked up by stable name within the org. Mutually exclusive with `default_harness_id`.

string | null

##### Example

```plaintext
conversation
```

**default\_model\_id**

Default LLM model for this organization. Must be enabled; pass null to use the platform default.

string | null

##### Example

```plaintext
model_01933b5a00007000800000000000001
```

**default\_provider\_per\_service**

Org-level default provider per service (EVE-569). Maps a service kind (`chat`, `embeddings`, `realtime`, `images`, `rerank`) to the provider id used as that service’s default, consulted after an explicit binding and before the single-active-provider fallback. When present it **replaces** the whole map; each referenced provider must exist in the org.

object | null

**name**

The display name of the organization.

string | null

##### Example

```plaintext
Acme Corporation
```

**system\_decisions**

One of:

* string

  Who answers deployment-owned decision checks (guardrail `jev` checks and the Slack relevance check). `organization` uses the org’s default decision model (`PUT /v1/models/decision-default`) on its own provider account; when that model is missing or failing, guardrail checks fail open and Slack stays silent, never falling back to the deployment.

  string

  Allowed values: deployment organization

* null

  null

**web\_search\_defaults**

One of:

* object

  Web search defaults; replaces the stored defaults as a whole. Omitted fields take their built-in default. `provider` cannot be `org_default`, `account_id` and `automatic_order` entries must name this organization’s search accounts, free search is always last in the Automatic order, and `results_per_search` is 1 to 20.

  object

  **account\_id**

  The search account when `provider` is `account`.

  string | null format: uuid

  **allow\_native**

  Whether agents may use the model provider’s own search (billed by the model provider).

  boolean

  **automatic\_order**

  Automatic order: `native`, search account ids, and `free`, which is always last. Entries left out keep their natural place.

  Array\<string>

  **blocked\_domains**

  Sites no search in this organization returns, on top of each agent’s.

  Array\<string>

  **fallback**

  When a provider cannot answer: `next` falls back (free search last), `none` stops. An agent’s own `fallback` wins.

  string

  Allowed values: next none

  **provider**

  Provider for agents set to the organization default: `auto`, `native`, `brave`, `account` (with `account_id`) or `free`.

  string

  Allowed values: org\_default auto native brave account free

  **results\_per\_search**

  Results per search when neither the model nor the agent asks (1 to 20).

  integer format: int32

* null

  null

## Responses

### 200

Organization updated

Media typeapplication/json

Response for organization operations

object

**agentid\_agents\_per\_owner**

How many agents one AgentID owner may sign in; null means the platform default.

integer | null format: int32

**base\_harness\_id**

Base harness used when session creation omits harness\_id.

string | null

**created\_at**

required

When the organization was created

string format: date-time

**default\_harness\_id**

Default harness to preselect in the UI.

string | null

**default\_model\_id**

Default LLM model for the organization.

string | null

**default\_provider\_per\_service**

required

Org-level default provider per service (EVE-569), keyed by service kind. Empty when no org defaults are configured.

object

***key***

additional properties

string

**id**

required

External identifier (org\_<32-hex-chars>)

string

**name**

required

Display name

string

**onboarding\_completed\_at**

When the org’s creator finished or skipped the setup wizard. `null` means onboarding is still incomplete, which the UI uses to resume the user at `/orgs/{id}/setup`. Seeded/default and externally-synced orgs are complete.

string | null format: date-time

**system\_decisions**

required

Who answers deployment-owned decision checks: `deployment` (default) or `organization` (the org’s default decision model).

string

Allowed values: deployment organization

**updated\_at**

required

When the organization was last updated

string format: date-time

**web\_search\_defaults**

required

Web search defaults: the provider agents on “Organization default” use, the Automatic order, whether model provider search is allowed, the fallback, results per search and blocked domains. Built-in defaults (Automatic) when the organization never set any.

object

**account\_id**

The search account when `provider` is `account`.

string | null format: uuid

**allow\_native**

Whether agents may use the model provider’s own search (billed by the model provider).

boolean

**automatic\_order**

Automatic order: `native`, search account ids, and `free`, which is always last. Entries left out keep their natural place.

Array\<string>

**blocked\_domains**

Sites no search in this organization returns, on top of each agent’s.

Array\<string>

**fallback**

When a provider cannot answer: `next` falls back (free search last), `none` stops. An agent’s own `fallback` wins.

string

Allowed values: next none

**provider**

Provider for agents set to the organization default: `auto`, `native`, `brave`, `account` (with `account_id`) or `free`.

string

Allowed values: org\_default auto native brave account free

**results\_per\_search**

Results per search when neither the model nor the agent asks (1 to 20).

integer format: int32

##### Example

```json
{
  "system_decisions": "deployment",
  "web_search_defaults": {
    "fallback": "next",
    "provider": "org_default"
  }
}
```

### 404

Organization not found

Media typeapplication/json

Standard error response.

Wire shape is [RFC 9457 Problem Details](https://www.rfc-editor.org/rfc/rfc9457): every error response includes `title` and `status`, and may include `detail`, `code`, `allowed_actions`, `retry_after_seconds`, `instance`, and `type`. The content type is rewritten to `application/problem+json` with the `application/problem+json` content type.

object

**allowed\_actions**

Recovery actions the caller can take next.

Array\<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

* **Error recovery** — `ErrorResponse.allowed_actions` carries `rel`s like `retry`, `retry-later`, `unarchive`, `get-existing` so the agent knows the right next call after a 4xx/429.
* **Entity hypermedia** — `WithUrls<T>.allowed_actions` carries state-aware `rel`s like `cancel`, `events`, `self`, `update` on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed `rel` vocabulary distinguishes them.

object

**hint**

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null

**href**

Absolute (preferred) or relative URL the caller may invoke directly. **Always present on entity hypermedia actions** (`WithUrls<T>.allowed_actions`); **optional on error-recovery actions** (`ErrorResponse.allowed_actions`) where the matching `operation_id` is enough and the URI is implicit from the failed call.

string | null

**method**

HTTP method to use against `href`. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null

**operation\_id**

OpenAPI `operationId` the caller should invoke. Lets an MCP client resolve the call without parsing `href`.

string | null

**rel**

required

Link relation describing the action. Examples: `self`, `cancel`, `pause`, `resume`, `events`, `retry`, `retry-later`, `unarchive`, `get-existing`, `delete`, `update`.

string

**schema\_ref**

OpenAPI `$ref` to the request-body schema, when the action takes one (e.g. `#/components/schemas/UpdateSessionRequest`). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null

**code**

Stable, machine-readable error code (snake\_case).

string | null

**detail**

Human-readable explanation specific to this occurrence.

string | null

**instance**

Request URI for this occurrence.

string | null

**retry\_after\_seconds**

Seconds the caller should wait before retrying (429 / transient 503).

integer | null format: int32

**status**

required

HTTP status code; mirrors the response status line.

integer format: int32

**title**

required

Short, human-readable summary of the problem (e.g. “Not Found”).

string

**type**

RFC 9457 problem type URI. Optional; identifies the problem class.

string | null

##### Example

```json
{
  "allowed_actions": [
    {
      "method": "POST"
    }
  ],
  "code": "session_not_found",
  "detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.",
  "instance": "/v1/sessions/session_01933b5a000070008000000000000001",
  "retry_after_seconds": 30,
  "status": 404,
  "title": "Session not found",
  "type": "https://everruns.com/docs/errors/session_not_found"
}
```