---
title: "Create analytics rule(s)"
method: POST
path: "/analytics/rules"
tags: ["analytics"]
---

# Create analytics rule(s)

`POST /analytics/rules`

Create one or more analytics rules. You can send a single rule object or an array of rule objects.

## Request body

- union
  - AnalyticsRuleCreate
    - `name` string, required
    - `type` 'popular_queries' | 'nohits_queries' | 'counter' | 'log', required
    - `collection` string, required
    - `event_type` string, required
    - `rule_tag` string
    - `params` object
      - `destination_collection` string
      - `limit` integer
      - `capture_search_requests` boolean
      - `meta_fields` string[]
      - `expand_query` boolean
      - `counter_field` string
      - `weight` integer
  - AnalyticsRuleCreate[]
    - `name` string, required
    - `type` 'popular_queries' | 'nohits_queries' | 'counter' | 'log', required
    - `collection` string, required
    - `event_type` string, required
    - `rule_tag` string
    - `params` object
      - `destination_collection` string
      - `limit` integer
      - `capture_search_requests` boolean
      - `meta_fields` string[]
      - `expand_query` boolean
      - `counter_field` string
      - `weight` integer

## Response `200`

Analytics rule(s) successfully created

- union
  - AnalyticsRule
    - `name` string, required
    - `type` 'popular_queries' | 'nohits_queries' | 'counter' | 'log', required
    - `collection` string, required
    - `event_type` string, required
    - `rule_tag` string
    - `params` object
      - `destination_collection` string
      - `limit` integer
      - `capture_search_requests` boolean
      - `meta_fields` string[]
      - `expand_query` boolean
      - `counter_field` string
      - `weight` integer
  - union[]
    - union
      - AnalyticsRule
        - `name` string, required
        - `type` 'popular_queries' | 'nohits_queries' | 'counter' | 'log', required
        - `collection` string, required
        - `event_type` string, required
        - `rule_tag` string
        - `params` object
          - `destination_collection` string
          - `limit` integer
          - `capture_search_requests` boolean
          - `meta_fields` string[]
          - `expand_query` boolean
          - `counter_field` string
          - `weight` integer
      - object
        - `error` string

## Other responses

- `400` — Bad request, see error message for details

---

[API](https://skmtc.dev/typesense/apis/typesense-api.md) · [All operations](https://skmtc.dev/typesense/apis/typesense-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/typesense/typesense-api/revisions/1d9b3b61638e/schema)
