# Daily event counts report

> POST /v1/properties/{propertyId}/reports/events: Date ranges are limited to 31 days.

<div class="api-endpoint"><span class="api-method api-method--post">POST</span><span class="api-path">/v1/properties/<span class="api-path-param">&#123;propertyId&#125;</span>/reports/events</span></div>

## Authentication

**bearerAuth**: API key created in the dashboard (<code>atk&#95;...</code>). Send it in the `Authorization: Bearer YOUR_API_KEY` header.

## Path parameters

<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">propertyId</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
<div class="api-field-desc">Property id</div>
</div>
</div>

## Request body

<div class="api-media"><span class="api-media-type">application/json</span><span class="api-badge api-badge--required">required</span></div>

<div class="api-schema">
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">from</code><span class="api-field-type">string · date</span><span class="api-badge api-badge--required">required</span></div>
<div class="api-field-desc">Inclusive start date in the report time zone</div>
<div class="api-field-facts"><span class="api-fact"><span class="api-fact-label">Format</span> YYYY-MM-DD, e.g. <code>2026-01-31</code></span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">to</code><span class="api-field-type">string · date</span><span class="api-badge api-badge--required">required</span></div>
<div class="api-field-desc">Inclusive end date in the report time zone</div>
<div class="api-field-facts"><span class="api-fact"><span class="api-fact-label">Format</span> YYYY-MM-DD, e.g. <code>2026-01-31</code></span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">eventNames</code><span class="api-field-type">array of string</span></div>
<div class="api-field-facts"><span class="api-fact"><span class="api-fact-label">Min items</span> <code>1</code></span><span class="api-fact"><span class="api-fact-label">Max items</span> <code>50</code></span><span class="api-fact"><span class="api-fact-label">Item min length</span> <code>1</code></span><span class="api-fact"><span class="api-fact-label">Item max length</span> <code>64</code></span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">limit</code><span class="api-field-type">integer</span></div>
<div class="api-field-facts"><span class="api-fact"><span class="api-fact-label">Default</span> <code>50</code></span><span class="api-fact"><span class="api-fact-label">Min</span> <code>1</code></span><span class="api-fact"><span class="api-fact-label">Max</span> <code>100</code></span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">cursor</code><span class="api-field-type">string</span></div>
<div class="api-field-desc"><code>nextCursor</code> from the previous page</div>
<div class="api-field-facts"><span class="api-fact"><span class="api-fact-label">Min length</span> <code>1</code></span><span class="api-fact"><span class="api-fact-label">Max length</span> <code>2048</code></span></div>
</div>
</div>
</div>

## Responses

### 200 Successful response

<div class="api-media"><span class="api-media-type">application/json</span></div>

<div class="api-schema">
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">data</code><span class="api-field-type">array of object</span><span class="api-badge api-badge--required">required</span></div>
<details class="api-children">
<summary>Show 3 child attributes</summary>
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">date</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">eventName</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">count</code><span class="api-field-type">number</span><span class="api-badge api-badge--required">required</span></div>
</div>
</div>
</details>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">nextCursor</code><span class="api-field-type">string &#124; null</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">report</code><span class="api-field-type">object</span><span class="api-badge api-badge--required">required</span></div>
<details class="api-children">
<summary>Show 5 child attributes</summary>
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">propertyId</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">from</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">to</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">timezone</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">currency</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
</div>
</details>
</div>
</div>
</div>

### 400 Invalid request

<div class="api-media"><span class="api-media-type">application/json</span></div>

<div class="api-schema">
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">error</code><span class="api-field-type">object</span><span class="api-badge api-badge--required">required</span></div>
<details class="api-children">
<summary>Show 5 child attributes</summary>
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">code</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
<div class="api-field-facts"><span class="api-fact"><span class="api-fact-label">Allowed values</span> <code>invalid&#95;request</code> <code>invalid&#95;cursor</code> <code>unauthenticated</code> <code>api&#95;access&#95;unavailable</code> <code>not&#95;found</code> <code>payload&#95;too&#95;large</code> <code>rate&#95;limited</code> <code>response&#95;too&#95;large</code> <code>upstream&#95;timeout</code> <code>service&#95;unavailable</code> <code>internal&#95;error</code></span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">message</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">requestId</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">retryable</code><span class="api-field-type">boolean</span><span class="api-badge api-badge--required">required</span></div>
<div class="api-field-desc">Whether retrying the request can succeed</div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">details</code><span class="api-field-type">array of object</span></div>
<details class="api-children">
<summary>Show 2 child attributes</summary>
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">path</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">message</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
</div>
</details>
</div>
</div>
</details>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">message</code><span class="api-field-type">string</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">code</code><span class="api-field-type">string</span></div>
</div>
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">issues</code><span class="api-field-type">array of object</span></div>
<details class="api-children">
<summary>Show 1 child attribute</summary>
<div class="api-fields">
<div class="api-field">
<div class="api-field-head"><code class="api-field-name">message</code><span class="api-field-type">string</span><span class="api-badge api-badge--required">required</span></div>
</div>
</div>
</details>
</div>
</div>
</div>

### 401 Missing, invalid or deleted API key

Same response body as [400](#400-invalid-request).

### 403 API access unavailable on the plan

Same response body as [400](#400-invalid-request).

### 404 Unknown or inaccessible property

Same response body as [400](#400-invalid-request).

### 413 Request body too large

Same response body as [400](#400-invalid-request).

### 429 Rate limit exceeded; see Retry-After

Same response body as [400](#400-invalid-request).

### 503 Temporarily unavailable; retry with backoff

Same response body as [400](#400-invalid-request).

### 504 The query timed out; narrow the date range or retry

Same response body as [400](#400-invalid-request).

## Request example

Synthesized command template. Replace path placeholders and provide request-body.json matching the schema above; add query parameters as needed. This is not a recorded request or response.

```sh
curl --request POST 'https://api.anytrack.io/v1/properties/{propertyId}/reports/events' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data @request-body.json
```

[Download the OpenAPI contract](/api/openapi.json).
