Projects are the unit of work in Meridian - configuration, quotas, regions, and lifecycle.
A project is the container for one integration workload. Everything you configure - webhook endpoints, sync jobs, connections - lives inside a project, and every API call resolves to one.
{
"id": "prj_9kLm2xVb7nQe",
"object": "project",
"name": "billing-sync",
"region": "us-east",
"environment": "test",
"status": "active",
"created_at": "2026-08-14T09:31:07Z",
"updated_at": "2026-09-02T14:12:44Z"
}| Field | Notes |
|---|---|
id | Immutable prj_ identifier used in API paths |
name | Display name, unique within the workspace |
region | us-east, eu-west, or ap-south - set at creation, immutable |
status | active, suspended, or archived |
Region determines where project data is stored and processed. Pick the region closest to your infrastructure or required by data-residency policy. Because region is immutable, changing it means creating a new project and migrating configuration.
Quotas apply per project per environment:
| Resource | test | live |
|---|---|---|
| API requests | 600/min | 5,000/min |
| Webhook endpoints | 10 | 100 |
| Event retention | 7 days | 90 days |
| Concurrent syncs | 2 | 25 |
Higher live limits are available on paid plans - see Production setup.
billing-sync, slack-alerts, warehouse-export.Projects move through three states:
404 on all endpoints.curl -X DELETE https://api.meridian.dev/v2/projects/prj_9kLm2xVb7nQe \
-H "Authorization: Bearer $MERIDIAN_API_KEY"Archiving is reversible for 30 days via POST /projects/:id/restore. After that, deletion is permanent and IDs are never reused.
The projects resource exposes the standard five operations: list, create, get, update, and delete.