curl --request POST \
--url https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"schedule": "<string>",
"target": {
"kind": "http",
"path": "<string>",
"body": "<unknown>"
},
"timezone": "<string>",
"enabled": true,
"retry": {
"maxAttempts": 123,
"initialDelaySeconds": 123,
"maxDelaySeconds": 123
},
"timeoutSeconds": 420
}
'import requests
url = "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons"
payload = {
"name": "<string>",
"schedule": "<string>",
"target": {
"kind": "http",
"path": "<string>",
"body": "<unknown>"
},
"timezone": "<string>",
"enabled": True,
"retry": {
"maxAttempts": 123,
"initialDelaySeconds": 123,
"maxDelaySeconds": 123
},
"timeoutSeconds": 420
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
schedule: '<string>',
target: {kind: 'http', path: '<string>', body: JSON.stringify('<unknown>')},
timezone: '<string>',
enabled: true,
retry: {maxAttempts: 123, initialDelaySeconds: 123, maxDelaySeconds: 123},
timeoutSeconds: 420
})
};
fetch('https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'schedule' => '<string>',
'target' => [
'kind' => 'http',
'path' => '<string>',
'body' => '<unknown>'
],
'timezone' => '<string>',
'enabled' => true,
'retry' => [
'maxAttempts' => 123,
'initialDelaySeconds' => 123,
'maxDelaySeconds' => 123
],
'timeoutSeconds' => 420
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"schedule\": \"<string>\",\n \"target\": {\n \"kind\": \"http\",\n \"path\": \"<string>\",\n \"body\": \"<unknown>\"\n },\n \"timezone\": \"<string>\",\n \"enabled\": true,\n \"retry\": {\n \"maxAttempts\": 123,\n \"initialDelaySeconds\": 123,\n \"maxDelaySeconds\": 123\n },\n \"timeoutSeconds\": 420\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"schedule\": \"<string>\",\n \"target\": {\n \"kind\": \"http\",\n \"path\": \"<string>\",\n \"body\": \"<unknown>\"\n },\n \"timezone\": \"<string>\",\n \"enabled\": true,\n \"retry\": {\n \"maxAttempts\": 123,\n \"initialDelaySeconds\": 123,\n \"maxDelaySeconds\": 123\n },\n \"timeoutSeconds\": 420\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"schedule\": \"<string>\",\n \"target\": {\n \"kind\": \"http\",\n \"path\": \"<string>\",\n \"body\": \"<unknown>\"\n },\n \"timezone\": \"<string>\",\n \"enabled\": true,\n \"retry\": {\n \"maxAttempts\": 123,\n \"initialDelaySeconds\": 123,\n \"maxDelaySeconds\": 123\n },\n \"timeoutSeconds\": 420\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"environment": "<string>",
"schedule": "<string>",
"timezone": "<string>",
"enabled": true,
"catchUp": false,
"target": {
"kind": "http",
"path": "<string>",
"method": "POST",
"body": "<unknown>"
},
"retry": {
"maxAttempts": 123,
"initialDelaySeconds": 123,
"maxDelaySeconds": 123
},
"concurrencyPolicy": "allow",
"timeoutSeconds": 420,
"lastRunAt": "2023-11-07T05:31:56Z",
"nextRunAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}Create
Create a timezone-aware cron job. Missed schedules are skipped.
curl --request POST \
--url https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"schedule": "<string>",
"target": {
"kind": "http",
"path": "<string>",
"body": "<unknown>"
},
"timezone": "<string>",
"enabled": true,
"retry": {
"maxAttempts": 123,
"initialDelaySeconds": 123,
"maxDelaySeconds": 123
},
"timeoutSeconds": 420
}
'import requests
url = "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons"
payload = {
"name": "<string>",
"schedule": "<string>",
"target": {
"kind": "http",
"path": "<string>",
"body": "<unknown>"
},
"timezone": "<string>",
"enabled": True,
"retry": {
"maxAttempts": 123,
"initialDelaySeconds": 123,
"maxDelaySeconds": 123
},
"timeoutSeconds": 420
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
schedule: '<string>',
target: {kind: 'http', path: '<string>', body: JSON.stringify('<unknown>')},
timezone: '<string>',
enabled: true,
retry: {maxAttempts: 123, initialDelaySeconds: 123, maxDelaySeconds: 123},
timeoutSeconds: 420
})
};
fetch('https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'schedule' => '<string>',
'target' => [
'kind' => 'http',
'path' => '<string>',
'body' => '<unknown>'
],
'timezone' => '<string>',
'enabled' => true,
'retry' => [
'maxAttempts' => 123,
'initialDelaySeconds' => 123,
'maxDelaySeconds' => 123
],
'timeoutSeconds' => 420
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"schedule\": \"<string>\",\n \"target\": {\n \"kind\": \"http\",\n \"path\": \"<string>\",\n \"body\": \"<unknown>\"\n },\n \"timezone\": \"<string>\",\n \"enabled\": true,\n \"retry\": {\n \"maxAttempts\": 123,\n \"initialDelaySeconds\": 123,\n \"maxDelaySeconds\": 123\n },\n \"timeoutSeconds\": 420\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"schedule\": \"<string>\",\n \"target\": {\n \"kind\": \"http\",\n \"path\": \"<string>\",\n \"body\": \"<unknown>\"\n },\n \"timezone\": \"<string>\",\n \"enabled\": true,\n \"retry\": {\n \"maxAttempts\": 123,\n \"initialDelaySeconds\": 123,\n \"maxDelaySeconds\": 123\n },\n \"timeoutSeconds\": 420\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/crons")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"schedule\": \"<string>\",\n \"target\": {\n \"kind\": \"http\",\n \"path\": \"<string>\",\n \"body\": \"<unknown>\"\n },\n \"timezone\": \"<string>\",\n \"enabled\": true,\n \"retry\": {\n \"maxAttempts\": 123,\n \"initialDelaySeconds\": 123,\n \"maxDelaySeconds\": 123\n },\n \"timeoutSeconds\": 420\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"environment": "<string>",
"schedule": "<string>",
"timezone": "<string>",
"enabled": true,
"catchUp": false,
"target": {
"kind": "http",
"path": "<string>",
"method": "POST",
"body": "<unknown>"
},
"retry": {
"maxAttempts": 123,
"initialDelaySeconds": 123,
"maxDelaySeconds": 123
},
"concurrencyPolicy": "allow",
"timeoutSeconds": 420,
"lastRunAt": "2023-11-07T05:31:56Z",
"nextRunAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The organization's id (UUID) or slug — either form is accepted.
The project's id (UUID) or slug — either form is accepted.
Query Parameters
Environment slug to scope this operation to. Defaults to "production". An environment that does not exist on the project answers 404. The cron job is created in the addressed environment.
^[a-z][a-z0-9-]{0,38}$Body
^[a-z][a-z0-9-]{1,61}$Exactly one same-environment target: a signed project-relative HTTP invocation or a queue publication.
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes
allow, skip, replace Target timeout in seconds, bounded below the durable execution lease.
1 <= x <= 840Response
Cron job created.
^[a-z][a-z0-9-]{1,61}$Five-field cron expression.
IANA timezone name. Defaults to UTC.
Missed invocations are skipped; catch-up is not performed at launch.
false Exactly one same-environment target: a signed project-relative HTTP invocation or a queue publication.
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes
allow, skip, replace Target timeout in seconds, bounded below the durable execution lease.
1 <= x <= 840