---
topic: logs
connector: "read_app · action \"logs\""
api: "GET https://ship.embarko.ai/apps/{app-name}/logs"
requires: [status]
---

[← Guide home](https://embarko.ai/docs)

# Logs

**On this page:** With the connector, Over HTTP, Examples, Limits, What to tell the person

> Plain words unless the person is a developer. Never invent a link, name or code. [Rules](https://embarko.ai/docs/prerequisites) Needs first: [status](https://embarko.ai/docs/status).

The recent output of a server app. If the latest build failed, you get that build's log, which names the failing command.

**Connector:** read_app · action "logs"

**Done when:** You found the cause, fixed it, redeployed, and the app is live.

**With the connector**

1. Call read_app { action: "logs", appName, stream: "stderr" }.

**Over HTTP**

1. GET https://ship.embarko.ai/apps/{app-name}/logs?stream=stderr, with the token once the app is claimed.

**Example: Runtime logs**

```bash
curl -sS 'https://ship.embarko.ai/apps/my-app/logs?stream=stderr'
```

Reply 200:

```json
{"available":true,"stream":"stderr","logs":"...tail of recent output..."}
```

**Limits**

- About the last 8KB; a snapshot, not a stream.
- After a failed build the reply has source "build" and the build output.
- Static sites have no logs (available: false).

**What to tell the person**

- failed: "It didn't go live because of a problem in the code. I'm fixing it now."

**Next:** Fix what the log names and redeploy. Do not paste the log to the person unless they ask.

**Related:** [deploy](https://embarko.ai/docs/deploy) · [rollback](https://embarko.ai/docs/rollback) · [feedback](https://embarko.ai/docs/feedback)

---

[Guide home](https://embarko.ai/docs) · JSON: add .json