---
title: "Internal Cron Job Daily"
method: POST
path: "/internal/cron_job_daily"
---

# Internal Cron Job Daily

`POST /internal/cron_job_daily`

## Request

- Base URL: `https://api.tellers.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tellers.ai/internal/cron_job_daily`
- Auth: none declared

Internal-only: the single entry point for daily scheduled work.

Called once a day by the ``cron-job-daily`` CronJob (see the api-chart
templates). Today its only step is the billing maintenance described on
``daily_cron``; a new daily job belongs here rather than getting its own
endpoint and CronJob, so the cluster keeps one daily schedule to reason
about.

Steps run in order and share the api pod's DB, so a step that raises fails
the CronJob — which is the signal we want — and stops the ones after it.

Expose this router only via an internal ingress/LB (VPC-only).

## Response `200`

Successful Response

- DailyCronResponse
  - `grants_expired` integer, required
  - `yearly_grants_applied` integer, required
  - `storage_quota_resets` integer, required
  - `enterprise_user_subscriptions_ended` integer, required

---

[API](https://skmtc.dev/tellers/apis/tellers-api.md) - [All operations](https://skmtc.dev/tellers/apis/tellers-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tellers/apis/tellers-api/revisions/fdaa0fa44a26?raw)
