Criar webhook de deploy
curl --request POST \
--url https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"owner": "<string>",
"repo_name": "<string>",
"repo_id": "<string>",
"account_id": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
owner: '<string>',
repo_name: '<string>',
repo_id: '<string>',
account_id: '<string>'
})
};
fetch('https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook"
payload = {
"owner": "<string>",
"repo_name": "<string>",
"repo_id": "<string>",
"account_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook"
payload := strings.NewReader("{\n \"owner\": \"<string>\",\n \"repo_name\": \"<string>\",\n \"repo_id\": \"<string>\",\n \"account_id\": \"<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))
}{
"response": {
"url": "https://api.vertracloud.app/v1/apps/123/deploys/receiver/webhook"
}
}
Deploys
Criar webhook de deploy
Cria um webhook de deploy para um repositório do GitHub, para que um push na branch escolhida faça o deploy da aplicação.
POST
/
v1
/
apps
/
{app_id}
/
deploys
/
webhook
Criar webhook de deploy
curl --request POST \
--url https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"owner": "<string>",
"repo_name": "<string>",
"repo_id": "<string>",
"account_id": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
owner: '<string>',
repo_name: '<string>',
repo_id: '<string>',
account_id: '<string>'
})
};
fetch('https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook"
payload = {
"owner": "<string>",
"repo_name": "<string>",
"repo_id": "<string>",
"account_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook"
payload := strings.NewReader("{\n \"owner\": \"<string>\",\n \"repo_name\": \"<string>\",\n \"repo_id\": \"<string>\",\n \"account_id\": \"<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))
}{
"response": {
"url": "https://api.vertracloud.app/v1/apps/123/deploys/receiver/webhook"
}
}
string
obrigatório
O ID da aplicação onde o webhook será criado.
string
obrigatório
O proprietário do repositório no GitHub.
string
obrigatório
O nome do repositório no GitHub.
string
obrigatório
O ID do repositório no GitHub. Ele é conferido com o próprio repositório: se não corresponder a
owner e repo_name, a requisição falha com VALIDATION_ERROR (400) e details.path igual a repo_id.string
obrigatório
O ID da conta no GitHub.
string
A branch do Git que dispara o deploy (por exemplo
develop ou release/1.2). Opcional: sem ela, um push para main ou master faz o deploy. Com ela, somente um push para essa branch faz o deploy, e um push para qualquer outra branch é ignorado. A entrega continua sendo respondida com 200.Chamar esta rota de novo para uma aplicação que já tem um webhook substitui a branch: envie outra branch para trocá-la, ou omita o campo para voltar para main ou master. Um nome de branch inválido falha com VALIDATION_ERROR (400) e details.path igual a branch.Resposta
{
"response": {
"url": "https://api.vertracloud.app/v1/apps/123/deploys/receiver/webhook"
}
}
Respostas de erro
string
Códigos de erro possíveis:
AUTH_TOKEN_MISSING,API_KEY_INVALID,SESSION_REVOKED: o cabeçalhoAuthorizationestá ausente, a chave de API é inválida ou a sessão do painel foi revogada (401).API_KEY_IP_DENIED,API_KEY_SCOPE_DENIED: a chave de API está sendo usada a partir de um IP fora da sua lista de permissões, ou não tem o escopo que a rota exige (403).ACCESS_DENIED: o recurso pertence a outra conta, ou você não tem a permissão do workspace para ele (403).PLAN_RESTRICTED_FEATURE: o plano do usuário não oferece suporte a deploy automático.INSTALLATION_NOT_FOUND: instalação do GitHub não encontrada para o usuário, ou o repositório não é um dos repositórios que essa instalação pode acessar (404).IMAGE_APP_CODE_NOT_APPLICABLE: a aplicação roda uma imagem Docker personalizada, que não tem deploy automático a partir do GitHub (409). Vincule a imagem ao GitHub em vez disso.FETCH_ZIP_ERROR: o GitHub não pôde ser acessado, ou estava limitando requisições enquanto o repositório era verificado (502). Tente novamente em alguns minutos.VALIDATION_ERROR: o corpo da requisição falhou na validação, por exemplo umowner,repo_name,repo_idoubranchinválido (400).details.pathindica o campo.
string
Uma mensagem descritiva com detalhes adicionais sobre o erro.
{
"code": "INSTALLATION_NOT_FOUND"
}
Última modificação em 28 de outubro de 2026