# visitors.analytics

Analytics de visitantes. Analytics do período (`startDate`..`endDate`, opcional `projectId` e `timeZone`): resumo (14 indicadores), tráfego por dia, sessões e conversão por canal, campanhas por canal, UTMs, sites que indicaram, páginas de entrada, projetos, páginas, funis e formulários mais vistos, ações, dispositivos, navegadores, sistemas, origem geográfica e visitas por hora e dia da semana. Sem rastreio no Atomiks, tudo em zero.

- Endpoint: `POST https://app.atomiks.com.br/api/v1/visitors.analytics` (corpo JSON)
- Quem pode chamar: membro da conta
- Escopo da chave: `contacts:read`
- Grava dados: não
- Pela chave de API: sim
- Ferramenta MCP: `visitors_analytics`
- Ficha em JSON: `https://app.atomiks.com.br/api/v1/openapi.json` (operationId `visitors.analytics`)

## Entrada

| Campo | Tipo | Obrigatório | Nota |
|---|---|---|---|
| `startDate` | string (date-time) | sim |  |
| `endDate` | string (date-time) | sim |  |
| `projectId` | string | não |  |
| `timeZone` | string | não |  |

<details><summary>JSON Schema</summary>

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "endDate": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "projectId": {
      "type": "string",
      "maxLength": 80
    },
    "timeZone": {
      "type": "string",
      "maxLength": 64
    }
  },
  "required": [
    "startDate",
    "endDate"
  ]
}
```

</details>

## Exemplo

```bash
curl -X POST https://app.atomiks.com.br/api/v1/visitors.analytics \
  -H "Authorization: Bearer $ATOMIKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"startDate":"2026-10-01T00:00:00-03:00","endDate":"2026-10-31T23:59:59-03:00"}'
```

CLI:

```bash
node cli/atomiks.mjs visitors.analytics --json '{"startDate":"2026-10-01T00:00:00-03:00","endDate":"2026-10-31T23:59:59-03:00"}'
```

MCP: ferramenta `visitors_analytics` com a mesma entrada.

## Saída

Sucesso: `{"data": ...}` com o formato abaixo.

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "summary": {
      "type": "object",
      "properties": {
        "totalVisitors": {
          "type": "number"
        },
        "newVisitors": {
          "type": "number"
        },
        "returningVisitors": {
          "type": "number"
        },
        "totalSessions": {
          "type": "number"
        },
        "leadsGenerated": {
          "type": "number"
        },
        "conversionRate": {
          "type": "number"
        },
        "pageViews": {
          "type": "number"
        },
        "formSubmissions": {
          "type": "number"
        },
        "totalEvents": {
          "type": "number"
        },
        "sessionsPerVisitor": {
          "type": "number"
        },
        "avgSessionDurationSeconds": {
          "type": "number"
        },
        "avgEngagementSeconds": {
          "type": "number"
        },
        "bounceRate": {
          "type": "number"
        },
        "avgScrollPercent": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "required": [
        "totalVisitors",
        "newVisitors",
        "returningVisitors",
        "totalSessions",
        "leadsGenerated",
        "conversionRate",
        "pageViews",
        "formSubmissions",
        "totalEvents",
        "sessionsPerVisitor",
        "avgSessionDurationSeconds",
        "avgEngagementSeconds",
        "bounceRate",
        "avgScrollPercent"
      ],
      "additionalProperties": false
    },
    "timeseries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "visitors": {
            "type": "number"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "date",
          "visitors",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "channels": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string",
            "enum": [
              "google",
              "facebook",
              "instagram",
              "tiktok",
              "youtube",
              "linkedin",
              "whatsapp",
              "email",
              "referral",
              "direct",
              "other"
            ]
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          },
          "conversionRate": {
            "type": "number"
          }
        },
        "required": [
          "channel",
          "sessions",
          "leads",
          "conversionRate"
        ],
        "additionalProperties": false
      }
    },
    "geo": {
      "type": "object",
      "properties": {
        "countries": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "visitors": {
                "type": "number"
              },
              "leads": {
                "type": "number"
              },
              "buyers": {
                "type": "number"
              },
              "country": {
                "type": "string"
              }
            },
            "required": [
              "visitors",
              "leads",
              "buyers",
              "country"
            ],
            "additionalProperties": false
          }
        },
        "unknownCountry": {
          "type": "object",
          "properties": {
            "visitors": {
              "type": "number"
            },
            "leads": {
              "type": "number"
            },
            "buyers": {
              "type": "number"
            }
          },
          "required": [
            "visitors",
            "leads",
            "buyers"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "countries",
        "unknownCountry"
      ],
      "additionalProperties": false
    },
    "campaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string",
            "enum": [
              "google",
              "facebook",
              "instagram",
              "tiktok",
              "youtube",
              "linkedin",
              "whatsapp",
              "email",
              "referral",
              "direct",
              "other"
            ]
          },
          "campaign": {
            "type": [
              "string",
              "null"
            ]
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          },
          "conversionRate": {
            "type": "number"
          }
        },
        "required": [
          "channel",
          "campaign",
          "sessions",
          "leads",
          "conversionRate"
        ],
        "additionalProperties": false
      }
    },
    "hasMoreCampaigns": {
      "type": "boolean"
    },
    "utmSources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "utmMediums": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "utmCampaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "referrers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "landingPages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "sessions": {
            "type": "number"
          },
          "leads": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "sessions",
          "leads"
        ],
        "additionalProperties": false
      }
    },
    "topPages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "events": {
            "type": "number"
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "events",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "topFunnels": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "events": {
            "type": "number"
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "events",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "topForms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "events": {
            "type": "number"
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "events",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "eventType",
          "count",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "devices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "desktop",
              "mobile",
              "tablet",
              "unknown"
            ]
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "type",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "browsers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "operatingSystems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "visitors": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "visitors"
        ],
        "additionalProperties": false
      }
    },
    "hourOfDay": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hour": {
            "type": "number"
          },
          "sessions": {
            "type": "number"
          }
        },
        "required": [
          "hour",
          "sessions"
        ],
        "additionalProperties": false
      }
    },
    "dayOfWeek": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "day": {
            "type": "number"
          },
          "sessions": {
            "type": "number"
          }
        },
        "required": [
          "day",
          "sessions"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "summary",
    "timeseries",
    "channels",
    "geo",
    "campaigns",
    "hasMoreCampaigns",
    "utmSources",
    "utmMediums",
    "utmCampaigns",
    "referrers",
    "landingPages",
    "projects",
    "topPages",
    "topFunnels",
    "topForms",
    "events",
    "devices",
    "browsers",
    "operatingSystems",
    "hourOfDay",
    "dayOfWeek"
  ],
  "additionalProperties": false
}
```

## Erros

`{"error": {"code", "message", "requestId"}}`. Códigos: `invalid_input` (400), `unauthorized` (401), `forbidden` / `account_pending` / `scope_missing` (403), `not_found` (404), `limit_reached` (409), `internal` (500).
