curl
curl https://app.cubehosting.com.br/api/templatesconst API = 'https://app.cubehosting.com.br/api';
const headers = { Authorization: `Bearer ${process.env.CUBE_API_KEY}` };
const res = await fetch(`${API}/templates`);
const { templates } = await res.json();
for (const t of templates) console.log(t.id, t.memoryMb, t.variables.map((v) => v.name));import os
import requests
API = "https://app.cubehosting.com.br/api"
headers = {"Authorization": f"Bearer {os.environ['CUBE_API_KEY']}"}
r = requests.get(f"{API}/templates", timeout=30)
r.raise_for_status()
for t in r.json()["templates"]:
print(t["id"], t["memoryMb"], [v["name"] for v in t["variables"]]){
"templates": [
{
"id": "discord-js-bot",
"name": "Bot discord.js",
"description": "Um bot de Discord em Node.js com o comando /ping, pronto para você criar os seus.",
"type": "bot",
"language": "node",
"version": "24",
"memoryMb": 128,
"port": null,
"variables": [
{
"name": "DISCORD_TOKEN",
"description": "O token do bot, do Portal de Desenvolvedores do Discord.",
"isRequired": true,
"helpUrl": "https://docs.cubehosting.com.br/hosting/templates#como-pegar-o-token-do-bot"
}
],
"database": null
},
{
"id": "discord-postgres-bot",
"name": "Bot com PostgreSQL",
"description": "Um bot de Discord que guarda anotações num PostgreSQL da sua conta, criado junto e já ligado ao projeto.",
"type": "bot",
"language": "node",
"version": "24",
"memoryMb": 192,
"port": null,
"variables": [
{
"name": "DISCORD_TOKEN",
"description": "O token do bot, do Portal de Desenvolvedores do Discord.",
"isRequired": true,
"helpUrl": "https://docs.cubehosting.com.br/hosting/templates#como-pegar-o-token-do-bot"
}
],
"database": {
"engine": "postgres",
"variable": "DATABASE_URL",
"memoryMb": 512
}
},
{
"id": "express-api",
"name": "API Express",
"description": "Uma API em Node.js com Express, no ar num endereço .cubehost.dev.",
"type": "site",
"language": "node",
"version": "24",
"memoryMb": 512,
"port": 8080,
"variables": [],
"database": null
}
]
}{
"status": "error",
"code": "internal_error",
"message": "Erro inesperado. Tente de novo em instantes."
}Templates
Listar templates
Os templates da Cube: projetos prontos, com o que cada um pede para iniciar.
GET
/
templates
curl
curl https://app.cubehosting.com.br/api/templatesconst API = 'https://app.cubehosting.com.br/api';
const headers = { Authorization: `Bearer ${process.env.CUBE_API_KEY}` };
const res = await fetch(`${API}/templates`);
const { templates } = await res.json();
for (const t of templates) console.log(t.id, t.memoryMb, t.variables.map((v) => v.name));import os
import requests
API = "https://app.cubehosting.com.br/api"
headers = {"Authorization": f"Bearer {os.environ['CUBE_API_KEY']}"}
r = requests.get(f"{API}/templates", timeout=30)
r.raise_for_status()
for t in r.json()["templates"]:
print(t["id"], t["memoryMb"], [v["name"] for v in t["variables"]]){
"templates": [
{
"id": "discord-js-bot",
"name": "Bot discord.js",
"description": "Um bot de Discord em Node.js com o comando /ping, pronto para você criar os seus.",
"type": "bot",
"language": "node",
"version": "24",
"memoryMb": 128,
"port": null,
"variables": [
{
"name": "DISCORD_TOKEN",
"description": "O token do bot, do Portal de Desenvolvedores do Discord.",
"isRequired": true,
"helpUrl": "https://docs.cubehosting.com.br/hosting/templates#como-pegar-o-token-do-bot"
}
],
"database": null
},
{
"id": "discord-postgres-bot",
"name": "Bot com PostgreSQL",
"description": "Um bot de Discord que guarda anotações num PostgreSQL da sua conta, criado junto e já ligado ao projeto.",
"type": "bot",
"language": "node",
"version": "24",
"memoryMb": 192,
"port": null,
"variables": [
{
"name": "DISCORD_TOKEN",
"description": "O token do bot, do Portal de Desenvolvedores do Discord.",
"isRequired": true,
"helpUrl": "https://docs.cubehosting.com.br/hosting/templates#como-pegar-o-token-do-bot"
}
],
"database": {
"engine": "postgres",
"variable": "DATABASE_URL",
"memoryMb": 512
}
},
{
"id": "express-api",
"name": "API Express",
"description": "Uma API em Node.js com Express, no ar num endereço .cubehost.dev.",
"type": "site",
"language": "node",
"version": "24",
"memoryMb": 512,
"port": 8080,
"variables": [],
"database": null
}
]
}{
"status": "error",
"code": "internal_error",
"message": "Erro inesperado. Tente de novo em instantes."
}Devolve os templates da Cube, com o tipo, a linguagem, a memória sugerida, as variáveis que cada um pede (e onde pegar o valor, em
Todos os códigos, com o formato do erro, em Códigos de erro.
helpUrl) e o banco que ele cria junto. É público: não precisa de chave. Guia completo em Templates.
Para criar um projeto a partir de um deles, mande o id no campo template de Criar um projeto, com as variáveis em variables.
Um template com
database precisa de um banco: crie o banco antes e mande o id dele em databaseId. A conexão entra na variável de database.variable antes da primeira subida.Erros comuns
| Código | HTTP | O que fazer |
|---|---|---|
internal_error | 500 | Algo falhou do nosso lado. Tente de novo em instantes. |
Resposta
A lista de templates.
Show child attributes
Show child attributes

