---
title: "Outbox · intentic sandbox API"
description: "Files published to a public address, with no sign-in. Every route in the outbox group of the intentic sandbox API, with its input, its answer and a playground."
url: "https://intentic.dev/api/public/"
---

Ship and share

# Outbox

Files published to a public address, with no sign-in

**On this page (3 sections)**

- [What is published to the internet](#public-list)
- [Put a file on the internet](#public-publish)
- [Take something off the internet](#public-unpublish)

What the outbox holds and its address. Publishing copies a workspace file or folder in; withdrawing the last one removes the outbox, so its existing always means exactly "something is published". There is no route to read a published file back, because that is what the open address is for.

**GET`/public` What is published to the internet**

Everything currently in the outbox and the address it answers on. There is no call to read a published file back: it is served openly to anyone with the link, which is the entire point of having put it there.

### What you send

Nothing. Call it as it is.

### What comes back

| Field | Type |
| --- | --- |
| `url` Your public address, which every file's… | string |
| `files` What the outbox holds | object[] |
| `path` Where it sits inside the outbox | string |
| `size` Size in bytes | number |
| `modifiedAt` When it last changed, in milliseconds | number |
| `url` Its public address | string |
| `blocked` Why a file sitting in the… | string |

Try it answered in this tab

curl

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

TypeScript

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

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

**POST`/public/publish` Put a file on the internet**

Copies a workspace file or folder into the outbox, where it is served to anyone with the link and no sign-in. Answers with the address.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `path` required What to publish, as a workspace… | string | body |

### What comes back

| Field | Type |
| --- | --- |
| `path` Where it landed inside the outbox | string |
| `url` Its public address | string |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/public/publish" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"path":"src/app.ts"}'
```

TypeScript

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

const result = await sandbox.public.publish({
 "path": "src/app.ts"
});
```

**POST`/public/unpublish` Take something off the internet**

Withdraws one published entry. When the last one goes, the outbox goes with it, so its existing at all always means something is published.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `path` required What to withdraw, as a path… | string | body |

### What comes back

| Field | Type |
| --- | --- |
| `ok` Always true | true |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/public/unpublish" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"path":"src/app.ts"}'
```

TypeScript

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

const result = await sandbox.public.unpublish({
 "path": "src/app.ts"
});
```

More in Ship and share

[Previous ← Pre-push check](https://intentic.dev/api/prepush/)[Next Sharing →](https://intentic.dev/api/share/)
