---
title: "Create a new explorer view"
method: POST
path: "/explorer_views"
tags: ["explorer_views"]
---

# Create a new explorer view

`POST /explorer_views`

Creates a new explorer view (ObjectiveView, InitiativeView, or ReportsView) with the provided attributes.

## Request body

- object
  - `explorer_view` object, required
    - `name` string, required — Name of the explorer view
    - `type` 'ObjectiveView' | 'InitiativeView' | 'ReportsView' — Type of explorer view
    - `status` 'draft' | 'published' — Status of the explorer view
    - `description` string — Description of the explorer view
    - `entity_type` 'Tenant' | 'User' | 'Team' | 'Okrs::Chat' — Type of entity this view belongs to
    - `entity_uuid` string — UUID of the entity this view belongs to
    - `filters` object
      - `with_time_periods_hierarchy` object
        - `time_period_uuid_in` string[], required — Array of time period UUIDs or dynamic values (${current_primary_cycle}, ${current_secondary_cycle})
        - `include_all_nested_time_periods` boolean, required — Include all nested time periods
      - `with_teams_hierarchy` object
        - `teams_uuid_in` string[], required — Array of team UUIDs
        - `include_immediate_subteams` boolean, required — Include immediate subteams
        - `include_all_subteams` boolean, required — Include all subteams
      - `with_owners_hierarchy` object
        - `owners_uuid_in` string[], required — Array of owner UUIDs
        - `include_direct_reports` boolean, required — Include direct reports
        - `include_all_reports` boolean, required — Include all reports
        - `include_delegates` boolean — Include delegated goals (goals where specified users are delegates)
      - `object_type_in` string[] — Filter by goal type: Okrs::Objective, Okrs::KeyResult, or Okrs::Initiative (nil/empty = all types). Use ONLY for explicit type requests (e.g., 'KRs' → ['Okrs::KeyResult'], 'objectives' → ['Okrs::Objective']). Do NOT use for generic 'goals' or 'OKRs' queries—return all types instead. When using this filter (non-nil/non-empty), set flat_list=true.
      - `flat_list` boolean — Show results as flat list (true) or tree hierarchy (false/omit). Use true with: object_type_in filter, status-based lists, cross-hierarchy filtering (owner/team). Use false for: 'OKRs'/'my OKRs' queries, viewing parent-child relationships. Rule: If using object_type_in, use flat_list=true.
      - `with_last_checkin_date` object
        - `operator` string, required — Comparison operator (eq, gt, lt)
        - `value` string, required — Date value in YYYY-MM-DD format
      - `current_status_in` string[] — Filter by current status values
      - `checkin_status_in` string[] — Filter by checkin status values
      - `with_source` object
        - `type` 'Okrs::Chat' | 'Chat::Thread' | 'Okrs::ImportJob' | 'Okrs::CascadeJob' | 'Artifacts::GeneratedObjective' | 'Artifacts::BulkImport', required — Source type
        - `uuid` string, required — Source UUID
      - `uuid_in` string[] — Filter by specific goal UUIDs
      - `with_any_labels` string[] — Filter by label names (must match at least one)
      - `owners_profile_department_name_in` string[] — Filter by owner department names
      - `owners_profile_division_name_in` string[] — Filter by owner division names
      - `owners_profile_job_title_in` string[] — Filter by owner job titles
      - `owners_profile_cost_center_name_in` string[] — Filter by owner cost center names
      - `owners_profile_employee_type_in` string[] — Filter by owner employee types
      - `owners_profile_custom_field_1_in` string[] — Filter by owner custom field 1
      - `owners_profile_custom_field_2_in` string[] — Filter by owner custom field 2
      - `owners_profile_custom_field_3_in` string[] — Filter by owner custom field 3
      - `owners_profile_custom_field_4_in` string[] — Filter by owner custom field 4
      - `owners_profile_custom_field_5_in` string[] — Filter by owner custom field 5
    - `preferences` object
      - `reports` object
        - `okrs_with_checkins` object
          - `slice_by` 'team' | 'manager' | 'user' | 'custom_field_1' | 'custom_field_2' | 'custom_field_3' | 'custom_field_4' | 'custom_field_5' — Report slice_by value
          - `granularity` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Report granularity
        - `checkin_cycle_compliance` object
          - `slice_by` 'team' | 'manager' | 'user' | 'custom_field_1' | 'custom_field_2' | 'custom_field_3' | 'custom_field_4' | 'custom_field_5' — Report slice_by value
          - `granularity` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Report granularity
        - `okrs_with_alignment` object
          - `slice_by` 'team' | 'manager' | 'user' | 'custom_field_1' | 'custom_field_2' | 'custom_field_3' | 'custom_field_4' | 'custom_field_5' — Report slice_by value
          - `granularity` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Report granularity
        - `users_with_okrs` object
          - `slice_by` 'team' | 'manager' | 'user' | 'custom_field_1' | 'custom_field_2' | 'custom_field_3' | 'custom_field_4' | 'custom_field_5' — Report slice_by value
          - `granularity` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Report granularity
        - `okrs_with_integrations` object
          - `slice_by` 'team' | 'manager' | 'user' | 'custom_field_1' | 'custom_field_2' | 'custom_field_3' | 'custom_field_4' | 'custom_field_5' — Report slice_by value
          - `granularity` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Report granularity
        - `performance_report` object
          - `slice_by` 'team' | 'manager' | 'user' | 'custom_field_1' | 'custom_field_2' | 'custom_field_3' | 'custom_field_4' | 'custom_field_5' — Report slice_by value
          - `granularity` 'weekly' | 'monthly' | 'quarterly' | 'yearly' — Report granularity

## Response `201`

Created explorer view details

## Other responses

- `400` — Bad Request - Invalid parameters or malformed request
- `401` — Unauthorized - Invalid or missing authentication
- `403` — Forbidden - User lacks permission to access this resource
- `404` — Not Found - Resource does not exist
- `422` — Unprocessable Entity - Invalid request parameters or validation errors
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - Unexpected server error

---

[API](https://skmtc.net/rhythms/apis/rhythms-params-in-body.md) · [All operations](https://skmtc.net/rhythms/apis/rhythms-params-in-body/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhythms/rhythms-params-in-body/revisions/a67e54becfe9/schema)
