> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API

> API reference for Cloudflare: every `cloudflare.api.*` operation with input and output types.

Every `cloudflare.api.*` operation is listed below with parameter shapes and return types from the plugin Zod schemas.

<Info>
  **New to Corsair?** See [API access](/concepts/api), [authentication](/concepts/auth), and [error handling](/concepts/error-handling).
</Info>

## Dns

### create

`dns.create`

Create a DNS record in a zone

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.dns.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `type` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `content` | `string` | Yes | — |
| `ttl` | `number` | No | — |
| `proxied` | `boolean` | No | — |
| `priority` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `zone_id` | `string` | No | — |
| `zone_name` | `string` | No | — |
| `type` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `content` | `string` | Yes | — |
| `proxiable` | `boolean` | No | — |
| `proxied` | `boolean` | No | — |
| `ttl` | `number` | No | — |
| `locked` | `boolean` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |

***

### delete

`dns.delete`

Delete a DNS record

**Risk:** `destructive`

```ts theme={null}
await corsair.cloudflare.api.dns.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `dns_record_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |

***

### edit

`dns.edit`

Update a DNS record

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.dns.edit({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `dns_record_id` | `string` | Yes | — |
| `type` | `string` | No | — |
| `name` | `string` | No | — |
| `content` | `string` | No | — |
| `ttl` | `number` | No | — |
| `proxied` | `boolean` | No | — |
| `priority` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `zone_id` | `string` | No | — |
| `zone_name` | `string` | No | — |
| `type` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `content` | `string` | Yes | — |
| `proxiable` | `boolean` | No | — |
| `proxied` | `boolean` | No | — |
| `ttl` | `number` | No | — |
| `locked` | `boolean` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |

***

### get

`dns.get`

Retrieve a DNS record by ID

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.dns.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `dns_record_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `zone_id` | `string` | No | — |
| `zone_name` | `string` | No | — |
| `type` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `content` | `string` | Yes | — |
| `proxiable` | `boolean` | No | — |
| `proxied` | `boolean` | No | — |
| `ttl` | `number` | No | — |
| `locked` | `boolean` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |

***

### list

`dns.list`

List DNS records for a zone

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.dns.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `number` | No | — |
| `per_page` | `number` | No | — |
| `zone_id` | `string` | Yes | — |
| `type` | `string` | No | — |
| `name` | `string` | No | — |
| `content` | `string` | No | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string,
      zone_id?: string,
      zone_name?: string,
      type: string,
      name: string,
      content: string,
      proxiable?: boolean,
      proxied?: boolean,
      ttl?: number,
      locked?: boolean,
      created_on?: string,
      modified_on?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Rulesets

### create

`rulesets.create`

Create a ruleset in a zone

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.rulesets.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `kind` | `string` | Yes | — |
| `phase` | `string` | Yes | — |
| `rules` | `object[]` | No | — |
| `description` | `string` | No | — |

<AccordionGroup>
  <Accordion title="rules full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `description` | `string` | No | — |
| `kind` | `string` | Yes | — |
| `version` | `string` | No | — |
| `last_updated` | `string` | No | — |
| `phase` | `string` | Yes | — |
| `rules` | `object[]` | No | — |

<AccordionGroup>
  <Accordion title="rules full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### delete

`rulesets.delete`

Delete a ruleset

**Risk:** `destructive`

```ts theme={null}
await corsair.cloudflare.api.rulesets.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `ruleset_id` | `string` | Yes | — |

**Output:** `null`

***

### get

`rulesets.get`

Retrieve a ruleset by ID

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.rulesets.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `ruleset_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `description` | `string` | No | — |
| `kind` | `string` | Yes | — |
| `version` | `string` | No | — |
| `last_updated` | `string` | No | — |
| `phase` | `string` | Yes | — |
| `rules` | `object[]` | No | — |

<AccordionGroup>
  <Accordion title="rules full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### list

`rulesets.list`

List rulesets for a zone

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.rulesets.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string,
      name: string,
      description?: string,
      kind: string,
      version?: string,
      last_updated?: string,
      phase: string,
      rules?: {
      }[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### update

`rulesets.update`

Update a ruleset

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.rulesets.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `ruleset_id` | `string` | Yes | — |
| `rules` | `object[]` | Yes | — |
| `description` | `string` | No | — |

<AccordionGroup>
  <Accordion title="rules full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `description` | `string` | No | — |
| `kind` | `string` | Yes | — |
| `version` | `string` | No | — |
| `last_updated` | `string` | No | — |
| `phase` | `string` | Yes | — |
| `rules` | `object[]` | No | — |

<AccordionGroup>
  <Accordion title="rules full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Workers

### routes.create

`workers.routes.create`

Create a Workers route

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.workers.routes.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `pattern` | `string` | Yes | — |
| `script` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `pattern` | `string` | Yes | — |
| `script` | `string` | No | — |

***

### routes.delete

`workers.routes.delete`

Delete a Workers route

**Risk:** `destructive`

```ts theme={null}
await corsair.cloudflare.api.workers.routes.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `route_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |

***

### routes.edit

`workers.routes.edit`

Update a Workers route

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.workers.routes.edit({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `route_id` | `string` | Yes | — |
| `pattern` | `string` | No | — |
| `script` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `pattern` | `string` | Yes | — |
| `script` | `string` | No | — |

***

### routes.get

`workers.routes.get`

Retrieve a Workers route by ID

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.workers.routes.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `route_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `pattern` | `string` | Yes | — |
| `script` | `string` | No | — |

***

### routes.list

`workers.routes.list`

List Workers routes for a zone

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.workers.routes.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string,
      pattern: string,
      script?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### scripts.delete

`workers.scripts.delete`

Delete a Workers script

**Risk:** `destructive`

```ts theme={null}
await corsair.cloudflare.api.workers.scripts.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_id` | `string` | Yes | — |
| `script_name` | `string` | Yes | — |

**Output:** `null`

***

### scripts.get

`workers.scripts.get`

Download Workers script source code by name

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.workers.scripts.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_id` | `string` | Yes | — |
| `script_name` | `string` | Yes | — |

**Output:** `string`

***

### scripts.list

`workers.scripts.list`

List Workers scripts for an account

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.workers.scripts.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_id` | `string` | Yes | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id?: string,
      created_on?: string,
      modified_on?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### scripts.upload

`workers.scripts.upload`

Upload or overwrite a Workers script

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.workers.scripts.upload({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_id` | `string` | Yes | — |
| `script_name` | `string` | Yes | — |
| `script_content` | `string` | Yes | — |
| `bindings` | `object[]` | No | — |
| `compatibility_date` | `string` | No | — |

<AccordionGroup>
  <Accordion title="bindings full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |

***

## Zones

### create

`zones.create`

Create a new Cloudflare zone

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.zones.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `account` | `object` | Yes | — |
| `jump_start` | `boolean` | No | — |

<AccordionGroup>
  <Accordion title="account full type">
    ```ts theme={null}
    {
      id: string
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `status` | `string` | No | — |
| `paused` | `boolean` | No | — |
| `type` | `string` | No | — |
| `account` | `object` | No | — |
| `name_servers` | `string[]` | No | — |
| `original_name_servers` | `string[]` | No | — |
| `original_registrar` | `string` | No | — |
| `original_dnshost` | `string` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |
| `activated_on` | `string` | No | — |

<AccordionGroup>
  <Accordion title="account full type">
    ```ts theme={null}
    {
      id: string
    }
    ```
  </Accordion>
</AccordionGroup>

***

### delete

`zones.delete`

Delete a Cloudflare zone

**Risk:** `destructive`

```ts theme={null}
await corsair.cloudflare.api.zones.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |

***

### edit

`zones.edit`

Update a Cloudflare zone

**Risk:** `write`

```ts theme={null}
await corsair.cloudflare.api.zones.edit({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |
| `paused` | `boolean` | No | — |
| `plan` | `object` | No | — |
| `vanity_name_servers` | `string[]` | No | — |

<AccordionGroup>
  <Accordion title="plan full type">
    ```ts theme={null}
    {
      id: string
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `status` | `string` | No | — |
| `paused` | `boolean` | No | — |
| `type` | `string` | No | — |
| `account` | `object` | No | — |
| `name_servers` | `string[]` | No | — |
| `original_name_servers` | `string[]` | No | — |
| `original_registrar` | `string` | No | — |
| `original_dnshost` | `string` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |
| `activated_on` | `string` | No | — |

<AccordionGroup>
  <Accordion title="account full type">
    ```ts theme={null}
    {
      id: string
    }
    ```
  </Accordion>
</AccordionGroup>

***

### get

`zones.get`

Retrieve a Cloudflare zone by ID

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.zones.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `zone_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `status` | `string` | No | — |
| `paused` | `boolean` | No | — |
| `type` | `string` | No | — |
| `account` | `object` | No | — |
| `name_servers` | `string[]` | No | — |
| `original_name_servers` | `string[]` | No | — |
| `original_registrar` | `string` | No | — |
| `original_dnshost` | `string` | No | — |
| `created_on` | `string` | No | — |
| `modified_on` | `string` | No | — |
| `activated_on` | `string` | No | — |

<AccordionGroup>
  <Accordion title="account full type">
    ```ts theme={null}
    {
      id: string
    }
    ```
  </Accordion>
</AccordionGroup>

***

### list

`zones.list`

List Cloudflare zones

**Risk:** `read`

```ts theme={null}
await corsair.cloudflare.api.zones.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `number` | No | — |
| `per_page` | `number` | No | — |
| `name` | `string` | No | — |
| `status` | `string` | No | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string,
      name: string,
      status?: string,
      paused?: boolean,
      type?: string,
      account?: {
        id: string
      },
      name_servers?: string[],
      original_name_servers?: string[],
      original_registrar?: string,
      original_dnshost?: string,
      created_on?: string,
      modified_on?: string,
      activated_on?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.