# AI Drop

You've fetched the root of an AI Drop service. This is a self-hosted file
relay for AI agents and humans: upload files via HTTP or MCP, get a stable
shareable URL, and let any LLM (Claude, ChatGPT, Cursor, etc.) read the
contents through a robot-friendly markdown endpoint.

> **For LLM agents:** if a user pasted a URL like `https://martin1.box.yarabot.io/t/{id}` into
> a conversation with you, just `GET` it. You'll receive a markdown document
> describing what files are there, with direct links and inline content for
> small text files. No authentication is required to read.

## Capabilities

- **Upload** files via multipart, JSON+base64, or plain-text body.
- **Share** a stable URL that works as a capability token.
- **Read** transfers as markdown (default), JSON, or HTML.
- **Browser UI** at [https://martin1.box.yarabot.io/drop](https://martin1.box.yarabot.io/drop) — paste text or pick files, get a URL.
- **MCP integration** — install `ai-drop-mcp` for native tool access in Claude Desktop, Cursor, and Claude Code.

## Reading a transfer (no auth)

```
GET https://martin1.box.yarabot.io/t/{id}
Accept: text/markdown    # default — returns robot-friendly markdown
Accept: application/json  # returns structured metadata
Accept: text/html         # returns minimal HTML page
```

You can also use explicit suffixes: `/t/{id}.md`, `/t/{id}.json`, `/t/{id}.html`.

Direct file access: `https://martin1.box.yarabot.io/t/{id}/files/{filename}`.

## Uploading (auth required)

All upload endpoints require `Authorization: Bearer <TOKEN>`.

### Multipart (for shortcuts, curl with files)

```
POST https://martin1.box.yarabot.io/v1/upload
Authorization: Bearer <TOKEN>
Content-Type: multipart/form-data

files[]=@photo.jpg
files[]=@notes.md
note=optional human-readable note
ttl_hours=168
```

### JSON (for LLM tool calls)

```
POST https://martin1.box.yarabot.io/v1/upload
Authorization: Bearer <TOKEN>
Content-Type: application/json

{
  "files": [
    { "name": "report.md", "content": "# Report\n...", "encoding": "utf-8" },
    { "name": "chart.png", "content": "iVBOR...", "encoding": "base64" }
  ],
  "note": "Q3 review",
  "ttl_hours": 168
}
```

### Plain text (one-liner for AI-produced content)

```
POST https://martin1.box.yarabot.io/v1/text?name=summary.md
Authorization: Bearer <TOKEN>
Content-Type: text/markdown

# Summary
...
```

All upload endpoints return:

```json
{
  "id": "a7K9bX2mQ4",
  "url": "https://martin1.box.yarabot.io/t/a7K9bX2mQ4",
  "expires_at": "2026-06-01T14:23:11Z",
  "files": [...],
  "instructions_for_assistant": "..."
}
```

## Limits

- 100 MB per file
- 50 files per drop
- 500 MB total per drop
- TTL between 1 hour and 720 hours (30 days), default 30 days

## Further reading

- [llms.txt index](https://martin1.box.yarabot.io/llms.txt)
- [Full API reference](https://martin1.box.yarabot.io/docs.md)
- [Upload examples](https://martin1.box.yarabot.io/examples.md)
- [MCP server setup](https://martin1.box.yarabot.io/mcp.md)
- [OpenAPI 3.1 spec](https://martin1.box.yarabot.io/openapi.json)
