TimeTriggers API

v1.0.0

Schedule HTTP requests to fire at a specific time or on a recurring cron. Triggers are authenticated with an `ttr-api-key` header; dashboard endpoints (`/keys`, `/jobs`, `/rate-limits`) use session cookies issued by `/auth/*`.

Generated from the live `HttpApi` definition. Reflects the current shape of the backend at build time.

triggers

delete
/canceltriggers.cancel

Headers

  • ttr-api-keystringrequired
  • ttr-trigger-idany
  • ttr-custom-keyany

Responses

204<No Content>
400BadRequest
BadRequest
401Unauthorized
Unauthorized
404NotFound
NotFound
410Gone
Gone
getpostputpatchdelete
/scheduletriggers.schedule

Headers

  • ttr-api-keystringrequired
  • ttr-urlstringrequired
  • ttr-scheduled-atany
  • ttr-trigger-idany
  • ttr-custom-keyany
  • ttr-titleany
  • ttr-tagsany
  • ttr-run-missedany

Responses

200ScheduleResult
ScheduleResult
400BadRequest
BadRequest
401Unauthorized
Unauthorized
402QuotaExceeded
QuotaExceeded
404NotFound
NotFound
410Gone
Gone

keys

delete
/keys/{id}keys.deleteKey

Path parameters

  • idstringrequired

Responses

200OkResponse
OkResponse
400BadRequest
401Unauthorized
Unauthorized
404NotFound
NotFound

jobs

get
/executionsjobs.listExecutions

Query parameters

  • jobIdany
  • customKeyany
  • jobStatusany
  • executionStatusany
  • httpStatusany
  • limitany
  • offsetany

Responses

200ListDashboardExecutionsResponse
ListDashboardExecutionsResponse
400BadRequest
401Unauthorized
Unauthorized
get
/jobsjobs.listJobs

Query parameters

  • statusany
  • limitany
  • offsetany
  • idany

Responses

200ListJobsResponse
ListJobsResponse
400BadRequest
401Unauthorized
Unauthorized
post
/jobs/{id}/executionsjobs.replayJob

Path parameters

  • idstringrequired

Request body

  • triggeredBy?:
    one of: "replay" | "retry"
    | null

Responses

200OkResponse
OkResponse
400BadRequest
BadRequest
401Unauthorized
Unauthorized
404NotFound
NotFound

rateLimits

post
/rate-limitsrateLimits.createRateLimit

Request body

  • tag*:string
  • maxPerSecond?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerMinute?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerHour?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerDay?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerWeek?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerMonth?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null

Responses

200CreateRateLimitResponse
CreateRateLimitResponse
400BadRequest
BadRequest
401Unauthorized
Unauthorized
put
/rate-limits/{id}rateLimits.updateRateLimit

Path parameters

  • idstringrequired

Request body

  • tag?:string | null
  • maxPerSecond?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerMinute?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerHour?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerDay?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerWeek?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null
  • maxPerMonth?:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
    | null

Responses

200UpdateRateLimitResponse
UpdateRateLimitResponse
400BadRequest
BadRequest
401Unauthorized
Unauthorized
404NotFound
NotFound
delete
/rate-limits/{id}rateLimits.deleteRateLimit

Path parameters

  • idstringrequired

Responses

200OkResponse
OkResponse
400BadRequest
401Unauthorized
Unauthorized
404NotFound
NotFound

Schemas

ScheduleResult

  • triggerId*:string
  • scheduledAt*:string
  • operation*:
    one of: "schedule" | "reschedule"
  • kind*:
    one of: "job" | "generator"
  • monthQuotaRemaining*:
    one of: number | "NaN" | "Infinity" | "-Infinity"

BadRequest

  • _tag*:"BadRequest"
  • message*:string

Unauthorized

  • _tag*:"Unauthorized"
  • message*:string

NotFound

  • _tag*:"NotFound"
  • message*:string

QuotaExceeded

  • _tag*:"QuotaExceeded"
  • message*:string

Gone

  • _tag*:"Gone"
  • message*:string

