Experiments

Create metric SQL model

Create a metric SQL model. Requires at least one subject type, whose subject_type_id must already exist for the organization (list them with GET /api/v2/experiments/subject-types). The model is created against the organization's warehouse connection, which is resolved server-side. Only customer-defined measures belong in measures. The response provides unique_subject_count_measure_id for each subject type and event_count_measure_id for use in metric aggregations. column_type is required for every measure and property. Certification is read-only and cannot be changed through this endpoint.

post/api/v2/experiments/metric-sql-models

Request

Request body

Example request

{
  "data": {
    "attributes": {
      "date_partition_column": null,
      "description": null,
      "measures": [
        {
          "column_name": "revenue",
          "column_type": "FLOAT",
          "description": null,
          "name": null
        }
      ],
      "name": "Order facts",
      "properties": [
        {
          "column_name": "item_type",
          "column_type": "STRING",
          "description": null,
          "name": "item_type"
        }
      ],
      "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
      "subject_types": [
        {
          "column_name": "user_id",
          "subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
        }
      ],
      "timestamp_column": "created_at"
    },
    "type": "metric-sql-models"
  }
}

Response

Created

Example response

{
  "data": {
    "attributes": {
      "created_at": "2024-01-01T12:00:00Z",
      "event_count_measure_id": "550e8400-e29b-41d4-a716-446655440024",
      "is_certified": false,
      "measures": [
        {
          "column_name": "revenue",
          "column_type": "FLOAT",
          "id": "550e8400-e29b-41d4-a716-446655440021",
          "name": "revenue"
        }
      ],
      "name": "Order facts",
      "properties": [
        {
          "column_name": "item_type",
          "column_type": "STRING",
          "id": "550e8400-e29b-41d4-a716-446655440023",
          "name": "item_type"
        }
      ],
      "sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
      "subject_types": [
        {
          "column_name": "user_id",
          "subject_type_id": "550e8400-e29b-41d4-a716-446655440010",
          "unique_subject_count_measure_id": "550e8400-e29b-41d4-a716-446655440022"
        }
      ],
      "timestamp_column": "created_at",
      "updated_at": "2024-01-01T12:00:00Z"
    },
    "id": "550e8400-e29b-41d4-a716-446655440020",
    "type": "metric-sql-models"
  }
}

Changes

Changes to this operation have not been checked yet.