REST API
O PrimoCRM registra suas rotas REST sob o namespace primocrm/v1 em
rest_api_init. O aplicativo administrativo usa esses mesmos endpoints, portanto, tudo o que a interface faz
está disponível programaticamente.
URL Base
Seção intitulada “URL Base”https://yoursite.com/wp-json/primocrm/v1/Autenticação
Seção intitulada “Autenticação”Cada endpoint possui um callback de permissão que verifica uma capacidade do WordPress, portanto, quem faz a chamada deve estar autenticado e autorizado.
- A partir do aplicativo administrativo (mesma origem): as solicitações são autenticadas pela sessão ativa e um nonce REST. O WordPress envia o nonce no cabeçalho
X-WP-Nonce. Isso é automático para códigos executados dentro do wp-admin. - A partir de código externo: use um método de autenticação que o WordPress aceita para a API REST, como senhas de aplicativo, juntamente com um usuário que possua a capacidade necessária. O PrimoCRM Pro adiciona chaves de API dedicadas para acesso programático.
Endpoints que gerenciam configurações, envios ou operações destrutivas exigem uma capacidade de nível de administrador. Operações de leitura e rotineiras de contatos exigem a capacidade de acesso ao CRM.
Endpoints representativos
Seção intitulada “Endpoints representativos”A lista abaixo é uma amostra representativa, não exaustiva. Explore o conjunto completo na aba de rede do navegador ao usar o aplicativo administrativo, pois a interface chama as mesmas rotas.
Contatos
Seção intitulada “Contatos”| Method | Path | Purpose |
|---|---|---|
| GET | /contacts |
Listar contatos (suporta paginação e filtros) |
| POST | /contacts |
Criar um contato |
| GET | /contacts/{id} |
Obter um contato |
| PUT | /contacts/{id} |
Atualizar um contato |
| DELETE | /contacts/{id} |
Excluir um contato |
| POST | /contacts/bulk-action |
Aplicar uma ação em lote a vários contatos |
| POST | /contacts/bulk-delete |
Excluir vários contatos |
| GET | /contacts/statuses |
Listar status disponíveis |
| GET | /contacts/{id}/activities |
Log de atividades de um contato |
| GET | /contacts/{id}/emails |
E-mails enviados para um contato |
Automações
Seção intitulada “Automações”| Method | Path | Purpose |
|---|---|---|
| GET | /automations/triggers |
Todos os gatilhos registrados |
| GET | /automations/actions |
Todas as ações registradas |
| GET | /automations/condition-options |
Campos e operadores para o construtor de condições |
Formulários e smart codes
Seção intitulada “Formulários e smart codes”| Method | Path | Purpose |
|---|---|---|
| GET | /forms/field-types |
Todos os tipos de campos de formulário registrados |
| GET | /smart-codes |
O catálogo de tags de personalização |
Campanhas, sequências, listas, tags, modelos, migração e configurações expõem suas próprias rotas sob o mesmo namespace, seguindo o mesmo padrão de controller.
Exemplo de solicitação
Seção intitulada “Exemplo de solicitação”Criando um contato com autenticação por senha de aplicativo:
curl -X POST https://yoursite.com/wp-json/primocrm/v1/contacts \ -u "admin:APPLICATION_PASSWORD" \ -H "Content-Type: application/json" \ -d '{"email":"ada@example.com","first_name":"Ada","status":"subscribed"}'Formato de resposta e restrições
Seção intitulada “Formato de resposta e restrições”Respostas bem-sucedidas retornam JSON. Quando um recurso Pro ou um limite de plano bloqueia uma
solicitação, o PrimoCRM retorna um 403 cujo corpo inclui pro_lock: true, que o
aplicativo administrativo usa para exibir o aviso de atualização. Trate esse formato se você chamar
endpoints restritos pelo Pro a partir do seu próprio código.