# Projects API

## What this covers

A project is the isolation boundary: credentials, keys, agents, numbers, sessions and webhooks all belong to exactly one. Create one per environment or per customer.

Every example below runs as written once these are exported:

```bash
export DVAARIK_TOKEN="<account access token>"   # console session, from POST /console/auth/login
export PROJECT_ID="<uuid>"
```

A `<value>` inside a JSON body is a value you supply. Responses are JSON; every error body is `{ "detail": … }`. Each schema is expanded once per page, where it first appears.

### Account door errors

| Status | Cause |
| --- | --- |
| `401` | No account session was presented, or it is invalid or expired. Refresh once, then re-authenticate. |
| `403` | The account is suspended or its email is not verified. |

## Operations — account session

The same resource through the console door. These are what the web console calls; both doors return the same shapes.

### GET `/v2/projects`

List the projects on this account.

| Detail | Value |
| --- | --- |
| Door | Account session — `Authorization: Bearer $DVAARIK_TOKEN` |
| Operation | `list_projects_v2_projects_get` |
| Success | `200` `ProjectInfo[]` |

| Parameter | In | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no |  |
| `offset` | query | integer | no |  |

#### `ProjectInfo`

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `api_rpm` | integer | yes |  |
| `created_at` | date-time | yes |  |
| `external_reference` | string or null | yes |  |
| `id` | uuid | yes |  |
| `is_default` | boolean | yes |  |
| `max_call_seconds` | integer | yes |  |
| `name` | string | yes |  |
| `revision` | integer | yes |  |
| `social_daily_sends` | integer | yes |  |
| `social_rpm` | integer | yes |  |
| `status` | string | yes |  |
| `updated_at` | date-time | yes |  |
| `voice_concurrency` | integer | yes |  |

| Error | When |
| --- | --- |
| `422` | The request body or query is not valid. `detail` is an array of `{loc, msg, type}` and `loc` names the offending field. |

Plus the account-door errors above. Full list on the [errors page](/docs/errors).

```bash
curl -sS -X GET "https://api.developers.dvaarik.com/v2/projects?limit=20" \
  -H "Authorization: Bearer $DVAARIK_TOKEN"
```

### POST `/v2/projects`

Create a project — the isolation boundary every other resource hangs off.

| Detail | Value |
| --- | --- |
| Door | Account session — `Authorization: Bearer $DVAARIK_TOKEN` |
| Operation | `create_project_v2_projects_post` |
| Success | `201` `ProjectInfo` |

Request body: `CreateProjectRequest`.

#### `CreateProjectRequest`

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `external_reference` | string or null | no |  |
| `name` | string | yes |  |

| Error | When |
| --- | --- |
| `422` | The request body or query is not valid. `detail` is an array of `{loc, msg, type}` and `loc` names the offending field. |

Plus the account-door errors above. Full list on the [errors page](/docs/errors).

```bash
curl -sS -X POST "https://api.developers.dvaarik.com/v2/projects" \
  -H "Authorization: Bearer $DVAARIK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "production",
    "external_reference": "acct_4821"
  }'
```

### GET `/v2/projects/{project_id}`

Read one project with its concurrency, request-rate and maximum-session limits.

| Detail | Value |
| --- | --- |
| Door | Account session — `Authorization: Bearer $DVAARIK_TOKEN` |
| Operation | `get_project_v2_projects__project_id__get` |
| Success | `200` `ProjectInfo` |

| Parameter | In | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `project_id` | path | uuid | yes |  |

| Error | When |
| --- | --- |
| `422` | The request body or query is not valid. `detail` is an array of `{loc, msg, type}` and `loc` names the offending field. |

Plus the account-door errors above. Full list on the [errors page](/docs/errors).

```bash
curl -sS -X GET "https://api.developers.dvaarik.com/v2/projects/$PROJECT_ID" \
  -H "Authorization: Bearer $DVAARIK_TOKEN"
```

---

Source: https://developers.dvaarik.com/docs/api/projects · every page as one file: https://developers.dvaarik.com/docs.md
