Skip to main content
PUT
/
projects
/
{slug}
/
url
Update the project URL
curl --request PUT \
  --url https://faces.app/api/v1/projects/{slug}/url \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "path": "<string>",
  "userSubdomainId": "<string>",
  "userDomainId": "<string>"
}
'
import requests

url = "https://faces.app/api/v1/projects/{slug}/url"

payload = {
"path": "<string>",
"userSubdomainId": "<string>",
"userDomainId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({path: '<string>', userSubdomainId: '<string>', userDomainId: '<string>'})
};

fetch('https://faces.app/api/v1/projects/{slug}/url', 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://faces.app/api/v1/projects/{slug}/url",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'path' => '<string>',
'userSubdomainId' => '<string>',
'userDomainId' => '<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://faces.app/api/v1/projects/{slug}/url"

payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"userSubdomainId\": \"<string>\",\n \"userDomainId\": \"<string>\"\n}")

req, _ := http.NewRequest("PUT", 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.put("https://faces.app/api/v1/projects/{slug}/url")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\",\n \"userSubdomainId\": \"<string>\",\n \"userDomainId\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://faces.app/api/v1/projects/{slug}/url")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\",\n \"userSubdomainId\": \"<string>\",\n \"userDomainId\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "success": true,
  "current": {
    "hostname": "<string>",
    "path": "<string>",
    "subdomainId": "<string>",
    "domainId": "<string>",
    "projectSubdomainId": "<string>",
    "projectDomainId": "<string>"
  }
}
{
"error": "<string>",
"hint": "<string>"
}
{
"error": "<string>",
"hint": "<string>"
}
{
"error": "<string>",
"hint": "<string>"
}
{
"error": "<string>",
"hint": "<string>"
}

Authorizations

Authorization
string
header
required

API key with "faces_" prefix. Create one at Settings > Developers.

Path Parameters

slug
string
required

Body

application/json
path
string
required

The path segment after the hostname.

userSubdomainId
string

ID of the subdomain to host on.

userDomainId
string

ID of the custom domain to host on.

Response

URL updated

success
boolean
required
current
object
required