# API reference: Project

> Every project endpoint: what it takes, what it answers with, and which key it needs.

## What this key can reach

`GET /api/v1/project` · Any key

Answers `200` with [Manifest](#manifest).

## Shapes

### Manifest

| Field | Type | Always there | |
|---|---|---|---|
| `id` | uuid | yes | This project's public id. |
| `name` | string | yes |  |
| `timezone` | string | yes | IANA name. Decides what a booking time means. |
| `currency` | string | yes | ISO 4217, the project's default. |
| `modules` | list of string | yes | Module keys switched on for this project. Branch on these rather than calling an endpoint to see whether it 404s. |
| `cache_version` | integer | yes | Changes whenever anything this project publishes changes. Poll this instead of refetching. |
| `livemode` | boolean | yes | False when called with a test key. |
| `logo` | [Logo](#logo) | yes | The website's logo as uploaded in the dashboard, or null when it has none. Changing it raises cache_version. |
| `contact` | [Contact](#contact) | yes | How a customer reaches the business, as set in the dashboard's Business profile. Each part is null while blank, and changing any raises cache_version. |

### Logo

| Field | Type | Always there | |
|---|---|---|---|
| `url` | uri | yes | Where the image is read from. A new address whenever the logo changes. |
| `width` | integer | yes | In pixels. |
| `height` | integer | yes | In pixels. |

### Contact

| Field | Type | Always there | |
|---|---|---|---|
| `address` | string or null | yes | One line, or null when the business set none. |
| `phone` | [Phone](#phone) | yes | Null when the business set none. |
| `link` | [ContactLink](#contactlink) | yes | Its Instagram or its website, or null when the business set neither. |

### Phone

| Field | Type | Always there | |
|---|---|---|---|
| `text` | string | yes | The number as the business wrote it, to show. |
| `href` | string | yes | A tel: link of its digits, after a leading + when it has one. |

### ContactLink

| Field | Type | Always there | |
|---|---|---|---|
| `label` | string | yes | What to show: the @name as written, or the address without https://. |
| `url` | uri | yes | Where it goes: always https, an @name's being its Instagram page. |
