ABMeter Event Types API

The Event Types API from ABMeter — 2 operation(s) for event types.

Operations 5

GET /event-types List event types #
POST /event-types Create event type #
GET /event-types/{event_type_slug} Get event type details #
PUT /event-types/{event_type_slug} Update event type #
DELETE /event-types/{event_type_slug} Delete event type #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/abmeter-ai:abmeter-ai-event-types-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

abmeter-ai-event-types-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Abmeter Ai Event Types API
  version: 1.0.0
  contact:
    name: ABMeter Support
    email: info@abmeter.com
  license:
    name: Commercial
    url: https://abmeter.ai/terms
  description: 'Operations tagged Event Types across 2 of this provider''s published API definitions: spec.yaml, abmeter-ai-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://abmeter.ai/api/v1
  description: ABMeter API
security:
- bearerAuth: []
tags:
- name: Event Types
paths:
  /event-types:
    get:
      summary: List event types
      description: Retrieve all event types for your organization
      security:
      - bearerAuth: []
      responses:
        '200':
          description: List of event types
          content:
            application/json:
              example:
              - created_at: '2026-01-30T12:00:00Z'
                custom_fields:
                  amount: Float
                  plan: String
                description: Tracks user behavior events for analytics and experimentation
                measures:
                - description: Count all 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: COUNT(event-type-signup)
                  measure_method: count
                - description: Count unique users in 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: COUNT_DISTINCT(event-type-signup.user_id)
                  measure_method: count_distinct
                - custom_field_name: amount
                  description: Count 'event-type-signup' events where 'amount' is not null
                  event_type_slug: event-type-signup
                  formula: COUNT(NOT_NULL(event-type-signup.amount))
                  measure_method: count
                - custom_field_name: amount
                  description: Count 'event-type-signup' events where 'amount' is null
                  event_type_slug: event-type-signup
                  formula: COUNT(IS_NULL(event-type-signup.amount))
                  measure_method: count_null
                - custom_field_name: amount
                  description: Minimum 'amount' value in 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: MIN(event-type-signup.amount)
                  measure_method: min
                - custom_field_name: amount
                  description: Maximum 'amount' value in 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: MAX(event-type-signup.amount)
                  measure_method: max
                - custom_field_name: amount
                  description: Average 'amount' value in 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: AVG(event-type-signup.amount)
                  measure_method: avg
                - custom_field_name: amount
                  description: Sum of all 'amount' values in 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: SUM(event-type-signup.amount)
                  measure_method: sum
                - custom_field_name: plan
                  description: Count 'event-type-signup' events where 'plan' is not null
                  event_type_slug: event-type-signup
                  formula: COUNT(NOT_NULL(event-type-signup.plan))
                  measure_method: count
                - custom_field_name: plan
                  description: Count unique 'plan' values in 'event-type-signup' events
                  event_type_slug: event-type-signup
                  formula: COUNT_DISTINCT(event-type-signup.plan)
                  measure_method: count_distinct
                - custom_field_name: plan
                  description: Count 'event-type-signup' events where 'plan' is null
                  event_type_slug: event-type-signup
                  formula: COUNT(IS_NULL(event-type-signup.plan))
                  measure_method: count_null
                slug: event-type-signup
                updated_at: '2026-01-30T12:00:00Z'
              - created_at: '2026-01-30T12:00:00Z'
                custom_fields:
                  amount: Float
                  plan: String
                description: Tracks user behavior events for analytics and experimentation
                measures:
                - description: Count all 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: COUNT(event-type-checkout)
                  measure_method: count
                - description: Count unique users in 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: COUNT_DISTINCT(event-type-checkout.user_id)
                  measure_method: count_distinct
                - custom_field_name: amount
                  description: Count 'event-type-checkout' events where 'amount' is not null
                  event_type_slug: event-type-checkout
                  formula: COUNT(NOT_NULL(event-type-checkout.amount))
                  measure_method: count
                - custom_field_name: amount
                  description: Count 'event-type-checkout' events where 'amount' is null
                  event_type_slug: event-type-checkout
                  formula: COUNT(IS_NULL(event-type-checkout.amount))
                  measure_method: count_null
                - custom_field_name: amount
                  description: Minimum 'amount' value in 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: MIN(event-type-checkout.amount)
                  measure_method: min
                - custom_field_name: amount
                  description: Maximum 'amount' value in 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: MAX(event-type-checkout.amount)
                  measure_method: max
                - custom_field_name: amount
                  description: Average 'amount' value in 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: AVG(event-type-checkout.amount)
                  measure_method: avg
                - custom_field_name: amount
                  description: Sum of all 'amount' values in 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: SUM(event-type-checkout.amount)
                  measure_method: sum
                - custom_field_name: plan
                  description: Count 'event-type-checkout' events where 'plan' is not null
                  event_type_slug: event-type-checkout
                  formula: COUNT(NOT_NULL(event-type-checkout.plan))
                  measure_method: count
                - custom_field_name: plan
                  description: Count unique 'plan' values in 'event-type-checkout' events
                  event_type_slug: event-type-checkout
                  formula: COUNT_DISTINCT(event-type-checkout.plan)
                  measure_method: count_distinct
                - custom_field_name: plan
                  description: Count 'event-type-checkout' events where 'plan' is null
                  event_type_slug: event-type-checkout
                  formula: COUNT(IS_NULL(event-type-checkout.plan))
                  measure_method: count_null
                slug: event-type-checkout
                updated_at: '2026-01-30T12:00:00Z'
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventType'
      tags:
      - Event Types
      operationId: getEventTypes
      x-operation-id-source: derived
    post:
      summary: Create event type
      description: 'Create a new event type with custom fields.


        ** Note:** The `user_id` always exists in any event and therefore should not be included in the `custom_fields` object.'
      security:
      - bearerAuth: []
      parameters: []
      responses:
        '201':
          description: Event type created successfully
        '400':
          description: Bad request - slug already exists
          content:
            application/json:
              example:
                error: Bad request
                status: 400
                details:
                  slug:
                  - has already been taken
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  $ref: '#/components/schemas/Slug'
                description:
                  type:
                  - string
                  - 'null'
                  description: Optional description of the event type
                custom_fields:
                  type: object
                  additionalProperties:
                    type: string
                    enum:
                    - String
                    - Boolean
                    - Integer
                    - Float
                  example:
                    plan: String
                    amount: Float
              required:
              - slug
              example:
                slug: event-type-purchase
                custom_fields:
                  amount: Float
                  product_id: Integer
      tags:
      - Event Types
      operationId: postEventTypes
      x-operation-id-source: derived
    servers:
    - url: https://abmeter.ai/api/v1
      description: ABMeter API
  /event-types/{event_type_slug}:
    parameters:
    - name: event_type_slug
      in: path
      schema:
        $ref: '#/components/schemas/Slug'
      description: The event type slug
      required: true
    get:
      summary: Get event type details
      description: Retrieve a specific event type
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Event type details
          content:
            application/json:
              example:
                created_at: '2026-01-30T12:00:00Z'
                custom_fields: {}
                description: Tracks user behavior events for analytics and experimentation
                measures:
                - description: Count all 'event-type-click' events
                  event_type_slug: event-type-click
                  formula: COUNT(event-type-click)
                  measure_method: count
                - description: Count unique users in 'event-type-click' events
                  event_type_slug: event-type-click
                  formula: COUNT_DISTINCT(event-type-click.user_id)
                  measure_method: count_distinct
                slug: event-type-click
                updated_at: '2026-01-30T12:00:00Z'
              schema:
                $ref: '#/components/schemas/EventType'
        '404':
          description: Event type not found
          content:
            application/json:
              example:
                error: Event type 'non-existent' not found
                status: 404
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Event Types
      operationId: getEventTypesByEventTypeSlug
      x-operation-id-source: derived
    put:
      summary: Update event type
      description: 'Update event type details and custom fields. The `custom_fields` object completely replaces

        the existing custom fields. To remove fields, simply omit them from the new custom_fields object.'
      security:
      - bearerAuth: []
      parameters: []
      responses:
        '200':
          description: Event type updated successfully
          content:
            application/json:
              example:
                created_at: '2026-01-30T12:00:00Z'
                custom_fields:
                  membership_level: String
                description: Tracks user behavior events for analytics and experimentation
                measures:
                - description: Count all 'event-type-form-submit' events
                  event_type_slug: event-type-form-submit
                  formula: COUNT(event-type-form-submit)
                  measure_method: count
                - description: Count unique users in 'event-type-form-submit' events
                  event_type_slug: event-type-form-submit
                  formula: COUNT_DISTINCT(event-type-form-submit.user_id)
                  measure_method: count_distinct
                - custom_field_name: membership_level
                  description: Count 'event-type-form-submit' events where 'membership_level' is not null
                  event_type_slug: event-type-form-submit
                  formula: COUNT(NOT_NULL(event-type-form-submit.membership_level))
                  measure_method: count
                - custom_field_name: membership_level
                  description: Count unique 'membership_level' values in 'event-type-form-submit' events
                  event_type_slug: event-type-form-submit
                  formula: COUNT_DISTINCT(event-type-form-submit.membership_level)
                  measure_method: count_distinct
                - custom_field_name: membership_level
                  description: Count 'event-type-form-submit' events where 'membership_level' is null
                  event_type_slug: event-type-form-submit
                  formula: COUNT(IS_NULL(event-type-form-submit.membership_level))
                  measure_method: count_null
                slug: event-type-form-submit
                updated_at: '2026-01-30T12:00:00Z'
              schema:
                $ref: '#/components/schemas/EventType'
        '400':
          description: Bad request - invalid slug
          content:
            application/json:
              example:
                error: Bad request
                status: 400
                details:
                  slug:
                  - can only contain lowercase letters, numbers and hyphens
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Event type not found
          content:
            application/json:
              example:
                error: Event type 'non-existent' not found
                status: 404
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type:
                  - string
                  - 'null'
                  description: Optional description of the event type
                custom_fields:
                  type: object
                  description: 'Complete set of custom field definitions. This replaces all existing custom fields.

                    Fields not included in this object will be removed.

                    '
                  additionalProperties:
                    type: string
                    enum:
                    - String
                    - Boolean
                    - Integer
                    - Float
                  example:
                    plan: String
                    amount: Float
              example:
                custom_fields:
                  membership_level: String
      tags:
      - Event Types
      operationId: putEventTypesByEventTypeSlug
      x-operation-id-source: derived
    delete:
      summary: Delete event type
      description: Delete an event type (cascades to delete all associated events)
      security:
      - bearerAuth: []
      responses:
        '204':
          description: Event type deleted successfully
      tags:
      - Event Types
      operationId: deleteEventTypesByEventTypeSlug
      x-operation-id-source: derived
    servers:
    - url: https://abmeter.ai/api/v1
      description: ABMeter API
