---
title: "Inventory · intentic sandbox API"
description: "What this sandbox has and what it wants, as declared deployment intent. Every route in the inventory group of the intentic sandbox API, with its input, its answer and a playground."
url: "https://intentic.dev/api/inventory/"
---

Connected systems

# Inventory

What this sandbox has and what it wants, as declared deployment intent

**On this page (3 sections)**

- [Machines and services you have declared](#inventory-list)
- [Declare a machine or service](#inventory-add)
- [Undeclare a machine or service](#inventory-remove)

The entries in the workspace's deployment configuration. Adding or removing one rewrites that file and commits it, exactly as an agent editing it by hand would, and answers with the whole updated list so a caller redraws from one response.

**GET`/inventory` Machines and services you have declared**

What the deployment configuration says this setup owns and what it wants provisioned.

### What you send

Nothing. Call it as it is.

### What comes back

| Field | Type |
| --- | --- |
| `entries` Everything declared: what you have, and… | object[] |
| `when kind is "backend"` | shape |
| `provider` Which provider it is with | "host" | "cloudflare" | "github" | "gitlab" … (5) |
| `name` What to call it, which is… | string |
| `values` Its settings | object |
| `when kind is "service"` | shape |
| `service` Which service | "signoz" | "outline" | "paperless" | "openproject" … (6) |
| `name` What to call it | string |
| `values` Its settings | object |
| `on` Which of your machines to put… | string |
| `expose` How it should be reachable | string |
| `when kind is "app"` | shape |
| `name` What to call it | string |
| `values` Its settings, including the address it… | object |
| `on` Which of your machines to put… | string |
| `expose` How it should be reachable | string |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/inventory" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.inventory.list();
```

**POST`/inventory` Declare a machine or service**

Writes the entry into the configuration file and commits it, exactly as an agent editing that file by hand would. Answers with the whole updated list, so a screen redraws from one response.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `when kind is "backend"` | shape | body |
| `provider` required Which provider it is with | "host" | "cloudflare" | "github" | "gitlab" … (5) | body |
| `name` required | string | body |
| `values` required Its settings | object | body |
| `when kind is "service"` | shape | body |
| `service` required Which service | "signoz" | "outline" | "paperless" | "openproject" … (6) | body |
| `name` required | string | body |
| `values` required Its settings | object | body |
| `on` required Which of your machines to put… | string | body |
| `expose` required How it should be reachable | string | body |
| `when kind is "app"` | shape | body |
| `name` required | string | body |
| `values` required Its settings, including the address it… | object | body |
| `on` required Which of your machines to put… | string | body |
| `expose` required How it should be reachable | string | body |

### What comes back

| Field | Type |
| --- | --- |
| `entries` Everything declared: what you have, and… | object[] |
| `when kind is "backend"` | shape |
| `provider` Which provider it is with | "host" | "cloudflare" | "github" | "gitlab" … (5) |
| `name` What to call it, which is… | string |
| `values` Its settings | object |
| `when kind is "service"` | shape |
| `service` Which service | "signoz" | "outline" | "paperless" | "openproject" … (6) |
| `name` What to call it | string |
| `values` Its settings | object |
| `on` Which of your machines to put… | string |
| `expose` How it should be reachable | string |
| `when kind is "app"` | shape |
| `name` What to call it | string |
| `values` Its settings, including the address it… | object |
| `on` Which of your machines to put… | string |
| `expose` How it should be reachable | string |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/inventory" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"kind":"backend","provider":"host","name":"nightly changelog","values":{"src/app.ts":"…","README.md":"…"}}'
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.inventory.add({
 "kind": "backend",
 "provider": "host",
 "name": "nightly changelog",
 "values": {
 "src/app.ts": "…",
 "README.md": "…"
 }
});
```

**DELETE`/inventory/{name}` Undeclare a machine or service**

Takes the entry back out of the configuration and commits that too. Answers with the whole updated list.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `name` required Which entry, by name | string | address |

### What comes back

| Field | Type |
| --- | --- |
| `entries` Everything declared: what you have, and… | object[] |
| `when kind is "backend"` | shape |
| `provider` Which provider it is with | "host" | "cloudflare" | "github" | "gitlab" … (5) |
| `name` What to call it, which is… | string |
| `values` Its settings | object |
| `when kind is "service"` | shape |
| `service` Which service | "signoz" | "outline" | "paperless" | "openproject" … (6) |
| `name` What to call it | string |
| `values` Its settings | object |
| `on` Which of your machines to put… | string |
| `expose` How it should be reachable | string |
| `when kind is "app"` | shape |
| `name` What to call it | string |
| `values` Its settings, including the address it… | object |
| `on` Which of your machines to put… | string |
| `expose` How it should be reachable | string |

Try it answered in this tab

curl

```bash
curl -X DELETE "$SANDBOX/inventory/nightly%20changelog" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.inventory.remove({
 "name": "nightly changelog"
});
```

More in Connected systems

[Previous ← Exit locations](https://intentic.dev/api/exit/)[Next Platform CLI →](https://intentic.dev/api/intentic/)
