Assign Domain to App
curl --request POST \
--url https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appId": "<string>"
}
'import requests
url = "https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign"
payload = { "appId": "<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({appId: '<string>'})
};
fetch('https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign', 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://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign",
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([
'appId' => '<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://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign"
payload := strings.NewReader("{\n \"appId\": \"<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://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"appId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign")
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 \"appId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"appId": "<string>",
"createdAt": "<string>",
"domainId": "<string>",
"id": "<string>",
"projectId": "<string>",
"updatedAt": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Custom Domains
Assign Domain to App
Assign a validated custom domain to a specific app.
POST
/
v2
/
projects
/
{project_id}
/
domains
/
{domain_id}
/
assign
Assign Domain to App
curl --request POST \
--url https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appId": "<string>"
}
'import requests
url = "https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign"
payload = { "appId": "<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({appId: '<string>'})
};
fetch('https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign', 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://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign",
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([
'appId' => '<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://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign"
payload := strings.NewReader("{\n \"appId\": \"<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://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"appId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.cerebrium.ai/v2/projects/{project_id}/domains/{domain_id}/assign")
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 \"appId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"appId": "<string>",
"createdAt": "<string>",
"domainId": "<string>",
"id": "<string>",
"projectId": "<string>",
"updatedAt": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Service Account Token authentication. To authenticate API requests:
-
Create a Service Account Token:
- Go to the Cerebrium Dashboard and open the API Keys page
- Click Create Service Account, name it (e.g., "GitHub Actions CI/CD"), choose an expiry date, and click Create
- Copy the token generated for the desired service account
-
Use the Token: Include the service account token in the Authorization header of API requests:
Authorization: Bearer <your-service-account-token> -
Best Practices:
- Create separate service accounts for different environments (dev, staging, prod)
- Store tokens securely as secrets in consuming applications or workflows
- Set appropriate expiry dates and rotate tokens regularly
- Never commit tokens to source control
For CI/CD integration examples, see the CI/CD documentation.
Body
application/json
The ID of the app to assign the domain to.
Response
The mapping created between the domain and the app.
ID of the app the domain is assigned to.
Timestamp when the mapping was created (RFC 3339).
ID of the custom domain.
Unique identifier of the domain-to-app mapping.
ID of the project the domain belongs to.
Timestamp when the mapping was last updated (RFC 3339).