JobDeclaration

  • customKey?:string | null
  • title?:string | null
  • scheduledAt?:string | null
  • url*:string
  • method?:string | null
  • headers?:object | null
  • body?:
    one of:
    • _tag*:"base64"
    • value*:string
    |
    • _tag*:"text"
    • value*:string
    | any
    | null
  • tags?:string[] | null

DeclareRequest

DeclareSummary

  • unchanged*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • added*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • skipped*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • updated*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • cancelled*:
    one of: number | "NaN" | "Infinity" | "-Infinity"

DeclareOperationResult

  • operation*:
    one of: "unchanged" | "added" | "skipped" | "updated" | "cancelled"
  • customKey*:string | null
  • kind*:
    one of: "job" | "generator"
  • id*:string
  • changedFields?:string[] | null

DeclareResponse

BulkRequest

  • runMissed?:boolean | null
  • upserts?:JobDeclaration[] | null
  • cancels?:
    one of: string |
    • customKey*:string
    |
    • id*:string
    |
    • tag*:string
    []
    | null

BulkResponse

ApiKey

  • id*:string
  • projectId*:string
  • name*:string
  • keyValue*:string
  • createdAt*:string

ListKeysResponse

CreateKeyResponse

OkResponse

  • ok*:boolean

DashboardJob

  • id*:string
  • projectId*:string
  • projectSlug*:string
  • customKey*:string | null
  • title*:string | null
  • status*:
    one of: "registered" | "queued" | "running" | "completed" | "cancelled" | "skipped"
  • scheduledAt*:string
  • httpUrl*:string
  • httpMethod*:string
  • httpHeaders*:object
  • registeredAt*:string
  • cancelledAt*:string | null
  • queuedAt*:string | null
  • startedAt*:string | null
  • completedAt*:string | null
  • responseStatus*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • errorMessage*:string | null
  • rateLimitedAt*:string | null
  • rateLimitedUntil*:string | null
  • rateLimitedTags*:string[]
  • attemptNumber*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • generatorId*:string | null
  • generatorCustomKey*:string | null
  • generatorStatus*:string | null
  • tags*:string[]

ListJobsResponse

  • jobs*:DashboardJob[]
  • total*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • limit*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • offset*:
    one of: number | "NaN" | "Infinity" | "-Infinity"

Execution

  • id*:string
  • jobId*:string
  • attemptNumber*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • triggeredBy*:
    one of: "scheduler" | "retry" | "replay"
  • status*:
    one of: "planned" | "started" | "complete" | "cancelled"
  • plannedAt*:string
  • startedAt*:string | null
  • completedAt*:string | null
  • responseStatus*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • responseHeaders*:object | null
  • responseBody*:string | null
  • responseSize*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • errorMessage*:string | null
  • rateLimitedAt*:string | null
  • rateLimitedUntil*:string | null
  • rateLimitedTags*:string[]

ListExecutionsResponse

DashboardExecution

  • id*:string
  • jobId*:string
  • attemptNumber*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • triggeredBy*:
    one of: "scheduler" | "retry" | "replay"
  • status*:
    one of: "planned" | "started" | "complete" | "cancelled"
  • plannedAt*:string
  • startedAt*:string | null
  • completedAt*:string | null
  • responseStatus*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • responseSize*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • errorMessage*:string | null
  • rateLimitedAt*:string | null
  • rateLimitedUntil*:string | null
  • rateLimitedTags*:string[]
  • jobCustomKey*:string | null
  • jobTitle*:string | null
  • jobStatus*:
    one of: "registered" | "queued" | "running" | "completed" | "cancelled" | "skipped"
  • jobHttpUrl*:string
  • jobHttpMethod*:string
  • projectSlug*:string

ListDashboardExecutionsResponse

  • executions*:DashboardExecution[]
  • total*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • limit*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
  • offset*:
    one of: number | "NaN" | "Infinity" | "-Infinity"

RateLimit

  • id*:string
  • projectId*:string
  • tag*:string
  • maxPerSecond*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • maxPerMinute*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • maxPerHour*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • maxPerDay*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • maxPerWeek*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • maxPerMonth*:
    one of: number | "NaN" | "Infinity" | "-Infinity"
    | null
  • createdAt*:string
  • updatedAt*:string

ListRateLimitsResponse

CreateRateLimitResponse

UpdateRateLimitResponse