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

# Services

> Create, list, get, update, and delete Proceeds services from the CLI.

Services wrap an upstream API (base URL, auth, networks, mode). This page covers create and day-to-day management.

## Create

```bash theme={null}
proceeds services create \
  --name "Weather API" \
  --base-url https://weather.example.com \
  --auth-method none \
  --networks base-sepolia \
  --mode testnet \
  --format json
```

You can also pass a complete JSON body with `--file` or `--data` (exclusive with field flags). Nested `authConfig` needs `--file` / `--data`.

| Flag                | Purpose                                            |
| ------------------- | -------------------------------------------------- |
| `--name`            | Display name (required)                            |
| `--base-url`        | Upstream base URL (required)                       |
| `--auth-method`     | Upstream auth (`none`, `bearer`, …) (required)     |
| `--networks`        | Accepted network; repeat for multiple (required)   |
| `--mode`            | `testnet` or `mainnet` (required)                  |
| `--description`     | Description                                        |
| `--file` / `--data` | Complete JSON payload (exclusive with field flags) |

Example response (trimmed — no payment URLs):

```json theme={null}
{
  "data": {
    "id": "cmu…",
    "name": "Weather API",
    "description": null,
    "baseUrl": "https://weather.example.com",
    "authMethod": "none",
    "authConfig": null,
    "networks": ["base-sepolia"],
    "mode": "testnet",
    "createdAt": "2026-09-19T02:20:42.796Z",
    "updatedAt": "2026-09-19T02:20:42.796Z"
  }
}
```

## List

```bash theme={null}
proceeds services list --limit 1 --format json
```

| Flag       | Default | Notes             |
| ---------- | ------- | ----------------- |
| `--limit`  | `20`    | Page size (1–100) |
| `--offset` | `0`     | Records to skip   |

Example response (trimmed — list also embeds paywall summaries):

```json theme={null}
{
  "data": [
    {
      "id": "cmu…",
      "name": "CLI Docs Demo",
      "description": "Updated by CLI docs run",
      "baseUrl": "https://httpbin.org",
      "authMethod": "none",
      "networks": ["base-sepolia"],
      "mode": "testnet",
      "Paywall": [
        { "id": "mmmo…", "slug": "cli-docs-flags", "pricingMode": "exact", "price": "10000" }
      ]
    }
  ],
  "meta": {
    "pagination": { "total": 5, "limit": 1, "offset": 0, "hasMore": true }
  }
}
```

## Get

```bash theme={null}
proceeds services get <id> --format json
```

Example response:

```json theme={null}
{
  "data": {
    "id": "cmu…",
    "name": "CLI Docs Demo",
    "description": "CLI docs demo",
    "baseUrl": "https://httpbin.org",
    "authMethod": "none",
    "networks": ["base-sepolia"],
    "mode": "testnet"
  }
}
```

Upstream credentials in the full response are masked.

## Update

Partial update — only supply fields you want to change.

```bash theme={null}
proceeds services update <id> --description "CLI docs demo" --format json
```

Example response (trimmed):

```json theme={null}
{
  "data": {
    "id": "cmu…",
    "name": "CLI Docs Demo",
    "description": "CLI docs demo",
    "baseUrl": "https://httpbin.org",
    "authMethod": "none",
    "networks": ["base-sepolia"],
    "mode": "testnet",
    "updatedAt": "2026-09-19T07:45:07.697Z"
  }
}
```

| Flag                | Purpose                                            |
| ------------------- | -------------------------------------------------- |
| `--name`            | Display name                                       |
| `--description`     | Description                                        |
| `--base-url`        | Upstream base URL                                  |
| `--auth-method`     | Upstream auth (`none`, `bearer`, …)                |
| `--networks`        | Accepted network; repeat for multiple              |
| `--mode`            | `testnet` or `mainnet`                             |
| `--file` / `--data` | Complete JSON payload (exclusive with field flags) |

<Warning>
  Do not submit masked credential values from a previous `get` response.
</Warning>

## Delete

Deletes the service **and all of its paywalls**. Requires `--yes`.

```bash theme={null}
proceeds services delete <id> --yes
```

## Related

<CardGroup cols={2}>
  <Card title="Paywalls" icon="lock" href="/cli/paywalls">
    List, update, and delete paywalls.
  </Card>

  <Card title="Transactions and events" icon="chart-line" href="/cli/transactions">
    Monitor payments and request events.
  </Card>

  <Card title="Authentication" icon="key" href="/cli/authentication">
    Profiles and API keys.
  </Card>
</CardGroup>
