{
  "info": {
    "name": "OKRs Tool API",
    "description": "Official Postman collection for the OKRs Tool API (v1).\n\nGetting started:\n1. Set the `api_key` collection variable to your key from Settings \u2192 API Keys.\n2. All requests are pre-configured with `Authorization: Bearer {{api_key}}`.\n3. Replace `:id` path placeholders with the relevant OKR, Key Result, KPI, or Review UUID.\n\nDocs: https://go.okrstool.com/docs/api",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "b8a8b3f2-okrstool-api-v1"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://go.okrstool.com",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "okrt_your_api_key_here",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "OKRs",
      "item": [
        {
          "name": "List OKRs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/okrs",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "okrs"
              ]
            },
            "description": "Returns the most recent 500 OKRs in your workspace.\n\nRequires scope: `okrs:read`."
          }
        },
        {
          "name": "Create OKR",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Improve onboarding conversion\",\n  \"description\": \"Lift activation in the first 7 days\",\n  \"type\": \"company\",\n  \"cycle_id\": \"\",\n  \"owner_id\": null,\n  \"team_id\": null,\n  \"visibility\": \"organisation\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/okrs",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "okrs"
              ]
            },
            "description": "Create a new OKR. type \u2208 company | department | team. visibility defaults to organisation.\n\nRequires scope: `write:okrs`."
          }
        },
        {
          "name": "Update OKR",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Improve onboarding conversion (revised)\",\n  \"owner_id\": null,\n  \"visibility\": \"team\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/okrs/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "okrs",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "OKR UUID"
                }
              ]
            },
            "description": "Update an existing OKR. Only the fields you include are changed.\n\nRequires scope: `write:okrs`."
          }
        },
        {
          "name": "Delete OKR",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/okrs/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "okrs",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "OKR UUID"
                }
              ]
            },
            "description": "Delete an OKR and all its Key Results. Returns 204 on success.\n\nRequires scope: `write:okrs`."
          }
        },
        {
          "name": "Add Key Result",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Lift activation rate to 50%\",\n  \"metric_type\": \"percentage\",\n  \"start_value\": 32,\n  \"target_value\": 50,\n  \"current_value\": 35,\n  \"owner_id\": null,\n  \"unit\": \"%\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/okrs/:id/key-results",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "okrs",
                ":id",
                "key-results"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "OKR UUID"
                }
              ]
            },
            "description": "Add a Key Result to an OKR. metric_type \u2208 percentage | number | currency | boolean.\n\nRequires scope: `write:okrs`."
          }
        },
        {
          "name": "Update Key Result",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Lift activation rate to 55%\",\n  \"target_value\": 55,\n  \"current_value\": 38,\n  \"owner_id\": null\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/key-results/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "key-results",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Key Result UUID"
                }
              ]
            },
            "description": "Update an existing Key Result. Only the fields you include are changed.\n\nRequires scope: `write:okrs`."
          }
        },
        {
          "name": "Delete Key Result",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/key-results/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "key-results",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Key Result UUID"
                }
              ]
            },
            "description": "Delete a Key Result and all its check-ins. Returns 204 No Content.\n\nRequires scope: `write:okrs`."
          },
          "response": []
        },
        {
          "name": "Create Key Result check-in",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": 70,\n  \"comment\": \"New onboarding flow shipped \u2014 conversion up 6%\",\n  \"status\": \"on_track\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/okrs/:id/checkins",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "okrs",
                ":id",
                "checkins"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Key Result UUID"
                }
              ]
            },
            "description": "Records a Key Result check-in. The :id is the Key Result UUID.\n\nRequires scope: `okr-checkins:write`."
          }
        }
      ]
    },
    {
      "name": "KPIs",
      "item": [
        {
          "name": "List KPIs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/kpis",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "kpis"
              ]
            },
            "description": "Returns up to 500 KPIs.\n\nRequires scope: `kpis:read`."
          }
        },
        {
          "name": "Create KPI",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Weekly Active Users\",\n  \"description\": \"Unique users who logged in this week\",\n  \"category\": \"retention\",\n  \"group_name\": \"North Star metrics\",\n  \"current_value\": 3721,\n  \"target_value\": 4500,\n  \"unit\": \"users\",\n  \"update_frequency\": \"weekly\",\n  \"direction\": \"higher\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/kpis",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "kpis"
              ]
            },
            "description": "Creates a new KPI.\n\nRequired: `name`.\n\nOptional: `description`, `category` (acquisition | conversion | retention | revenue | custom — defaults to custom), `group_name`, `owner_id` (profile UUID in the same org), `team_id` (team UUID in the same org), `current_value`, `target_value`, `unit`, `update_frequency` (weekly | monthly | quarterly — defaults to monthly), `direction` (higher | lower — defaults to higher).\n\nReturns 201 with the created KPI.\n\nRequires scope: `kpis:write`."
          }
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": 3810,\n  \"comment\": \"Weekly sync from analytics pipeline\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/kpis/:id/updates",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "kpis",
                ":id",
                "updates"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "KPI UUID"
                }
              ]
            },
            "description": "Records a new KPI measurement.\n\nRequires scope: `kpis:write`."
          }
        }
      ]
    },
    {
      "name": "Reviews",
      "item": [
        {
          "name": "List review cycles",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/review-cycles",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "review-cycles"
              ]
            },
            "description": "Lists all review cycles.\n\nRequires scope: `reviews:read`."
          }
        },
        {
          "name": "List reviews in a cycle",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/review-cycles/:id/reviews",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "review-cycles",
                ":id",
                "reviews"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Review cycle UUID"
                }
              ]
            },
            "description": "Lists individual reviews (self and manager) within a review cycle. Use the returned review `id` with the Get review summary endpoint.\n\nRequires scope: `reviews:read`."
          }
        },
        {
          "name": "Get review summary",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{api_key}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/reviews/:id/summary",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "reviews",
                ":id",
                "summary"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Review UUID (must be shared)"
                }
              ]
            },
            "description": "Returns Q&A pairs from a shared review.\n\nRequires scope: `reviews:read`."
          }
        }
      ]
    }
  ]
}