{
  "item": [
    {
      "name": "bots",
      "description": "Create, fetch, cancel, and control meeting-bot jobs.",
      "item": [
        {
          "id": "43a05e02-c951-4359-a5e2-0a2dd8db10e5",
          "name": "Dispatch a meeting bot",
          "request": {
            "name": "Dispatch a meeting bot",
            "description": {
              "content": "Schedule a meetbot bot to join a meeting URL. If `joinAt` is in\nthe past, the bot dispatches immediately; otherwise the\norchestrator sleeps the dispatch task until that wall-clock time.\n\nThe job's `externalId` is your idempotency key — POSTing twice\nwith the same `externalId` for the same consumer returns the\nexisting job rather than spinning up a duplicate bot.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "jobs"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"externalId\": \"<string>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"displayName\": \"<string>\",\n  \"webhooks\": {\n    \"onStatusChange\": \"<uri>\",\n    \"onFinalize\": \"<uri>\"\n  },\n  \"metadata\": {\n    \"key_0\": 1045.059719148187\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "4525ccd5-5414-4d05-964b-13e2dfb46a73",
              "name": "Job created and queued for dispatch.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"externalId\": \"<string>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"displayName\": \"<string>\",\n  \"webhooks\": {\n    \"onStatusChange\": \"<uri>\",\n    \"onFinalize\": \"<uri>\"\n  },\n  \"metadata\": {\n    \"key_0\": 1045.059719148187\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"<uuid>\",\n  \"externalId\": \"<string>\",\n  \"status\": \"completed\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-sdk\",\n  \"joinAt\": \"<dateTime>\",\n  \"attempts\": \"<integer>\",\n  \"createdAt\": \"<dateTime>\",\n  \"startedAt\": \"<string,null-date-time>\",\n  \"finalizedAt\": \"<string,null-date-time>\",\n  \"manifestUri\": \"<string,null-uri>\",\n  \"failureCode\": \"meeting_not_found\",\n  \"failureDetail\": \"<string,null>\",\n  \"metadata\": {\n    \"key_0\": 5059.1861161040815\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd36792a-29a4-44c6-a27a-8db08379ff18",
              "name": "Request body failed schema validation.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"externalId\": \"<string>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"displayName\": \"<string>\",\n  \"webhooks\": {\n    \"onStatusChange\": \"<uri>\",\n    \"onFinalize\": \"<uri>\"\n  },\n  \"metadata\": {\n    \"key_0\": 1045.059719148187\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9c124541-04ef-40d1-a259-aa3b8d3ed968",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"externalId\": \"<string>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"displayName\": \"<string>\",\n  \"webhooks\": {\n    \"onStatusChange\": \"<uri>\",\n    \"onFinalize\": \"<uri>\"\n  },\n  \"metadata\": {\n    \"key_0\": 1045.059719148187\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "69f88840-56f6-4fde-9fca-d09b4b5ec1c0",
              "name": "Unhandled server error. The orchestrator captured a Sentry event; include the response timestamp when reporting.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"externalId\": \"<string>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"displayName\": \"<string>\",\n  \"webhooks\": {\n    \"onStatusChange\": \"<uri>\",\n    \"onFinalize\": \"<uri>\"\n  },\n  \"metadata\": {\n    \"key_0\": 1045.059719148187\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "586e61cc-d4cd-461f-af8c-5502442d3752",
          "name": "Fetch a job",
          "request": {
            "name": "Fetch a job",
            "description": {
              "content": "Returns the current state of a job. Scoped to the calling consumer.",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "jobs", ":id"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "<uuid>",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "856246d4-f177-4d24-8db1-3f2c3dfa34b9",
              "name": "Job found.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"<uuid>\",\n  \"externalId\": \"<string>\",\n  \"status\": \"completed\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-sdk\",\n  \"joinAt\": \"<dateTime>\",\n  \"attempts\": \"<integer>\",\n  \"createdAt\": \"<dateTime>\",\n  \"startedAt\": \"<string,null-date-time>\",\n  \"finalizedAt\": \"<string,null-date-time>\",\n  \"manifestUri\": \"<string,null-uri>\",\n  \"failureCode\": \"meeting_not_found\",\n  \"failureDetail\": \"<string,null>\",\n  \"metadata\": {\n    \"key_0\": 5059.1861161040815\n  },\n  \"autoLeave\": {\n    \"afterEntryDelaySeconds\": 600,\n    \"afterSilenceSeconds\": 1200,\n    \"afterSoloSeconds\": 60,\n    \"afterMaxSeconds\": 14400,\n    \"onBotDetected\": false\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f923437f-2edc-4c2c-88a2-d050c1642c96",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c291d141-cea5-4d43-a099-f4bcc6ae05e9",
              "name": "Resource not found (or not visible to this consumer).",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "00114ba7-07f6-4b39-b932-13c9931f54f8",
          "name": "Cancel a job",
          "request": {
            "name": "Cancel a job",
            "description": {
              "content": "Marks the job as `cancelled`. If the bot has already joined,\nthe orchestrator signals it to leave on its next heartbeat;\nif it hasn't dispatched yet, the queued dispatch is skipped.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "jobs", ":id"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "<uuid>",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "body": {},
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "486fee1b-fcb1-4a67-bc11-fb37ab7e82f2",
              "name": "Cancelled. No body.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "2fd3dd07-faf3-47f4-b29e-8ddc9722ca2e",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b2e882ee-5fcc-4a1b-a7f2-5ddf2e6c2517",
          "name": "Ask the host for explicit recording consent",
          "request": {
            "name": "Ask the host for explicit recording consent",
            "description": {
              "content": "Queues a bot-control verb that asks the meeting host to grant\nexplicit recording permission. The orchestrator returns\nimmediately with the queued command id. The actual host\ndecision (granted / denied / timeout) lands on the consumer's\nwebhook later as `bot.recording_permission_response`.\n\nIdempotent: re-issuing the verb while a previous one is still\nundispatched returns the existing command id.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "jobs", ":id", "request-recording-permission"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "<uuid>",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {},
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "0f0ef294-dc51-44bd-924b-a50fa219dd4c",
              "name": "Verb queued (or matched an undispatched verb).",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id", "request-recording-permission"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"queued\",\n  \"commandId\": \"<uuid>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0f3252a7-2b48-4e0d-bea2-bcdcd6cea2fb",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id", "request-recording-permission"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eeb27074-144d-4c37-bc4d-6314173e8591",
              "name": "Resource not found (or not visible to this consumer).",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id", "request-recording-permission"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "befe942e-861b-41d8-873b-6b545b311028",
              "name": "Job is in a terminal/teardown state — there's no one to ask.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "jobs", ":id", "request-recording-permission"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUIDv4 of the job, returned by `POST /api/v1/jobs`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<uuid>",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "recordings",
      "description": "Manifest + media artifacts produced by completed jobs.",
      "item": []
    },
    {
      "name": "calendar",
      "description": "Calendar-invite intake (used by the meetbot-email worker).",
      "item": [
        {
          "id": "7c0ace2a-1240-4f14-9efc-c4de76c84153",
          "name": "Receive a parsed calendar invite",
          "request": {
            "name": "Receive a parsed calendar invite",
            "description": {
              "content": "Used by the meetbot-email Cloudflare Worker to forward parsed\ncalendar invites (after extracting the meeting URL from the\nICS attachment) to the orchestrator. Authenticated by a\nshared secret in `x-meetbot-intake-secret`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "intake", "calendar-invite"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"organizerEmail\": \"<email>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"subject\": \"(no subject)\",\n  \"icalUid\": \"<string,null>\"\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-meetbot-intake-secret"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "12431c70-8bf3-4677-97a3-41097b374eba",
              "name": "Existing job matched (idempotent dedupe).",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "intake", "calendar-invite"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-intake-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"organizerEmail\": \"<email>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"subject\": \"(no subject)\",\n  \"icalUid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"kind\": \"scheduled\",\n  \"jobId\": \"<uuid>\",\n  \"consumerId\": \"<string>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c69cfe54-814d-4a43-9829-10726fa7a32e",
              "name": "New job scheduled.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "intake", "calendar-invite"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-intake-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"organizerEmail\": \"<email>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"subject\": \"(no subject)\",\n  \"icalUid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"kind\": \"scheduled\",\n  \"jobId\": \"<uuid>\",\n  \"consumerId\": \"<string>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "65c3bf09-6f60-4292-bd8b-b5ae250989d5",
              "name": "Request body failed schema validation.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "intake", "calendar-invite"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-intake-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"organizerEmail\": \"<email>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"subject\": \"(no subject)\",\n  \"icalUid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "12eb7c01-1514-4883-9167-63acbfa49a90",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "intake", "calendar-invite"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-intake-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"organizerEmail\": \"<email>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"subject\": \"(no subject)\",\n  \"icalUid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "18c2be07-bb5a-467f-a341-babf64926373",
              "name": "Unhandled server error. The orchestrator captured a Sentry event; include the response timestamp when reporting.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "intake", "calendar-invite"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-intake-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"organizerEmail\": \"<email>\",\n  \"meetingUrl\": \"<uri>\",\n  \"platform\": \"zoom-web\",\n  \"joinAt\": \"<dateTime>\",\n  \"subject\": \"(no subject)\",\n  \"icalUid\": \"<string,null>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "ingest",
      "description": "Bot → orchestrator lifecycle ingest. Documented for completeness; called by meetbot bot containers, not by customers.",
      "item": [
        {
          "id": "ace37310-329d-4d39-9895-e71eec787177",
          "name": "Bot → orchestrator lifecycle ingest",
          "request": {
            "name": "Bot → orchestrator lifecycle ingest",
            "description": {
              "content": "Internal endpoint used by meetbot bot containers to report\nlifecycle events back to the orchestrator. Authenticated via\nper-job HMAC token (NOT a bearer API key). Documented here for\ncompleteness — customers don't call this directly.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "ingest"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kind\": \"lifecycle.media_uploading\",\n  \"jobId\": \"<uuid>\",\n  \"attempt\": \"<integer>\",\n  \"emittedAt\": \"<dateTime>\",\n  \"data\": {\n    \"key_0\": 4654,\n    \"key_1\": 9155.848830104527\n  }\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "8ad2a04b-987e-4244-9a68-16394800d9bb",
              "name": "Event accepted; state machine advanced.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "ingest"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"kind\": \"lifecycle.media_uploading\",\n  \"jobId\": \"<uuid>\",\n  \"attempt\": \"<integer>\",\n  \"emittedAt\": \"<dateTime>\",\n  \"data\": {\n    \"key_0\": 4654,\n    \"key_1\": 9155.848830104527\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"ok\": \"<boolean>\",\n  \"key_0\": 6907.384081792831,\n  \"key_1\": 5956.234816051476,\n  \"key_2\": 4665\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "57f86848-fa5b-484a-ab10-4082e8ba26ba",
              "name": "Request body failed schema validation.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "ingest"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"kind\": \"lifecycle.media_uploading\",\n  \"jobId\": \"<uuid>\",\n  \"attempt\": \"<integer>\",\n  \"emittedAt\": \"<dateTime>\",\n  \"data\": {\n    \"key_0\": 4654,\n    \"key_1\": 9155.848830104527\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "baeb577e-8a7b-47fa-9324-f8a0c652bf16",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "ingest"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"kind\": \"lifecycle.media_uploading\",\n  \"jobId\": \"<uuid>\",\n  \"attempt\": \"<integer>\",\n  \"emittedAt\": \"<dateTime>\",\n  \"data\": {\n    \"key_0\": 4654,\n    \"key_1\": 9155.848830104527\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3cb9178-d839-4fe0-9f29-82d92e3effab",
              "name": "Unhandled server error. The orchestrator captured a Sentry event; include the response timestamp when reporting.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "ingest"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"kind\": \"lifecycle.media_uploading\",\n  \"jobId\": \"<uuid>\",\n  \"attempt\": \"<integer>\",\n  \"emittedAt\": \"<dateTime>\",\n  \"data\": {\n    \"key_0\": 4654,\n    \"key_1\": 9155.848830104527\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "cli-auth",
      "description": "Device-flow auth endpoints used by the `meetbot` CLI.",
      "item": [
        {
          "id": "aaba0764-138d-4051-b456-9ea10d0377e2",
          "name": "Mint a device-flow nonce",
          "request": {
            "name": "Mint a device-flow nonce",
            "description": {
              "content": "First step of the `meetbot login` device flow. The CLI calls\nthis to get a nonce + a `verifyUrl` to open in the user's\nbrowser.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "cli-auth", "init"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "b624a205-03be-4316-afb8-64063d99ebbb",
              "name": "Nonce minted.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "cli-auth", "init"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"nonce\": \"<string>\",\n  \"verifyUrl\": \"<uri>\",\n  \"expiresAt\": \"<dateTime>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1cc80aad-b3c9-4037-8b2c-a62c0450cd57",
          "name": "Poll for device-flow completion",
          "request": {
            "name": "Poll for device-flow completion",
            "description": {
              "content": "The CLI polls until `status` flips from `pending` to `complete`.\nReturns `expired` (HTTP 410) past TTL or for unknown nonces.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "cli-auth", "poll", ":nonce"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "<string>",
                  "key": "nonce",
                  "disabled": false,
                  "description": {
                    "content": "(Required) ",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "7265e965-6754-49f9-bd67-6af6d78377ba",
              "name": "Pending or complete.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "cli-auth", "poll", ":nonce"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) ",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<string>",
                      "key": "nonce"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"pending\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "52f72726-276c-4a73-8a11-263e2dadacac",
              "name": "Nonce expired or unknown.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "cli-auth", "poll", ":nonce"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) ",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "<string>",
                      "key": "nonce"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {}
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"expired\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ecbb6194-6298-49ba-8115-2609d7015765",
          "name": "Finalize device-flow auth",
          "request": {
            "name": "Finalize device-flow auth",
            "description": {
              "content": "Called by the authenticated web page once the user clicks\n\"authorize the CLI on this device\". Web mints a personal API\nkey and posts it here.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "cli-auth", "complete"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nonce\": \"<string>\",\n  \"apiKey\": \"<string>\",\n  \"email\": \"<email>\"\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "53e07b33-4a34-4b96-b118-668e85d668cb",
              "name": "Completed.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "cli-auth", "complete"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"nonce\": \"<string>\",\n  \"apiKey\": \"<string>\",\n  \"email\": \"<email>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"ok\": \"<boolean>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6952cd9a-1f07-4f97-a35b-6bb3c649788a",
              "name": "Request body failed schema validation.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "cli-auth", "complete"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"nonce\": \"<string>\",\n  \"apiKey\": \"<string>\",\n  \"email\": \"<email>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e5932474-edbf-4208-844c-a885fac62cde",
              "name": "Nonce expired or unknown.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "cli-auth", "complete"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"nonce\": \"<string>\",\n  \"apiKey\": \"<string>\",\n  \"email\": \"<email>\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Gone",
              "code": 410,
              "header": [],
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "webhooks",
      "description": "Outbound webhook events the orchestrator sends to consumer-supplied URLs.",
      "item": []
    },
    {
      "name": "admin",
      "description": "Operator endpoints, gated by a shared admin secret.",
      "item": [
        {
          "id": "6c50aecf-fe2a-4fec-8a29-bd96de6e0377",
          "name": "Stripe webhook receiver (operator-only)",
          "request": {
            "name": "Stripe webhook receiver (operator-only)",
            "description": {
              "content": "Receives Stripe events for subscription + invoice lifecycle.\nVerified via the `Stripe-Signature` header. Customers don't\ncall this directly — Stripe does. Documented for operators\nwiring up the Stripe webhook destination.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["webhooks", "stripe"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": {
                  "content": "(Required) ",
                  "type": "text/plain"
                },
                "key": "Stripe-Signature",
                "value": "<string>"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key_0\": 7597.053116660446\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "02d7ce2b-10c0-4527-8e02-32e019dd0e7e",
              "name": "Event accepted (or deduped).",
              "originalRequest": {
                "url": {
                  "path": ["webhooks", "stripe"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) ",
                      "type": "text/plain"
                    },
                    "key": "Stripe-Signature",
                    "value": "<string>"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key_0\": 7597.053116660446\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"ok\": \"<boolean>\",\n  \"deduped\": \"<boolean>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4b7fcdd5-0212-4922-b817-671315bd00ea",
              "name": "Missing or invalid signature.",
              "originalRequest": {
                "url": {
                  "path": ["webhooks", "stripe"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) ",
                      "type": "text/plain"
                    },
                    "key": "Stripe-Signature",
                    "value": "<string>"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key_0\": 7597.053116660446\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "555657c4-de38-4a2b-98d0-f0c11b589992",
              "name": "Unhandled server error. The orchestrator captured a Sentry event; include the response timestamp when reporting.",
              "originalRequest": {
                "url": {
                  "path": ["webhooks", "stripe"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) ",
                      "type": "text/plain"
                    },
                    "key": "Stripe-Signature",
                    "value": "<string>"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key_0\": 7597.053116660446\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a8267821-a5d1-40f9-abf8-0a8d0107f9fd",
              "name": "STRIPE_WEBHOOK_SECRET not configured on this orchestrator.",
              "originalRequest": {
                "url": {
                  "path": ["webhooks", "stripe"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) ",
                      "type": "text/plain"
                    },
                    "key": "Stripe-Signature",
                    "value": "<string>"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key_0\": 7597.053116660446\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [],
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4c82b452-12d2-459c-a237-efb4b2ec7b23",
          "name": "Host metrics + bot counts (operator-only)",
          "request": {
            "name": "Host metrics + bot counts (operator-only)",
            "description": {
              "content": "Returns CPU/RAM/load/disk pulled from the local Netdata agent,\nplus active-job and scheduled-job counts. Auth via shared\nsecret in `x-meetbot-admin-secret`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": ["api", "v1", "admin", "host"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": {
              "type": "apikey",
              "apikey": [
                {
                  "key": "key",
                  "value": "x-meetbot-admin-secret"
                },
                {
                  "key": "value",
                  "value": "{{apiKey}}"
                },
                {
                  "key": "in",
                  "value": "header"
                }
              ]
            }
          },
          "response": [
            {
              "id": "0f276484-6124-4e1a-895f-b64e1370a0d0",
              "name": "Host metrics snapshot.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "admin", "host"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-admin-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"cpu\": null,\n  \"ram\": null,\n  \"load\": {\n    \"one\": \"<number>\",\n    \"five\": \"<number>\",\n    \"fifteen\": \"<number>\"\n  },\n  \"disk\": null,\n  \"bots\": {\n    \"running\": \"<integer>\",\n    \"scheduled\": \"<integer>\"\n  },\n  \"uptimeSec\": \"<integer,null>\",\n  \"ts\": \"<integer>\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7870e14f-5908-4534-aad0-fc94f8bc65a3",
              "name": "Missing or invalid auth credentials.",
              "originalRequest": {
                "url": {
                  "path": ["api", "v1", "admin", "host"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "x-meetbot-admin-secret",
                    "value": "<API Key>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"error\": \"<string>\",\n  \"message\": \"<string>\",\n  \"issues\": [\n    {\n      \"key_0\": 3888.6608816804323,\n      \"key_1\": \"string\"\n    },\n    {\n      \"key_0\": 2240.1507647380713\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5edce178-91fd-47b0-9407-d387b4931e98",
          "name": "Liveness probe",
          "request": {
            "name": "Liveness probe",
            "description": {
              "content": "Returns \"ok\" when the orchestrator process is up.",
              "type": "text/plain"
            },
            "url": {
              "path": ["healthz"],
              "host": ["{{baseUrl}}"],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "text/plain"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "a0bed61d-a530-43da-87ba-58b7fee99639",
              "name": "Alive.",
              "originalRequest": {
                "url": {
                  "path": ["healthz"],
                  "host": ["{{baseUrl}}"],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "text/plain"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "<string>",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "type": "any",
        "value": "{{bearerToken}}",
        "key": "token"
      }
    ]
  },
  "event": [],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.meetbot.dev"
    }
  ],
  "info": {
    "_postman_id": "6fcd30d6-008b-4232-8f4d-e23a33699abd",
    "name": "meetbot API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "The meetbot orchestrator's public HTTP API. Drop a meetbot bot into a\nGoogle Meet, Microsoft Teams, or Zoom meeting, get back a structured\nrecording manifest. Migrating from Recall.ai? The webhook events and\nfailure-code taxonomy are deliberately compatible — re-route, re-test,\nre-bill at $0.30/hr flat.\n\nSpec mirror: https://meetbot.dev/openapi.yaml (YAML),\nhttps://meetbot.dev/openapi.json (JSON).\nPostman collection: https://meetbot.dev/meetbot.postman_collection.json.\n\n\nContact Support:\n Name: meetbot support\n Email: hello@meetbot.dev",
      "type": "text/plain"
    }
  }
}