components:
  schemas:
    Error:
      type: object
      description: 'Standard error response format for all API endpoints


        **Important:** The response is ALWAYS an object/hash, never null or any other type.

        The `details` field, when present, is ALWAYS an object/hash (e.g., `{}` not `null` or `[]`).

        The `details` field may be omitted when there are no additional details to provide.'
      properties:
        error:
          type: string
          description: Human-readable error message
        code:
          type: string
          description: Machine-readable error code (optional)
        details:
          type: object
          description: 'Additional error details. When present, ALWAYS an object/hash.

            May contain field-specific errors or other structured information.

            Examples: `{"name": ["can''t be blank"]}` for validation errors, `{"message": "Invalid state"}` for other errors'
          additionalProperties: true
      required:
      - error
    Slug:
      type: string
      description: 'Standardized identifier for entities used across the API. Recommended format: each entity type has its own prefix pattern followed by a short alphanumeric identifier (e.g., parameter-ab4c, space-main, audience-control).'
    EventType:
      type: object
      description: Defines a category of events that can be tracked, with optional custom fields for additional data
      properties:
        slug:
          $ref: '#/components/schemas/Slug'
        description:
          type:
          - string
          - 'null'
          description: Optional description of the event type
        custom_fields:
          type: object
          additionalProperties:
            type: string
            enum:
            - String
            - Boolean
            - Integer
            - Float
          description: Custom field definitions with their data types
        measures:
          type: array
          items:
            $ref: '#/components/schemas/Measure'
          readOnly: true
          description: Available measures derived from this event type (auto-generated based on custom fields)
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - slug
    Measure:
      type: object
      description: Atomic aggregation derived from an event type. Measures are automatically generated based on event type custom fields.
      properties:
        event_type_slug:
          $ref: '#/components/schemas/Slug'
        measure_method:
          type: string
          enum:
          - count
          - count_distinct
          - count_null
          - min
          - max
          - avg
          - sum
          description: How to aggregate the data
        custom_field_name:
          type:
          - string
          - 'null'
          description: Custom field to measure (null for event-level measures like count)
        display_name:
          type: string
          readOnly: true
          description: Human-readable measure name (e.g., "count(purchase)", "sum(purchase.amount)")
      required:
      - event_type_slug
      - measure_method
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key from the ABMeter dashboard. Pass it in the Authorization header with 'Bearer' prefix.
x-refined-from:
- spec.yaml
- abmeter-ai-openapi.yml