{
  "openapi": "3.0.3",
  "info": {
    "title": "Welcome to Geekbot's API",
    "version": "1.0.0",
    "description": "<b>API reference</b>\n\n Use the Geekbot API to manage standups, polls, reports, users, and team data from your own tools and workflows. \n\n All requests are made over HTTPS to <code>https://api.geekbot.com</code> and authenticated with an API key sent in the Authorization header. \n\n The API returns JSON responses and supports common workflows such as retrieving the current user, listing teams and standups, creating polls, submitting reports, and starting standups programmatically.\n\n \n\n \n\n <b>Current and Legacy endpoints</b>\n\n The Geekbot API has two sets of endpoints, grouped as <b>Current</b> and <b>Legacy</b> in the sidebar. \n\n The <b>Current</b> endpoints (served under <code>/v2/</code>) are the recommended choice for new integrations. They use a consistent response envelope (<code>data</code>, <code>next_cursor</code>, <code>has_more</code>), cursor-based pagination, opt-in field expansion via <code>?include=</code>, structured errors (<code>{ error: { code, message } }</code>), and an <code>Idempotency-Key</code> header for safe retries on write endpoints. The official <a href=\"https://github.com/geekbot-com/geekbot-cli\">geekbot-cli</a> targets these endpoints.\n\n The <b>Legacy</b> endpoints (served under <code>/v1/</code>) are retained for backwards compatibility. They currently overlap with parts of the current API — both are fully supported, and you can mix them per request. More resources will be added to the current set over time.\n\n \n\n \n\n <b>Geekbot CLI & AI Skill</b> \n\n Submit reports, analyse past responses, and manage standups and polls from your terminal or AI coding agent. Works as a standalone CLI and as a skill for Claude Code, Cursor, Windsurf, and Copilot. \n\n<a href=\"https://github.com/geekbot-com/geekbot-cli\">View on GitHub</a> \n\n\n\n\n <b>Geekbot MCP Server</b> \n\n Connect your AI assistant to Geekbot via the Model Context Protocol. Query standups, fetch reports, and post updates using natural language in Claude Desktop, Cursor, or Windsurf. \n\n<a href=\"https://github.com/geekbot-com/geekbot-mcp\">View on GitHub</a>"
  },
  "servers": [
    {
      "url": "https://api.geekbot.com",
      "description": "API base URL"
    }
  ],
  "tags": [
    {
      "name": "User",
      "description": "Retrieve information about the authenticated user, their teams, and their standups."
    },
    {
      "name": "Poll (legacy)",
      "description": "Older v1 poll endpoints retained for backwards compatibility. New integrations should use the current Poll endpoints."
    },
    {
      "name": "Report (legacy)",
      "description": "Older v1 report endpoints retained for backwards compatibility. New integrations should use the current Report endpoints."
    },
    {
      "name": "Standup (legacy)",
      "description": "Older v1 standup endpoints retained for backwards compatibility. New integrations should use the current Standup endpoints."
    },
    {
      "name": "Team",
      "description": "Retrieve team information associated with the authenticated API key."
    },
    {
      "name": "Poll",
      "description": "v2 poll endpoints. Standard envelope, cursor pagination, opt-in includes.\nThe votes endpoint returns aggregated results (counts per choice, category\nrollups for open-ended) scoped by default to the latest poll instance."
    },
    {
      "name": "Report",
      "description": "v2 report endpoints. Standard envelope, cursor pagination, summary/full views.\nWrite methods (POST/PATCH/DELETE) accept an `Idempotency-Key` header for safe\nretries. Time-window queries are capped at 90 days."
    },
    {
      "name": "Standup",
      "description": "v2 standup endpoints. Standard envelope, cursor pagination, opt-in includes.\nSee `GET /v2/standups` for the canonical shape."
    }
  ],
  "paths": {
    "/v1/me": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get current user",
        "operationId": "GetCurrentUser",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "User unique ID."
                        },
                        "username": {
                          "type": "string",
                          "description": "Username."
                        },
                        "realname": {
                          "type": "string",
                          "description": "User's real name."
                        },
                        "firstname": {
                          "type": "string",
                          "description": "User's first name."
                        },
                        "email": {
                          "type": "string",
                          "description": "User's email address."
                        },
                        "profile_img": {
                          "type": "string",
                          "description": "Profile image URL (192px)."
                        },
                        "timezone": {
                          "type": "string",
                          "description": "User's timezone."
                        },
                        "is_admin": {
                          "type": "boolean",
                          "description": "Whether user is an admin."
                        },
                        "is_billing_admin": {
                          "type": "boolean",
                          "description": "Whether user is a billing admin."
                        },
                        "role": {
                          "type": "string",
                          "description": "User's role description."
                        }
                      },
                      "description": "Current user information."
                    },
                    "team": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Team ID."
                        },
                        "name": {
                          "type": "string",
                          "description": "Team name."
                        }
                      },
                      "description": "Team information."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the authenticated user and basic information about the team associated with the provided API key."
      }
    },
    "/v1/me/teams": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List user teams",
        "operationId": "GetUserTeams",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "teams": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Team ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Team name."
                          },
                          "is_admin": {
                            "type": "boolean",
                            "description": "Whether user is admin in this team."
                          },
                          "standup_count": {
                            "type": "number",
                            "description": "Number of standups in the team."
                          }
                        }
                      },
                      "description": "List of teams the user belongs to."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the teams the authenticated user belongs to. This endpoint currently returns only the team associated with the provided API key."
      }
    },
    "/v1/polls": {
      "get": {
        "tags": [
          "Poll (legacy)"
        ],
        "summary": "List polls",
        "operationId": "ListPolls",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Poll unique id."
                      },
                      "name": {
                        "type": "string",
                        "description": "Poll name."
                      },
                      "time": {
                        "type": "string",
                        "description": "Poll time."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "Poll timezone."
                      },
                      "questions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Question unique id."
                            },
                            "text": {
                              "type": "string",
                              "description": "Question text."
                            },
                            "answer_type": {
                              "type": "string",
                              "description": "Question answer type."
                            },
                            "answer_choices": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Question answer choices."
                            },
                            "add_own_options": {
                              "type": "boolean",
                              "description": "Whether to allow users to add their own options."
                            },
                            "one_option_limit": {
                              "type": "boolean",
                              "description": "Whether to limit the number of options to one."
                            }
                          }
                        },
                        "description": "Poll questions."
                      },
                      "users": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "User unique id."
                            },
                            "role": {
                              "type": "string",
                              "description": "User role."
                            },
                            "email": {
                              "type": "string",
                              "description": "User email."
                            },
                            "username": {
                              "type": "string",
                              "description": "User username."
                            },
                            "realname": {
                              "type": "string",
                              "description": "User real name."
                            },
                            "profile_img": {
                              "type": "string",
                              "description": "User profile image."
                            }
                          }
                        },
                        "description": "Poll users."
                      },
                      "recurrence": {
                        "type": "object",
                        "properties": {},
                        "description": "Poll recurrence."
                      },
                      "sync_channel_members": {
                        "type": "boolean",
                        "description": "Whether to sync channel members."
                      },
                      "sync_channel": {
                        "type": "string",
                        "description": "Sync channel."
                      },
                      "anonymous": {
                        "type": "boolean",
                        "description": "Whether to use anonymous mode."
                      },
                      "intro": {
                        "type": "string",
                        "description": "Poll intro."
                      },
                      "creator": {
                        "type": "object",
                        "properties": {},
                        "description": "Poll creator."
                      },
                      "users_total": {
                        "type": "number",
                        "description": "Total number of users."
                      },
                      "paused": {
                        "type": "boolean",
                        "description": "Whether the poll is paused."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the polls the authenticated user participates in."
      },
      "post": {
        "tags": [
          "Poll (legacy)"
        ],
        "summary": "Create poll",
        "operationId": "CreatePoll",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Poll unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Poll name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Poll time."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Poll timezone."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Question unique id."
                          },
                          "text": {
                            "type": "string",
                            "description": "Question text."
                          },
                          "answer_type": {
                            "type": "string",
                            "description": "Question answer type."
                          },
                          "answer_choices": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Question answer choices."
                          },
                          "add_own_options": {
                            "type": "boolean",
                            "description": "Whether to allow users to add their own options."
                          },
                          "one_option_limit": {
                            "type": "boolean",
                            "description": "Whether to limit the number of options to one."
                          }
                        }
                      },
                      "description": "Poll questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "User unique id."
                          },
                          "role": {
                            "type": "string",
                            "description": "User role."
                          },
                          "email": {
                            "type": "string",
                            "description": "User email."
                          },
                          "username": {
                            "type": "string",
                            "description": "User username."
                          },
                          "realname": {
                            "type": "string",
                            "description": "User real name."
                          },
                          "profile_img": {
                            "type": "string",
                            "description": "User profile image."
                          }
                        }
                      },
                      "description": "Poll users."
                    },
                    "recurrence": {
                      "type": "object",
                      "properties": {},
                      "description": "Poll recurrence."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether to sync channel members."
                    },
                    "sync_channel": {
                      "type": "string",
                      "description": "Sync channel."
                    },
                    "anonymous": {
                      "type": "boolean",
                      "description": "Whether to use anonymous mode."
                    },
                    "intro": {
                      "type": "string",
                      "description": "Poll intro."
                    },
                    "creator": {
                      "type": "object",
                      "properties": {},
                      "description": "Poll creator."
                    },
                    "users_total": {
                      "type": "number",
                      "description": "Total number of users."
                    },
                    "paused": {
                      "type": "boolean",
                      "description": "Whether the poll is paused."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a one-time poll in the specified channel and invites current channel members. The authenticated user becomes the poll creator.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Poll name."
                  },
                  "channel": {
                    "type": "string",
                    "description": "Channel where the poll is posted and the members are invited."
                  },
                  "question": {
                    "type": "string",
                    "description": "Poll question."
                  },
                  "choices": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Poll choices."
                  },
                  "duration": {
                    "type": "number",
                    "description": "Duration of the poll in minutes."
                  }
                },
                "required": [
                  "name",
                  "channel",
                  "question",
                  "choices",
                  "duration"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/polls/{id}": {
      "get": {
        "tags": [
          "Poll (legacy)"
        ],
        "summary": "Get poll",
        "operationId": "GetPoll",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Poll unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Poll name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Poll time."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Poll timezone."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Question unique id."
                          },
                          "text": {
                            "type": "string",
                            "description": "Question text."
                          },
                          "answer_type": {
                            "type": "string",
                            "description": "Question answer type."
                          },
                          "answer_choices": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Question answer choices."
                          },
                          "add_own_options": {
                            "type": "boolean",
                            "description": "Whether to allow users to add their own options."
                          },
                          "one_option_limit": {
                            "type": "boolean",
                            "description": "Whether to limit the number of options to one."
                          }
                        }
                      },
                      "description": "Poll questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "User unique id."
                          },
                          "role": {
                            "type": "string",
                            "description": "User role."
                          },
                          "email": {
                            "type": "string",
                            "description": "User email."
                          },
                          "username": {
                            "type": "string",
                            "description": "User username."
                          },
                          "realname": {
                            "type": "string",
                            "description": "User real name."
                          },
                          "profile_img": {
                            "type": "string",
                            "description": "User profile image."
                          }
                        }
                      },
                      "description": "Poll users."
                    },
                    "recurrence": {
                      "type": "object",
                      "properties": {},
                      "description": "Poll recurrence."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether to sync channel members."
                    },
                    "sync_channel": {
                      "type": "string",
                      "description": "Sync channel."
                    },
                    "anonymous": {
                      "type": "boolean",
                      "description": "Whether to use anonymous mode."
                    },
                    "intro": {
                      "type": "string",
                      "description": "Poll intro."
                    },
                    "creator": {
                      "type": "object",
                      "properties": {},
                      "description": "Poll creator."
                    },
                    "users_total": {
                      "type": "number",
                      "description": "Total number of users."
                    },
                    "paused": {
                      "type": "boolean",
                      "description": "Whether the poll is paused."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns a poll by ID. The poll must belong to the authenticated team, and the authenticated user must have access to it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Poll unique id."
          }
        ]
      }
    },
    "/v1/polls/{id}/votes": {
      "get": {
        "tags": [
          "Poll (legacy)"
        ],
        "summary": "Get poll results",
        "operationId": "GetPollVotes",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total_results": {
                      "type": "number",
                      "description": "Total number of poll instances in the result."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Question unique id."
                          },
                          "text": {
                            "type": "string",
                            "description": "Question text."
                          },
                          "answer_type": {
                            "type": "string",
                            "description": "Question answer type."
                          },
                          "results": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "date": {
                                  "type": "string",
                                  "description": "Result date."
                                },
                                "answers": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "text": {
                                        "type": "string",
                                        "description": "Answer text."
                                      },
                                      "votes": {
                                        "type": "number",
                                        "description": "Answer votes."
                                      },
                                      "percentage": {
                                        "type": "number",
                                        "description": "Answer percentage."
                                      },
                                      "users": {
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "description": "User unique id."
                                            },
                                            "role": {
                                              "type": "string",
                                              "description": "User role."
                                            },
                                            "email": {
                                              "type": "string",
                                              "description": "User email."
                                            },
                                            "username": {
                                              "type": "string",
                                              "description": "User username."
                                            },
                                            "realname": {
                                              "type": "string",
                                              "description": "User real name."
                                            },
                                            "profile_img": {
                                              "type": "string",
                                              "description": "User profile image."
                                            }
                                          }
                                        },
                                        "description": "Users who chose this answer (when poll is not anonymous)."
                                      }
                                    }
                                  },
                                  "description": "Result answers."
                                }
                              }
                            },
                            "description": "Per-instance vote breakdown for this question."
                          }
                        }
                      },
                      "description": "Poll questions with aggregated votes."
                    },
                    "instances": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Instance unique id."
                          },
                          "date": {
                            "type": "string",
                            "description": "Instance date."
                          },
                          "answer_count": {
                            "type": "number",
                            "description": "Number of answers in this instance."
                          }
                        }
                      },
                      "description": "Poll instances included in the result."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns aggregated voting results for a poll. You can optionally filter results by date range using the `from` and `to` query parameters.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Poll unique id."
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Votes from date."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Votes to date."
          }
        ]
      }
    },
    "/v1/reports/": {
      "get": {
        "tags": [
          "Report (legacy)"
        ],
        "summary": "List reports",
        "operationId": "ListReports",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Report unique id."
                      },
                      "standup_id": {
                        "type": "number",
                        "description": "Standup unique id."
                      },
                      "timestamp": {
                        "type": "number",
                        "description": "Report timestamp (Unix)."
                      },
                      "channel": {
                        "type": "string",
                        "description": "Channel where the standup is posted."
                      },
                      "is_anonymous": {
                        "type": "boolean",
                        "description": "Whether the standup is anonymous."
                      },
                      "broadcast_thread": {
                        "type": "boolean",
                        "description": "Whether updates are posted in a thread."
                      },
                      "is_confidential": {
                        "type": "boolean",
                        "description": "Whether the standup is confidential."
                      },
                      "member": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User unique id."
                          },
                          "username": {
                            "type": "string",
                            "description": "User username."
                          },
                          "realname": {
                            "type": "string",
                            "description": "User real name."
                          },
                          "profileImg": {
                            "type": "object",
                            "properties": {},
                            "description": "User profile image URLs by size."
                          }
                        },
                        "description": "User who submitted the report (omitted when anonymous)."
                      },
                      "questions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "number",
                              "description": "Answer unique id."
                            },
                            "question": {
                              "type": "string",
                              "description": "Question text."
                            },
                            "question_id": {
                              "type": "number",
                              "description": "Question unique id."
                            },
                            "color": {
                              "type": "string",
                              "description": "Question color."
                            },
                            "answer": {
                              "type": "string",
                              "description": "Answer text (HTML when html=true)."
                            },
                            "images": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "title": {
                                    "type": "string",
                                    "description": "Image title."
                                  },
                                  "image_url": {
                                    "type": "string",
                                    "description": "Image URL."
                                  }
                                }
                              },
                              "description": "Images attached to the answer."
                            }
                          }
                        },
                        "description": "Report answers."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns standup reports visible to the authenticated user. You can filter results by standup, user, date range, and question ID.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Limit number of reports. Default is 30, maximum limit is 100."
          },
          {
            "name": "standup_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Receive reports for the specified standup only."
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Receive reports from the specified user only."
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Receive reports given after the specified timestamp."
          },
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Receive reports given before the specified timestamp."
          },
          {
            "name": "question_ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "Receive answers to specific questions only."
          },
          {
            "name": "html",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Receive anwers with html formatting."
          }
        ]
      },
      "post": {
        "tags": [
          "Report (legacy)"
        ],
        "summary": "Create report",
        "operationId": "CreateReport",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Report unique id."
                    },
                    "slack_ts": {
                      "type": "string",
                      "description": "Slack message timestamp."
                    },
                    "standup_id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "timestamp": {
                      "type": "number",
                      "description": "Report timestamp (Unix)."
                    },
                    "started_at": {
                      "type": "number",
                      "description": "When the report was started (Unix)."
                    },
                    "done_at": {
                      "type": "number",
                      "description": "When the report was completed (Unix)."
                    },
                    "broadcasted_at": {
                      "type": "string",
                      "description": "When the report was broadcast to the channel."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where the standup is posted."
                    },
                    "member": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "User unique id."
                        },
                        "role": {
                          "type": "string",
                          "description": "User role."
                        },
                        "username": {
                          "type": "string",
                          "description": "User username."
                        },
                        "realname": {
                          "type": "string",
                          "description": "User real name."
                        },
                        "profileImg": {
                          "type": "object",
                          "properties": {},
                          "description": "User profile image URLs by size."
                        }
                      },
                      "description": "User who submitted the report."
                    },
                    "answers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Answer unique id."
                          },
                          "answer": {
                            "type": "string",
                            "description": "Answer text."
                          },
                          "question": {
                            "type": "string",
                            "description": "Question text."
                          },
                          "question_id": {
                            "type": "number",
                            "description": "Question unique id."
                          },
                          "color": {
                            "type": "string",
                            "description": "Question color."
                          },
                          "images": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {}
                            },
                            "description": "Images attached to the answer."
                          }
                        }
                      },
                      "description": "Submitted answers."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a new standup report on behalf of the authenticated user. The standup must exist, be active, and include the authenticated user as a participant or creator.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "standup_id": {
                    "type": "integer",
                    "description": "Standup unique id"
                  },
                  "answers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Associative array with question ids that point to text answers"
                  }
                },
                "required": [
                  "standup_id",
                  "answers"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/me/standups": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List user standups",
        "operationId": "GetUserStandups",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Standup unique id."
                      },
                      "name": {
                        "type": "string",
                        "description": "Standup name."
                      },
                      "time": {
                        "type": "string",
                        "description": "Time standup starts."
                      },
                      "wait_time": {
                        "type": "number",
                        "description": "Minutes to wait after user logs in before asking a question. Null value means no automated asking."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "Timezone used to calculate standup time."
                      },
                      "days": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of days when standup is active."
                      },
                      "channel": {
                        "type": "string",
                        "description": "Channel where the standup updates are posted."
                      },
                      "questions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {}
                        },
                        "description": "List of standup questions."
                      },
                      "users": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {}
                        },
                        "description": "List of users taking part in the standup."
                      },
                      "sync_channel_members": {
                        "type": "boolean",
                        "description": "Standup participants will be synced with channel members."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the standups the authenticated user participates in. This endpoint is an alias of `/v1/standups` and returns the same detailed response format."
      }
    },
    "/v1/standups/": {
      "get": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "List standups",
        "operationId": "ListStandups",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Standup unique id."
                      },
                      "name": {
                        "type": "string",
                        "description": "Standup name."
                      },
                      "time": {
                        "type": "string",
                        "description": "Time standup starts."
                      },
                      "wait_time": {
                        "type": "number",
                        "description": "Minutes to wait after user logs in before asking a question. Null value means no automated asking."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "Timezone used to calculate standup time."
                      },
                      "days": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of days when standup is active."
                      },
                      "channel": {
                        "type": "string",
                        "description": "Channel where the standup updates are posted."
                      },
                      "questions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {}
                        },
                        "description": "List of standup questions."
                      },
                      "users": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {}
                        },
                        "description": "List of users taking part in the standup."
                      },
                      "sync_channel_members": {
                        "type": "boolean",
                        "description": "Standup participants will be synced with channel members."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the standups available to the authenticated user. Draft or restricted standups are hidden unless the authenticated user is the creator. Admins can request the full list by using the `admin` query parameter."
      },
      "post": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Create standup",
        "operationId": "CreateStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Standup name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Time standup starts (HH:MM:SS)."
                    },
                    "wait_time": {
                      "type": "number",
                      "description": "Minutes to wait after login before asking (-1 = no automatic asking)."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Timezone used to calculate standup time."
                    },
                    "days": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Days when standup is active."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where standup updates are posted."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup participants."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether participants are synced from the channel."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a new standup in the authenticated team. Participants can be provided explicitly with `users`, or derived from a channel when `sync_channel_members` is enabled.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Standup name."
                  },
                  "channel": {
                    "type": "string",
                    "description": "Channel where the standup updates are posted."
                  },
                  "time": {
                    "type": "string",
                    "description": "Time to ask standup in \"HH:MM:SS\" format."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "Timezone to use when calculating time to ask. If not specified, default is user local."
                  },
                  "wait_time": {
                    "type": "number",
                    "description": "Minutes to wait after team member is online before asking a question. Set to null so that users do not get asked at all automatically."
                  },
                  "days": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "An array of 3-letter words that define days to ask, example ['Mon', 'Wed', 'Fri']."
                  },
                  "questions": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "List of standup questions, an array of objects containing a \"question\" property. If ommited, 3 Geekbot recommended questions will be used."
                  },
                  "users": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "description": "Array of user ids that will be included in the standup."
                  },
                  "sync_channel_members": {
                    "type": "boolean",
                    "description": "Standup participants will be synced with channel members."
                  },
                  "personalised": {
                    "type": "boolean",
                    "description": "Allow users to change their personal schedule for the standup"
                  }
                },
                "required": [
                  "name",
                  "channel",
                  "time",
                  "timezone",
                  "days",
                  "users",
                  "sync_channel_members",
                  "personalised"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/standups/{id}": {
      "get": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Get standup",
        "operationId": "GetStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Standup name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Time standup starts."
                    },
                    "wait_time": {
                      "type": "number",
                      "description": "Minutes to wait after user logs in before asking a question. Null value means no automated asking."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Timezone used to calculate standup time."
                    },
                    "days": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "List of days when standup is active."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where the standup updates are posted."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "List of standup questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "List of users taking part in the standup."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Standup participants will be synced with channel members."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns a standup by ID. The standup must belong to the authenticated team, and the authenticated user must be a participant or the standup creator.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Standup unique id."
          }
        ]
      },
      "delete": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Delete standup",
        "operationId": "DeleteStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Standup name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Time standup starts (HH:MM:SS)."
                    },
                    "wait_time": {
                      "type": "number",
                      "description": "Minutes to wait after login before asking (-1 = no automatic asking)."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Timezone used to calculate standup time."
                    },
                    "days": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Days when standup is active."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where standup updates are posted."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup participants."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether participants are synced from the channel."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Deletes a standup. The authenticated user must have permission to edit it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Standup unique id."
          }
        ]
      },
      "patch": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Update standup",
        "operationId": "UpdateStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Standup name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Time standup starts (HH:MM:SS)."
                    },
                    "wait_time": {
                      "type": "number",
                      "description": "Minutes to wait after login before asking (-1 = no automatic asking)."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Timezone used to calculate standup time."
                    },
                    "days": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Days when standup is active."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where standup updates are posted."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup participants."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether participants are synced from the channel."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Updates one or more standup fields. Only properties included in the request body are changed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Standup unique id."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "channel": {
                    "type": "string",
                    "description": "Channel where the standup updates are posted."
                  },
                  "name": {
                    "type": "string",
                    "description": "Standup name."
                  },
                  "time": {
                    "type": "string",
                    "description": "Time to ask standup in HHMM format."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "Timezone to use when calculating time to ask."
                  },
                  "wait_time": {
                    "type": "number",
                    "description": "Minutes to wait after team member is online before asking a question. Set to null so that users do not get asked at all automatically."
                  },
                  "days": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "An array of 3-letter words that define days to ask, example ['Mon', 'Wed', 'Fri']"
                  },
                  "questions": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "List of standup questions, an array of objects containing a \"question\" property."
                  },
                  "users": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "description": "Array of user ids that will be included in the standup."
                  },
                  "sync_channel_members": {
                    "type": "boolean",
                    "description": "Standup participants will be synced with channel members. If this is set to \"false\" you need to provide the \"users\" parameter."
                  },
                  "personalised": {
                    "type": "boolean",
                    "description": "Allow users to change their personal schedule for the standup"
                  }
                },
                "required": [
                  "wait_time",
                  "sync_channel_members",
                  "personalised"
                ]
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Replace standup",
        "operationId": "ReplaceStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Standup name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Time standup starts (HH:MM:SS)."
                    },
                    "wait_time": {
                      "type": "number",
                      "description": "Minutes to wait after login before asking (-1 = no automatic asking)."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Timezone used to calculate standup time."
                    },
                    "days": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Days when standup is active."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where standup updates are posted."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup participants."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether participants are synced from the channel."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Replaces an existing standup configuration with the provided payload. All required fields must be included, and the authenticated user must have permission to edit the standup.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Standup unique id."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "channel": {
                    "type": "string",
                    "description": "Channel where the standup updates are posted."
                  },
                  "name": {
                    "type": "string",
                    "description": "Standup name."
                  },
                  "time": {
                    "type": "string",
                    "description": "Time to ask standup in HHMM format."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "Timezone to use when calculating time to ask. If not specified, default is user local."
                  },
                  "wait_time": {
                    "type": "number",
                    "description": "Minutes to wait after team member is online before asking a question. Set to null so that users do not get asked at all automatically."
                  },
                  "days": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "An array of 3-letter words that define days to ask, example ['Mon', 'Wed', 'Fri']"
                  },
                  "questions": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "List of standup questions, an array of objects containing a \"question\" property. If ommited, 3 Geekbot recommended questions will be used."
                  },
                  "users": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "description": "Array of user ids that will be included in the standup."
                  },
                  "sync_channel_members": {
                    "type": "boolean",
                    "description": "Standup participants will be synced with channel members. If this is set to \"false\" you need to provide the \"users\" parameter."
                  }
                },
                "required": [
                  "channel",
                  "name",
                  "time",
                  "timezone",
                  "wait_time",
                  "days",
                  "users",
                  "sync_channel_members"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/standups/{id}/duplicate": {
      "post": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Duplicate standup",
        "operationId": "DuplicateStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Standup unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Standup name."
                    },
                    "time": {
                      "type": "string",
                      "description": "Time standup starts (HH:MM:SS)."
                    },
                    "wait_time": {
                      "type": "number",
                      "description": "Minutes to wait after login before asking (-1 = no automatic asking)."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "Timezone used to calculate standup time."
                    },
                    "days": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Days when standup is active."
                    },
                    "channel": {
                      "type": "string",
                      "description": "Channel where standup updates are posted."
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup questions."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {}
                      },
                      "description": "Standup participants."
                    },
                    "sync_channel_members": {
                      "type": "boolean",
                      "description": "Whether participants are synced from the channel."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a new standup by duplicating an existing one. Any fields provided in the request body override the copied configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Standup name (required)."
                  },
                  "channel": {
                    "type": "string",
                    "description": "Channel where the standup updates are posted."
                  },
                  "time": {
                    "type": "string",
                    "description": "Time to ask standup in \"HH:MM:SS\" format."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "Timezone to use when calculating time to ask. If not specified, default is user local."
                  },
                  "wait_time": {
                    "type": "number",
                    "description": "Minutes to wait after team member is online before asking a question. Set to null so that users do not get asked at all automatically."
                  },
                  "days": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "An array of 3-letter words that define days to ask, example ['Mon', 'Wed', 'Fri']."
                  },
                  "questions": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "List of standup questions, an array of objects containing a \"question\" property. If ommited, 3 Geekbot recommended questions will be used."
                  },
                  "users": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "description": "Array of user ids that will be included in the standup."
                  },
                  "sync_channel_members": {
                    "type": "boolean",
                    "description": "Standup participants will be synced with channel members.."
                  },
                  "personalised": {
                    "type": "boolean",
                    "description": "Allow users to change their personal schedule for the standup"
                  }
                },
                "required": [
                  "name",
                  "channel",
                  "time",
                  "timezone",
                  "days",
                  "users",
                  "sync_channel_members",
                  "personalised"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/standups/{id}/start": {
      "post": {
        "tags": [
          "Standup (legacy)"
        ],
        "summary": "Start standup",
        "operationId": "StartStandup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "description": "Returns `\"ok\"` when standup jobs were queued.",
                  "example": "ok"
                }
              }
            }
          }
        },
        "description": "Starts a standup immediately. If `users` or `emails` are provided, the standup runs only for those participants.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Standup unique id."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "users": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of user ids that will be included in the standup."
                  },
                  "emails": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of user emails that will be included in the standup."
                  }
                },
                "required": [
                  "users",
                  "emails"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/teams/": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "List teams",
        "operationId": "ListTeams",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Team unique id."
                    },
                    "name": {
                      "type": "string",
                      "description": "Team name."
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User unique id."
                          },
                          "role": {
                            "type": "string",
                            "description": "User role."
                          },
                          "email": {
                            "type": "string",
                            "description": "User email."
                          },
                          "username": {
                            "type": "string",
                            "description": "User username."
                          },
                          "realname": {
                            "type": "string",
                            "description": "User real name."
                          },
                          "profile_img": {
                            "type": "string",
                            "description": "User profile image URL."
                          }
                        }
                      },
                      "description": "Users participating in at least one standup visible to the authenticated user."
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the team associated with the authenticated API key."
      }
    },
    "/v2/polls": {
      "get": {
        "tags": [
          "Poll"
        ],
        "summary": "List polls",
        "operationId": "ListV2Polls",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Poll id."
                          },
                          "name": {
                            "type": "string",
                            "description": "Poll name."
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "active",
                              "paused"
                            ],
                            "description": "Poll state."
                          },
                          "time": {
                            "type": "string",
                            "description": "Time of day the poll triggers."
                          },
                          "timezone": {
                            "type": "string",
                            "description": "Poll timezone."
                          },
                          "days": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Days the poll is active."
                          },
                          "broadcast_channel": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Channel id."
                              },
                              "name": {
                                "type": "string",
                                "description": "Channel name."
                              }
                            },
                            "description": "Channel where the poll is posted. May be null."
                          },
                          "is_anonymous": {
                            "type": "boolean",
                            "description": "Whether the poll is anonymous."
                          },
                          "owner": {
                            "type": "string",
                            "description": "User id of the poll creator."
                          },
                          "created": {
                            "type": "string",
                            "description": "ISO 8601 timestamp."
                          },
                          "updated": {
                            "type": "string",
                            "description": "ISO 8601 timestamp."
                          },
                          "members": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Member user id."
                                },
                                "email": {
                                  "type": "string",
                                  "description": "Member email address. Returned only when `member_email` is in `include`."
                                },
                                "username": {
                                  "type": "string",
                                  "description": "Member username. Returned only when `member_username` is in `include`."
                                },
                                "realname": {
                                  "type": "string",
                                  "description": "Member display name. Returned only when `member_realname` is in `include`."
                                }
                              }
                            },
                            "description": "Members invited to the poll."
                          },
                          "questions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number",
                                  "description": "Question id."
                                },
                                "text": {
                                  "type": "string",
                                  "description": "Question text shown to voters."
                                },
                                "position": {
                                  "type": "number",
                                  "description": "Display order within the poll (0-indexed)."
                                },
                                "answer_type": {
                                  "type": "string",
                                  "description": "Answer type (e.g. multiple_choice, open_ended)."
                                },
                                "choices": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "Answer choices (populated for multiple-choice questions; empty array otherwise)."
                                }
                              }
                            },
                            "description": "Only present when include=questions."
                          }
                        }
                      },
                      "description": "List of polls."
                    },
                    "next_cursor": {
                      "type": "string",
                      "description": "Cursor for the next page; null when has_more is false."
                    },
                    "has_more": {
                      "type": "boolean",
                      "description": "Whether more pages exist."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Validation failed (bad date, bad cursor, unknown include, etc.).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns active and paused polls created by the caller. Polls are only visible to their creator.",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated subset of: active, paused. Default: both."
          },
          {
            "name": "is_anonymous",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            },
            "description": "Filter by anonymity."
          },
          {
            "name": "broadcast_channel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Restrict to a specific channel id (e.g. \"C12345\")."
          },
          {
            "name": "created_since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (inclusive)."
          },
          {
            "name": "created_until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (exclusive)."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Opaque pagination cursor from a previous response. Must be replayed with the same filters that produced it; reusing it with different filters returns 400."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "Page size."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "questions",
                "member_username",
                "member_realname",
                "member_email"
              ]
            },
            "description": "Comma-separated extra fields to expand. The `member_*` values enrich each entry in `data.members` with the corresponding user field."
          }
        ]
      },
      "post": {
        "tags": [
          "Poll"
        ],
        "summary": "Create poll",
        "operationId": "CreateV2Poll",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Poll id."
                        },
                        "name": {
                          "type": "string",
                          "description": "Poll name."
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "active",
                            "paused"
                          ],
                          "description": "Poll state."
                        },
                        "time": {
                          "type": "string",
                          "description": "Time of day the poll triggers."
                        },
                        "timezone": {
                          "type": "string",
                          "description": "Poll timezone."
                        },
                        "days": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Days the poll is active."
                        },
                        "broadcast_channel": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Channel id."
                            },
                            "name": {
                              "type": "string",
                              "description": "Channel name."
                            }
                          },
                          "description": "Channel where the poll is posted. May be null."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether the poll is anonymous."
                        },
                        "owner": {
                          "type": "string",
                          "description": "User id of the poll creator."
                        },
                        "created": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "updated": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "members": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Member user id."
                              },
                              "email": {
                                "type": "string",
                                "description": "Member email address. Returned only when `member_email` is in `include`."
                              },
                              "username": {
                                "type": "string",
                                "description": "Member username. Returned only when `member_username` is in `include`."
                              },
                              "realname": {
                                "type": "string",
                                "description": "Member display name. Returned only when `member_realname` is in `include`."
                              }
                            }
                          },
                          "description": "Members invited to the poll."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Validation failed (missing/invalid body field, or malformed Idempotency-Key).\n\n`CHANNEL_NOT_FOUND` — `broadcast_channel` could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`MISMATCHED_IDEMPOTENCY_BODY` — Idempotency-Key reused with a different request body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "MISMATCHED_IDEMPOTENCY_BODY"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a one-shot poll that posts to `broadcast_channel` on publish. Members are auto-synced from the broadcast channel.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Poll name."
                  },
                  "question": {
                    "type": "string",
                    "description": "Poll question text."
                  },
                  "choices": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Answer choices (at least 2)."
                  },
                  "broadcast_channel": {
                    "type": "string",
                    "description": "Channel id or name where the poll is posted."
                  },
                  "duration": {
                    "type": "number",
                    "description": "Duration the poll stays open, in minutes."
                  }
                },
                "required": [
                  "name",
                  "question",
                  "choices",
                  "broadcast_channel"
                ]
              }
            }
          }
        }
      }
    },
    "/v2/polls/{pollId}": {
      "get": {
        "tags": [
          "Poll"
        ],
        "summary": "Get poll",
        "operationId": "GetV2Poll",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Poll id."
                        },
                        "name": {
                          "type": "string",
                          "description": "Poll name."
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "active",
                            "paused"
                          ],
                          "description": "Poll state."
                        },
                        "time": {
                          "type": "string",
                          "description": "Time of day the poll triggers."
                        },
                        "timezone": {
                          "type": "string",
                          "description": "Poll timezone."
                        },
                        "days": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Days the poll is active."
                        },
                        "broadcast_channel": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Channel id."
                            },
                            "name": {
                              "type": "string",
                              "description": "Channel name."
                            }
                          },
                          "description": "Channel where the poll is posted. May be null."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether the poll is anonymous."
                        },
                        "owner": {
                          "type": "string",
                          "description": "User id of the poll creator."
                        },
                        "created": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "updated": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "members": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Member user id."
                              },
                              "email": {
                                "type": "string",
                                "description": "Member email address. Returned only when `member_email` is in `include`."
                              },
                              "username": {
                                "type": "string",
                                "description": "Member username. Returned only when `member_username` is in `include`."
                              },
                              "realname": {
                                "type": "string",
                                "description": "Member display name. Returned only when `member_realname` is in `include`."
                              }
                            }
                          },
                          "description": "Members invited to the poll."
                        },
                        "questions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number",
                                "description": "Question id."
                              },
                              "text": {
                                "type": "string",
                                "description": "Question text shown to voters."
                              },
                              "position": {
                                "type": "number",
                                "description": "Display order within the poll (0-indexed)."
                              },
                              "answer_type": {
                                "type": "string",
                                "description": "Answer type (e.g. multiple_choice, open_ended)."
                              },
                              "choices": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": "Answer choices (populated for multiple-choice questions; empty array otherwise)."
                              }
                            }
                          },
                          "description": "Only present when include=questions."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The poll does not exist or is not visible to the caller.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns one poll the caller created (active or paused). Returns 404 for any non-visible poll — including polls owned by other users or in archived/draft state — to avoid leaking existence.",
        "parameters": [
          {
            "name": "pollId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Poll id."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "questions",
                "member_username",
                "member_realname",
                "member_email"
              ]
            },
            "description": "Comma-separated extra fields to expand. The `member_*` values enrich each entry in `data.members` with the corresponding user field."
          }
        ]
      }
    },
    "/v2/polls/{pollId}/votes": {
      "get": {
        "tags": [
          "Poll"
        ],
        "summary": "Get poll votes",
        "operationId": "GetV2PollVotes",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "poll_id": {
                          "type": "number",
                          "description": "Poll id."
                        },
                        "poll_name": {
                          "type": "string",
                          "description": "Poll name."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether the poll is anonymous."
                        },
                        "instances": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "instance_id": {
                                "type": "number",
                                "description": "Poll instance id."
                              },
                              "date": {
                                "type": "string",
                                "description": "Broadcast date (YYYY-MM-DD)."
                              },
                              "questions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "question_id": {
                                      "type": "number",
                                      "description": "Question id."
                                    },
                                    "text": {
                                      "type": "string",
                                      "description": "Question text."
                                    },
                                    "answer_type": {
                                      "type": "string",
                                      "enum": [
                                        "multiple_choice",
                                        "open_ended"
                                      ],
                                      "description": "Answer type."
                                    },
                                    "total_responses": {
                                      "type": "number",
                                      "description": "Total answers submitted."
                                    },
                                    "total_responders": {
                                      "type": "number",
                                      "description": "Distinct responders."
                                    },
                                    "choices": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "text": {
                                            "type": "string",
                                            "description": "Choice label."
                                          },
                                          "votes": {
                                            "type": "number",
                                            "description": "Vote count for this choice."
                                          },
                                          "voters": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            },
                                            "description": "Voter user ids. Null when is_anonymous."
                                          }
                                        }
                                      },
                                      "description": "Multi-choice only: per-choice vote counts."
                                    },
                                    "categorization_status": {
                                      "type": "string",
                                      "description": "Open-ended only: pending|processing|completed|failed|null."
                                    },
                                    "categories": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "name": {
                                            "type": "string",
                                            "description": "Category name."
                                          },
                                          "count": {
                                            "type": "number",
                                            "description": "Number of answers in this category (may sum to more than total_responses for multi-label)."
                                          }
                                        }
                                      },
                                      "description": "Open-ended only: counts per assigned category (when status=completed)."
                                    },
                                    "responses": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "text": {
                                            "type": "string",
                                            "description": "Response text."
                                          },
                                          "categories": {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            },
                                            "description": "Categories assigned to this response (when status=completed)."
                                          },
                                          "user_id": {
                                            "type": "string",
                                            "description": "Responder user id. Null when is_anonymous."
                                          }
                                        }
                                      },
                                      "description": "Open-ended only: raw responses with category labels."
                                    }
                                  }
                                },
                                "description": "Aggregated per-question results."
                              }
                            }
                          },
                          "description": "Instances in scope (latest only by default)."
                        }
                      },
                      "description": "Poll-results object."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Validation failed (bad date, reversed range, etc.).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The poll does not exist or is not visible to the caller.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns aggregated vote results for the poll. Without time filters, returns only the latest broadcast instance. With since/until, returns every instance whose broadcast date falls in the range.",
        "parameters": [
          {
            "name": "pollId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Poll id."
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (inclusive)."
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (exclusive). Defaults to now."
          }
        ]
      }
    },
    "/v2/reports": {
      "get": {
        "tags": [
          "Report"
        ],
        "summary": "List reports",
        "operationId": "ListV2Reports",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Report id."
                          },
                          "standup_id": {
                            "type": "number",
                            "description": "Standup id the report belongs to."
                          },
                          "standup_name": {
                            "type": "string",
                            "description": "Standup name."
                          },
                          "user_id": {
                            "type": "string",
                            "description": "User id of the report author. Null when the report is anonymous (standup or report-level flag)."
                          },
                          "posted_at": {
                            "type": "string",
                            "description": "ISO 8601 timestamp when the report was submitted."
                          },
                          "is_anonymous": {
                            "type": "boolean",
                            "description": "Whether this report is anonymous (true if either the standup or the report itself was anonymous at submission)."
                          },
                          "is_confidential": {
                            "type": "boolean",
                            "description": "Whether the standup is confidential."
                          },
                          "answers": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number",
                                  "description": "Answer id."
                                },
                                "question_id": {
                                  "type": "number",
                                  "description": "Question id the answer belongs to."
                                },
                                "question": {
                                  "type": "string",
                                  "description": "Question text shown to the user."
                                },
                                "answer": {
                                  "type": "string",
                                  "description": "Plain-text answer."
                                }
                              }
                            },
                            "description": "Per-question answers."
                          }
                        }
                      },
                      "description": "List of reports."
                    },
                    "next_cursor": {
                      "type": "string",
                      "description": "Cursor for the next page; null when has_more is false."
                    },
                    "has_more": {
                      "type": "boolean",
                      "description": "Whether more pages exist."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Validation failed (invalid date, range over 90 days, reversed range, bad cursor, etc.).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns submitted reports from active standups the caller can see. Time window defaults to the last 7 days when neither `since` nor `until` is provided. The window cannot exceed 90 days — wider ranges return 400.",
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (inclusive). Default: now - 7 days."
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (exclusive). Default: now."
          },
          {
            "name": "standup_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Restrict to a single standup."
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Restrict to a single user (Slack-style id, e.g. \"U123\"). When filtering by another user's id, reports from anonymous standups are excluded."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Opaque pagination cursor from a previous response. Must be replayed with the same since/until/standup_id/user_id that produced it; reusing it with different filters returns 400."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "Page size."
          },
          {
            "name": "view",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "summary",
                "full"
              ],
              "default": "full"
            },
            "description": "Response shape. Summary omits the answers block."
          }
        ]
      },
      "post": {
        "tags": [
          "Report"
        ],
        "summary": "Create report",
        "operationId": "CreateV2Report",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Report id."
                        },
                        "standup_id": {
                          "type": "number",
                          "description": "Standup id the report belongs to."
                        },
                        "standup_name": {
                          "type": "string",
                          "description": "Standup name."
                        },
                        "user_id": {
                          "type": "string",
                          "description": "User id of the report author. Null when the report is anonymous (standup or report-level flag)."
                        },
                        "posted_at": {
                          "type": "string",
                          "description": "ISO 8601 timestamp when the report was submitted."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether this report is anonymous (true if either the standup or the report itself was anonymous at submission)."
                        },
                        "is_confidential": {
                          "type": "boolean",
                          "description": "Whether the standup is confidential."
                        },
                        "answers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number",
                                "description": "Answer id."
                              },
                              "question_id": {
                                "type": "number",
                                "description": "Question id the answer belongs to."
                              },
                              "question": {
                                "type": "string",
                                "description": "Question text shown to the user."
                              },
                              "answer": {
                                "type": "string",
                                "description": "Plain-text answer."
                              }
                            }
                          },
                          "description": "Per-question answers."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Missing/invalid field, wrong answer count, unknown question_id, or malformed Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The standup does not exist, is paused, is a poll, or the caller is not a member.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`MISMATCHED_IDEMPOTENCY_BODY` — Idempotency-Key reused with a different request body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "MISMATCHED_IDEMPOTENCY_BODY"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Submits a report for one of the caller's active standups. All standup questions must be answered in a single call. Broadcasts the report to the standup's channel on success.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "standup_id": {
                    "type": "number",
                    "description": "Standup id."
                  },
                  "answers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "One entry per standup question."
                  },
                  "answers.question_id": {
                    "type": "number",
                    "description": "Question id (must belong to the standup)."
                  },
                  "answers.text": {
                    "type": "string",
                    "description": "Plain-text answer."
                  }
                },
                "required": [
                  "standup_id",
                  "answers",
                  "answers.question_id",
                  "answers.text"
                ]
              }
            }
          }
        }
      }
    },
    "/v2/reports/{reportId}": {
      "get": {
        "tags": [
          "Report"
        ],
        "summary": "Get report",
        "operationId": "GetV2Report",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Report id."
                        },
                        "standup_id": {
                          "type": "number",
                          "description": "Standup id the report belongs to."
                        },
                        "standup_name": {
                          "type": "string",
                          "description": "Standup name."
                        },
                        "user_id": {
                          "type": "string",
                          "description": "User id of the report author. Null when the report is anonymous (standup or report-level flag)."
                        },
                        "posted_at": {
                          "type": "string",
                          "description": "ISO 8601 timestamp when the report was submitted."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether this report is anonymous (true if either the standup or the report itself was anonymous at submission)."
                        },
                        "is_confidential": {
                          "type": "boolean",
                          "description": "Whether the standup is confidential."
                        },
                        "answers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number",
                                "description": "Answer id."
                              },
                              "question_id": {
                                "type": "number",
                                "description": "Question id the answer belongs to."
                              },
                              "question": {
                                "type": "string",
                                "description": "Question text shown to the user."
                              },
                              "answer": {
                                "type": "string",
                                "description": "Plain-text answer."
                              }
                            }
                          },
                          "description": "Per-question answers."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The report does not exist or is not visible to the caller.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns one submitted report from a standup the caller can see. Returns 404 for any non-visible report — including pending reports, reports from paused or confidential standups not owned by the caller, or other teams — to avoid leaking existence.",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Report id."
          }
        ]
      },
      "patch": {
        "tags": [
          "Report"
        ],
        "summary": "Update report",
        "operationId": "EditV2Report",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Report id."
                        },
                        "standup_id": {
                          "type": "number",
                          "description": "Standup id the report belongs to."
                        },
                        "standup_name": {
                          "type": "string",
                          "description": "Standup name."
                        },
                        "user_id": {
                          "type": "string",
                          "description": "User id of the report author. Null when the report is anonymous (standup or report-level flag)."
                        },
                        "posted_at": {
                          "type": "string",
                          "description": "ISO 8601 timestamp when the report was submitted."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether this report is anonymous (true if either the standup or the report itself was anonymous at submission)."
                        },
                        "is_confidential": {
                          "type": "boolean",
                          "description": "Whether the standup is confidential."
                        },
                        "answers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number",
                                "description": "Answer id."
                              },
                              "question_id": {
                                "type": "number",
                                "description": "Question id the answer belongs to."
                              },
                              "question": {
                                "type": "string",
                                "description": "Question text shown to the user."
                              },
                              "answer": {
                                "type": "string",
                                "description": "Plain-text answer."
                              }
                            }
                          },
                          "description": "Per-question answers."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Missing/invalid field or unknown question_id.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The report does not exist or the caller is not the author.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Updates one or more answers on a report the caller owns. Partial updates are allowed — only the supplied answers are changed. If the report was broadcasted, the broadcast message is updated.",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Report id."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "answers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "One or more answers to update."
                  },
                  "answers.question_id": {
                    "type": "number",
                    "description": "Question id (must belong to the report's standup)."
                  },
                  "answers.text": {
                    "type": "string",
                    "description": "New plain-text answer."
                  }
                },
                "required": [
                  "answers",
                  "answers.question_id",
                  "answers.text"
                ]
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Report"
        ],
        "summary": "Delete report",
        "operationId": "DeleteV2Report",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Always true on success."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The report does not exist or the caller is not the author.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Discards a report the caller owns. Removes the broadcast message if one was posted. Listings exclude the report, but its history is retained.",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Report id."
          }
        ]
      }
    },
    "/v2/standups": {
      "get": {
        "tags": [
          "Standup"
        ],
        "summary": "List standups",
        "operationId": "ListV2Standups",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "description": "Standup id."
                          },
                          "name": {
                            "type": "string",
                            "description": "Standup name."
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "active",
                              "paused"
                            ],
                            "description": "Standup state."
                          },
                          "time": {
                            "type": "string",
                            "description": "Time of day the standup runs."
                          },
                          "wait_time": {
                            "type": "number",
                            "description": "Minutes to wait after login before asking. May be null."
                          },
                          "timezone": {
                            "type": "string",
                            "description": "Standup timezone."
                          },
                          "days": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Days the standup is active."
                          },
                          "broadcast_channel": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Channel id."
                              },
                              "name": {
                                "type": "string",
                                "description": "Channel name."
                              }
                            },
                            "description": "Channel where updates are posted. May be null."
                          },
                          "is_anonymous": {
                            "type": "boolean",
                            "description": "Whether the standup is anonymous."
                          },
                          "is_confidential": {
                            "type": "boolean",
                            "description": "Whether the standup is confidential."
                          },
                          "owner": {
                            "type": "string",
                            "description": "User id of the standup creator."
                          },
                          "created": {
                            "type": "string",
                            "description": "ISO 8601 timestamp."
                          },
                          "updated": {
                            "type": "string",
                            "description": "ISO 8601 timestamp."
                          },
                          "members": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Member user id."
                                },
                                "email": {
                                  "type": "string",
                                  "description": "Member email address. Returned only when `member_email` is in `include`."
                                },
                                "username": {
                                  "type": "string",
                                  "description": "Member username. Returned only when `member_username` is in `include`."
                                },
                                "realname": {
                                  "type": "string",
                                  "description": "Member display name. Returned only when `member_realname` is in `include`."
                                }
                              }
                            },
                            "description": "Members participating in the standup."
                          },
                          "questions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number",
                                  "description": "Question id."
                                },
                                "text": {
                                  "type": "string",
                                  "description": "Question text shown to members."
                                },
                                "position": {
                                  "type": "number",
                                  "description": "Display order within the standup (0-indexed)."
                                },
                                "answer_type": {
                                  "type": "string",
                                  "description": "Answer type (e.g. text, multiple_choice)."
                                },
                                "choices": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "Answer choices (populated for multiple-choice questions; empty array otherwise)."
                                }
                              }
                            },
                            "description": "Only present when include=questions."
                          }
                        }
                      },
                      "description": "List of standups."
                    },
                    "next_cursor": {
                      "type": "string",
                      "description": "Cursor for the next page; null when has_more is false."
                    },
                    "has_more": {
                      "type": "boolean",
                      "description": "Whether more pages exist."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Validation failed (bad date, bad cursor, unknown include, etc.).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns active and paused standups visible to the caller. A standup is visible when the caller is a member of it (for non-confidential standups) or its creator (for confidential standups). Polls are excluded.",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated subset of: active, paused. Default: both."
          },
          {
            "name": "is_anonymous",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            },
            "description": "Filter by anonymity."
          },
          {
            "name": "broadcast_channel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Restrict to a specific channel id (e.g. \"C12345\")."
          },
          {
            "name": "created_since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (inclusive)."
          },
          {
            "name": "created_until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO 8601 or YYYY-MM-DD (exclusive)."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Opaque pagination cursor from a previous response. Must be replayed with the same filters that produced it; reusing it with different filters returns 400."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "description": "Page size."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "questions",
                "member_username",
                "member_realname",
                "member_email"
              ]
            },
            "description": "Comma-separated extra fields to expand. The `member_*` values enrich each entry in `data.members` with the corresponding user field."
          }
        ]
      },
      "post": {
        "tags": [
          "Standup"
        ],
        "summary": "Create standup",
        "operationId": "CreateV2Standup",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Standup id."
                        },
                        "name": {
                          "type": "string",
                          "description": "Standup name."
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "active",
                            "paused"
                          ],
                          "description": "Standup state."
                        },
                        "time": {
                          "type": "string",
                          "description": "Time of day the standup runs."
                        },
                        "wait_time": {
                          "type": "number",
                          "description": "Minutes to wait after login before asking. May be null."
                        },
                        "timezone": {
                          "type": "string",
                          "description": "Standup timezone."
                        },
                        "days": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Days the standup is active."
                        },
                        "broadcast_channel": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Channel id."
                            },
                            "name": {
                              "type": "string",
                              "description": "Channel name."
                            }
                          },
                          "description": "Channel where updates are posted. May be null."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether the standup is anonymous."
                        },
                        "is_confidential": {
                          "type": "boolean",
                          "description": "Whether the standup is confidential."
                        },
                        "owner": {
                          "type": "string",
                          "description": "User id of the standup creator."
                        },
                        "created": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "updated": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "members": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Member user id."
                              },
                              "email": {
                                "type": "string",
                                "description": "Member email address. Returned only when `member_email` is in `include`."
                              },
                              "username": {
                                "type": "string",
                                "description": "Member username. Returned only when `member_username` is in `include`."
                              },
                              "realname": {
                                "type": "string",
                                "description": "Member display name. Returned only when `member_realname` is in `include`."
                              }
                            }
                          },
                          "description": "Members participating in the standup."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "`INVALID_PARAMETER` — Validation failed (missing/invalid body field, or malformed Idempotency-Key).\n\n`CHANNEL_NOT_FOUND` — `broadcast_channel` or `sync_channel` could not be resolved.\n\n`USER_NOT_FOUND` — One or more ids in `users` are not known to the team.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_PARAMETER"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "`MISMATCHED_IDEMPOTENCY_BODY` — Idempotency-Key reused with a different request body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "MISMATCHED_IDEMPOTENCY_BODY"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a non-confidential standup. Members are taken from `users` if provided; otherwise synced from `sync_channel` (falling back to `broadcast_channel`).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Standup name. Defaults to \"Standup #<broadcast channel>\"."
                  },
                  "questions": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {}
                    },
                    "description": "List of questions. Each item: { \"text\": String, \"choices\"?: String[] }. When `choices` is present the question is multiple-choice."
                  },
                  "days": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Workdays (e.g. [\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\"])."
                  },
                  "time": {
                    "type": "string",
                    "description": "Time of day, \"HH:MM\" (or \"HH:MM:SS\")."
                  },
                  "broadcast_channel": {
                    "type": "string",
                    "description": "Channel id or name where reports are posted."
                  },
                  "sync_channel": {
                    "type": "string",
                    "description": "Channel id or name to sync members from."
                  },
                  "users": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Explicit list of user ids; mutually exclusive with `sync_channel` semantics."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "Timezone used to compute the ask time."
                  },
                  "is_anonymous": {
                    "type": "boolean",
                    "description": "Whether responses are anonymous."
                  }
                },
                "required": [
                  "questions",
                  "days",
                  "time",
                  "broadcast_channel"
                ]
              }
            }
          }
        }
      }
    },
    "/v2/standups/{standupId}": {
      "get": {
        "tags": [
          "Standup"
        ],
        "summary": "Get standup",
        "operationId": "GetV2Standup",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Standup id."
                        },
                        "name": {
                          "type": "string",
                          "description": "Standup name."
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "active",
                            "paused"
                          ],
                          "description": "Standup state."
                        },
                        "time": {
                          "type": "string",
                          "description": "Time of day the standup runs."
                        },
                        "wait_time": {
                          "type": "number",
                          "description": "Minutes to wait after login before asking. May be null."
                        },
                        "timezone": {
                          "type": "string",
                          "description": "Standup timezone."
                        },
                        "days": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Days the standup is active."
                        },
                        "broadcast_channel": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Channel id."
                            },
                            "name": {
                              "type": "string",
                              "description": "Channel name."
                            }
                          },
                          "description": "Channel where updates are posted. May be null."
                        },
                        "is_anonymous": {
                          "type": "boolean",
                          "description": "Whether the standup is anonymous."
                        },
                        "is_confidential": {
                          "type": "boolean",
                          "description": "Whether the standup is confidential."
                        },
                        "owner": {
                          "type": "string",
                          "description": "User id of the standup creator."
                        },
                        "created": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "updated": {
                          "type": "string",
                          "description": "ISO 8601 timestamp."
                        },
                        "members": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Member user id."
                              },
                              "email": {
                                "type": "string",
                                "description": "Member email address. Returned only when `member_email` is in `include`."
                              },
                              "username": {
                                "type": "string",
                                "description": "Member username. Returned only when `member_username` is in `include`."
                              },
                              "realname": {
                                "type": "string",
                                "description": "Member display name. Returned only when `member_realname` is in `include`."
                              }
                            }
                          },
                          "description": "Members participating in the standup."
                        },
                        "questions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number",
                                "description": "Question id."
                              },
                              "text": {
                                "type": "string",
                                "description": "Question text shown to members."
                              },
                              "position": {
                                "type": "number",
                                "description": "Display order within the standup (0-indexed)."
                              },
                              "answer_type": {
                                "type": "string",
                                "description": "Answer type (e.g. text, multiple_choice)."
                              },
                              "choices": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": "Answer choices (populated for multiple-choice questions; empty array otherwise)."
                              }
                            }
                          },
                          "description": "Only present when include=questions."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "`NOT_FOUND` — The standup does not exist or is not visible to the caller.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "NOT_FOUND"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns one standup the caller can see (active or paused). Returns 404 for any non-visible standup — including draft/archived states, polls, other team, or confidential standups not owned by the caller — to avoid leaking existence.",
        "parameters": [
          {
            "name": "standupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Standup id."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "questions",
                "member_username",
                "member_realname",
                "member_email"
              ]
            },
            "description": "Comma-separated extra fields to expand. The `member_*` values enrich each entry in `data.members` with the corresponding user field."
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "API key for Geekbot public API."
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "x-tagGroups": [
    {
      "name": "Current",
      "tags": [
        "User",
        "Team",
        "Poll",
        "Report",
        "Standup"
      ]
    },
    {
      "name": "Legacy",
      "tags": [
        "Poll (legacy)",
        "Report (legacy)",
        "Standup (legacy)"
      ]
    }
  ]
}
