# Variable

> A plain variable or reference.

A plain variable or reference. Values are visible to anyone who can read the project; use secrets for sensitive values.

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `name` * | string |  |
| `value` * | string | Literal, `${{ … }}` reference, or `secret://name`. |
| `kind` * | `plain`, `reference`, `secret_ref` | Read-only. |
| `scope` * | `shared`, `service` | `shared` applies to every service in the environment; `service` to one service. |
| `service_id` | string or null |  |
| `public` | boolean | Allowed to appear in client bundles. Any other variable whose value appears in built assets blocks the deploy. |
| `build` | boolean | Available to the build as a BuildKit secret mount (never a build arg). |
| `managed_by_manifest` | boolean |  |
| `updated_by` | [Actor](/docs/api/objects/actor/) |  |
| `updated_at` | string (date-time) |  |

\* always present

## Example

```json
{
  "name": "DATABASE_URL",
  "value": "${{ databases.main.pooled_url }}",
  "kind": "reference",
  "scope": "service",
  "service_id": "svc_01jbx2m9k7q4r8t5v6w3y0z1sv",
  "public": false,
  "build": false,
  "managed_by_manifest": true,
  "updated_by": {
    "type": "user",
    "id": "usr_01jbx2m9k7q4r8t5v6w3y0z1us",
    "display": "Stewart Webb"
  },
  "updated_at": "2026-10-23T10:00:00Z"
}
```
