Axuz Developers

GET /teams/{teamId}/forms/{formId}

Detalhe do form

  • Acesso: Membro da equipe
  • Serviço: https://api-forms.axuz.net

Autenticação aceita

  • sessionCookie — Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.
  • bearerSession — JWT de acesso da sessão em `Authorization: Bearer`.

— GET /teams/{teamId}/forms/{formId}. Detalhe do form.

Motivo: tela de edição precisa do schema completo (fields, settings, triggers). Escopado por team + soft-delete filter.

Comportamento: teamAndUser + parseFormID → repo.GetByID. 404 se não encontrado ou deleted_at setado.

Entradas: path {teamId}, {formId}.

Retorno: 200 Form, 400, 401, 404, 500.

Parâmetros

NomeEmTipoObrigatórioDescrição
teamIdpathstringsim
formIdpathstringsim

Respostas

200

Form

NomeTipoObrigatórioDescrição
idstring<uuid>sim
team_idstring<uuid>sim
slugstringsim
namestringsim
descriptionstring | nullnão
schemaFormsFormSchemasim
schema.fieldsarray<FormsField>sim
schema.fields[].idstringsim
schema.fields[].typestringsim

enum: "text", "email", "phone", "textarea", "number", "select", "radio", "checkbox", "date", "url", "file", "hidden"

schema.fields[].labelstringnão
schema.fields[].namestringsim
schema.fields[].requiredbooleannão
schema.fields[].placeholderstringnão
schema.fields[].help_textstringnão
schema.fields[].defaultanynão
schema.fields[].optionsarray<FormsFieldOption>não
schema.fields[].options[].valuestringsim
schema.fields[].options[].labelstringsim
schema.fields[].max_lengthinteger | nullnão
schema.fields[].minnumber | nullnão
schema.fields[].maxnumber | nullnão
schema.fields[].rowsinteger | nullnão
schema.fields[].patternstringnão
schema.fields[].extraobjectnão
schema.stepsarray<FormsStep>não
schema.steps[].idstringsim
schema.steps[].titlestringsim
schema.steps[].field_idsarray<string>sim
schema.settingsFormsSettingssim
schema.settings.submit_labelstringnão
schema.settings.thank_you_messagestringnão
schema.settings.redirect_urlstring | nullnão
schema.settings.honeypotbooleannão

Se true, adiciona campo axuz_hp e rejeita submits com valor.

schema.settings.double_opt_inbooleannão
schema.settings.triggersarray<FormsTrigger>não
schema.settings.triggers[].idstringsim

client uuid

schema.settings.triggers[].typestringsim

enum: "email", "webhook", "calendar_event", "workspace_task"

schema.settings.triggers[].enabledbooleansim
schema.settings.triggers[].labelstringnão
schema.settings.triggers[].mappingobjectnão
schema.settings.triggers[].configobjectnão

Shape depende de type: - email: { to: string[] } - webhook: { url: string, secret?: string } - calendar_event/workspace_task: fields específicos do módulo.

schema.settings.notify_emailsarray<string<email>>não

Legacy Fase 178. Promovido em memória pra Triggers no read.

schema.settings.webhook_urlstringnão
schema.settings.webhook_secretstringnão
layoutstringsim

Layout resolvido via ResolveLayout.

statusstringsim

enum: "draft", "published", "archived"

submit_countintegersim
created_bystring<uuid> | nullnão
created_atstring<date-time>sim
updated_atstring<date-time>sim
deleted_atstring<date-time> | nullnão

400

Parâmetro/body inválido

NomeTipoObrigatórioDescrição
errorstringsim

401

Sem auth ou JWT inválido

NomeTipoObrigatórioDescrição
errorstringsim

403

Sem permissao (nao e owner/admin; token sem escopo; token de integracao em rota nao permitida)

NomeTipoObrigatórioDescrição
errorstringsim

404

Recurso não encontrado

NomeTipoObrigatórioDescrição
errorstringsim

429

Limite de requisições excedido.

NomeTipoObrigatórioDescrição
errorstringsim

500

Erro inesperado

NomeTipoObrigatórioDescrição
errorstringsim

Exemplos

O "Try it" está desligado nesta referência. Use os exemplos com a sua credencial de teste.

curl

curl -sS -X GET 'https://api-forms.axuz.net/teams/TEAM_ID/forms/FORM_ID' \
  -H "Authorization: Bearer $AXUZ_TOKEN"

Node.js

const res = await fetch("https://api-forms.axuz.net/teams/TEAM_ID/forms/FORM_ID", {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());

Python

import os
import requests

res = requests.request(
    "GET",
    "https://api-forms.axuz.net/teams/TEAM_ID/forms/FORM_ID",
    headers={
        "Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())