Create
curl --request POST \
--url https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceKey": "<string>",
"gitRepo": "<string>",
"gitRef": "<string>",
"environment": "<string>"
}
'import requests
url = "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys"
payload = {
"sourceKey": "<string>",
"gitRepo": "<string>",
"gitRef": "<string>",
"environment": "<string>"
}
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({
sourceKey: '<string>',
gitRepo: '<string>',
gitRef: '<string>',
environment: '<string>'
})
};
fetch('https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys', 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}/deploys",
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([
'sourceKey' => '<string>',
'gitRepo' => '<string>',
'gitRef' => '<string>',
'environment' => '<string>'
]),
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}/deploys"
payload := strings.NewReader("{\n \"sourceKey\": \"<string>\",\n \"gitRepo\": \"<string>\",\n \"gitRef\": \"<string>\",\n \"environment\": \"<string>\"\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}/deploys")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sourceKey\": \"<string>\",\n \"gitRepo\": \"<string>\",\n \"gitRef\": \"<string>\",\n \"environment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys")
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 \"sourceKey\": \"<string>\",\n \"gitRepo\": \"<string>\",\n \"gitRef\": \"<string>\",\n \"environment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "queued"
}deploys
Create
Queue a new deployment of the project from a git ref or an uploaded source archive (sourceKey). Defaults to the production environment; custom environments deploy to their own managed subdomain ("https://<project-slug>-<environment>.korve.app").
POST
/
v1
/
orgs
/
{orgId}
/
projects
/
{projectId}
/
deploys
Create
curl --request POST \
--url https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceKey": "<string>",
"gitRepo": "<string>",
"gitRef": "<string>",
"environment": "<string>"
}
'import requests
url = "https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys"
payload = {
"sourceKey": "<string>",
"gitRepo": "<string>",
"gitRef": "<string>",
"environment": "<string>"
}
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({
sourceKey: '<string>',
gitRepo: '<string>',
gitRef: '<string>',
environment: '<string>'
})
};
fetch('https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys', 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}/deploys",
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([
'sourceKey' => '<string>',
'gitRepo' => '<string>',
'gitRef' => '<string>',
'environment' => '<string>'
]),
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}/deploys"
payload := strings.NewReader("{\n \"sourceKey\": \"<string>\",\n \"gitRepo\": \"<string>\",\n \"gitRef\": \"<string>\",\n \"environment\": \"<string>\"\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}/deploys")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sourceKey\": \"<string>\",\n \"gitRepo\": \"<string>\",\n \"gitRef\": \"<string>\",\n \"environment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.korve.dev/v1/orgs/{orgId}/projects/{projectId}/deploys")
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 \"sourceKey\": \"<string>\",\n \"gitRepo\": \"<string>\",\n \"gitRef\": \"<string>\",\n \"environment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "queued"
}Authorizations
apiKeysession
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.
Body
application/json
Key of an uploaded source archive from deploys.createSource. Builds that uploaded source instead of a repository; takes precedence over gitRepo.
Source repository as "owner/repo".
Pattern:
^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$Branch, tag, or commit. Defaults to main.
Environment to deploy to. Defaults to "production". An environment that does not exist on the project answers 404. Preview deployments are created from pull requests, never here.
Pattern:
^[a-z][a-z0-9-]{0,38}$