API reference / Projects

Projects

A project is the top-level container for your jobs, schedules, runs, webhook endpoints, and API keys. Each project has a development environment (keys beginning tnd_dev_) and a production environment (keys beginning tnd_live_), and the two cannot see each other's resources. Plan limits such as run quota, rate limit, and concurrency apply per project.

The project object

FieldTypeDescription
idstringUnique project identifier, prefixed prj_. Immutable.
namestringDisplay name of the project.
planstringCurrent plan: hobby, pro, scale, or enterprise.
default_regionstringRegion used when a job does not specify one. Defaults to us-east.
limitsobjectPlan limits: requests_per_minute, concurrency, and schedules.
usageobjectCurrent billing-period figures: runs_this_period and runs_included.
api_versionstringAPI version the project is pinned to, for example 2026-03-01.
created_atstring (ISO 8601)Timestamp of project creation, in UTC.

#Retrieve the current project

GET /v2/project

Returns the project that owns the API key used for the request, including its plan, limits, and usage for the current billing period. It is a cheap way to confirm which project and environment a key belongs to. No parameters are required.

Shell
curl https://api.tendcomputer.com/v2/project \
  -H "Authorization: Bearer tnd_live_8fQ2xLm9Zc41"
JSON
{
  "id": "prj_01HYQ3T9D5",
  "name": "Example Shop Backend",
  "plan": "pro",
  "default_region": "us-east",
  "limits": {
    "requests_per_minute": 600,
    "concurrency": 50,
    "schedules": 250
  },
  "usage": {
    "runs_this_period": 184209,
    "runs_included": 500000
  },
  "api_version": "2026-03-01",
  "created_at": "2025-02-18T19:12:40Z"
}

#Update the current project

PATCH /v2/project

Updates mutable settings of the project that owns the API key. Changing default_region affects only jobs created afterward; queued jobs stay where they are. Hobby projects can only use us-east, and other values return invalid_request.

ParameterInTypeRequiredDescription
namebodystringnoNew display name, up to 80 characters.
default_regionbodystringnoOne of us-east, us-west, eu-central, or ap-southeast.
Shell
curl -X PATCH https://api.tendcomputer.com/v2/project \
  -H "Authorization: Bearer tnd_live_8fQ2xLm9Zc41" \
  -H "Content-Type: application/json" \
  -d '{"default_region":"eu-central"}'
JSON
{
  "id": "prj_01HYQ3T9D5",
  "name": "Example Shop Backend",
  "plan": "pro",
  "default_region": "eu-central",
  "limits": {
    "requests_per_minute": 600,
    "concurrency": 50,
    "schedules": 250
  },
  "usage": {
    "runs_this_period": 184209,
    "runs_included": 500000
  },
  "api_version": "2026-03-01",
  "created_at": "2025-02-18T19:12:40Z"
}

#Retrieve usage for a period

GET /v2/project/usage

Returns run counts for the project, broken down by day, so you can watch consumption against your monthly quota. Hobby projects stop at 10,000 runs and receive quota_exceeded beyond that, while paid plans continue and are billed for overage. Omit period to get the current billing period.

ParameterInTypeRequiredDescription
periodquerystringnoBilling period in YYYY-MM format. Defaults to the current period.
regionquerystringnoRestrict the breakdown to a single region.
Shell
curl "https://api.tendcomputer.com/v2/project/usage?period=2026-04" \
  -H "Authorization: Bearer tnd_live_8fQ2xLm9Zc41"
JSON
{
  "period": "2026-04",
  "runs_total": 371844,
  "runs_included": 500000,
  "overage_runs": 0,
  "by_day": [
    { "date": "2026-04-01", "runs": 11902 },
    { "date": "2026-04-02", "runs": 12377 },
    { "date": "2026-04-03", "runs": 12140 }
  ]
}