# The app contract

URL: https://getflowing.ai/docs/reference/app-contract

Every number a GetFlowing app is held to, in one table: the port, the health check, the start time, memory, build time and what the app can reach.

Every app on GetFlowing is held to these numbers, whichever way it is built. [What every app needs](https://getflowing.ai/docs/build/app-requirements) explains each one.

| What | Value |
| --- | --- |
| Listen on | `0.0.0.0`, on the port in `PORT` |
| `PORT` | 8080 |
| Health check | `GET /`, or the path set in the app's **Settings**, under **Health check** |
| Healthy answer | A status from 200 to 399 |
| Answer within | 5 seconds |
| Checked every | 10 seconds |
| Healthy after | 2 healthy answers in a row |
| Out of service after | 3 failed answers in a row |
| Time to start | 60 seconds |
| Memory | 512 MB |
| Image build | Within 20 minutes |
| Configuration | Environment variables, set in the app's Settings, under Variables |
| Managed database | Its connection string in `DATABASE_URL`, as a secret |

## What your app can reach

The app can reach anything over HTTPS and HTTP, and its own database, cache and mail servers on their usual ports. Port 25 is closed, so send mail through a mail provider.
