{
  "info": {
    "name": "VmShell Live API 0.5",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://live.vmshell.com/api/v1"
    },
    {
      "key": "apiKey",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "GET /public-config",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/public-config"
      }
    },
    {
      "name": "GET /partner/application",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/application"
      }
    },
    {
      "name": "GET /partner/quotas",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/quotas"
      }
    },
    {
      "name": "GET /partner/usage",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/usage"
      }
    },
    {
      "name": "GET /partner/rooms",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms"
      }
    },
    {
      "name": "POST /partner/rooms",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"城市旅行直播\",\n  \"description\": \"分享旅途见闻\",\n  \"category\": \"travel\",\n  \"visibility\": \"authenticated\",\n  \"allowedSubjects\": []\n}"
        }
      }
    },
    {
      "name": "GET /partner/rooms/{id}",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id"
      }
    },
    {
      "name": "PATCH /partner/rooms/{id}",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"城市旅行直播\",\n  \"description\": \"更新介绍\",\n  \"coverUrl\": \"\",\n  \"category\": \"travel\",\n  \"visibility\": \"members\",\n  \"allowedSubjects\": [\n    \"viewer-123\"\n  ],\n  \"broadcasterSubject\": \"host-123\"\n}"
        }
      }
    },
    {
      "name": "POST /partner/rooms/{id}/publish-credentials",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id/publish-credentials",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"subject\": \"host-123\"\n}"
        }
      }
    },
    {
      "name": "POST /partner/rooms/{id}/revoke-credentials",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id/revoke-credentials"
      }
    },
    {
      "name": "POST /partner/rooms/{id}/end",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id/end"
      }
    },
    {
      "name": "POST /partner/rooms/{id}/archive",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id/archive"
      }
    },
    {
      "name": "GET /partner/sessions",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/sessions"
      }
    },
    {
      "name": "POST /partner/playback-grants",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/playback-grants",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"roomId\": \"00000000-0000-4000-8000-000000000001\",\n  \"subject\": \"viewer-123\"\n}"
        }
      }
    },
    {
      "name": "POST /partner/broadcaster-requests",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/broadcaster-requests",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"subject\": \"host-123\",\n  \"name\": \"旅行主播\",\n  \"useCase\": \"分享城市旅行与社区活动的实时直播\"\n}"
        }
      }
    },
    {
      "name": "GET /partner/broadcaster-requests",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/broadcaster-requests"
      }
    },
    {
      "name": "GET /partner/broadcasters",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/broadcasters"
      }
    },
    {
      "name": "POST /partner/broadcaster-requests/{id}/review",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/broadcaster-requests/:id/review",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"status\": \"approved\",\n  \"note\": \"直播用途符合要求\"\n}"
        }
      }
    },
    {
      "name": "PATCH /partner/broadcasters/{id}",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/broadcasters/:id",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"status\": \"banned\"\n}"
        }
      }
    },
    {
      "name": "GET /partner/webhooks",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/webhooks"
      }
    },
    {
      "name": "POST /partner/webhooks",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/webhooks",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"url\": \"https://your-app.example/live/events\",\n  \"events\": [\n    \"live.started\",\n    \"live.ended\",\n    \"viewer.restricted\"\n  ]\n}"
        }
      }
    },
    {
      "name": "GET /partner/webhook-deliveries",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/webhook-deliveries"
      }
    },
    {
      "name": "PATCH /partner/webhooks/{id}",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/webhooks/:id",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"url\": \"https://your-app.example/live/events\",\n  \"events\": [\n    \"live.started\",\n    \"live.ended\"\n  ],\n  \"enabled\": true\n}"
        }
      }
    },
    {
      "name": "POST /partner/webhook-deliveries/{id}/retry",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/webhook-deliveries/:id/retry"
      }
    },
    {
      "name": "DELETE /partner/rooms/{id}/restrictions/{subject}",
      "request": {
        "method": "DELETE",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id/restrictions/:subject"
      }
    },
    {
      "name": "GET /partner/events",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/events"
      }
    },
    {
      "name": "GET /partner/events/stream",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          }
        ],
        "url": "{{baseUrl}}/partner/events/stream"
      }
    },
    {
      "name": "POST /partner/reports",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/reports",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"roomId\": \"00000000-0000-4000-8000-000000000001\",\n  \"subject\": \"viewer-123\",\n  \"reason\": \"直播内容存在不当行为，请审核\"\n}"
        }
      }
    },
    {
      "name": "POST /partner/rooms/{id}/restrictions",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/partner/rooms/:id/restrictions",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"subject\": \"viewer-123\",\n  \"kind\": \"ban\",\n  \"reason\": \"违反社区规范\"\n}"
        }
      }
    },
    {
      "name": "POST /viewer-sessions",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/viewer-sessions",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"grant\": \"<SERVER_ISSUED_GRANT>\"\n}"
        }
      }
    },
    {
      "name": "POST /viewer-sessions/{id}/renew",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/viewer-sessions/:id/renew",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"playbackToken\": \"<PLAYBACK_TOKEN>\"\n}"
        }
      }
    },
    {
      "name": "DELETE /viewer-sessions/{id}",
      "request": {
        "method": "DELETE",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/viewer-sessions/:id",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"playbackToken\": \"<PLAYBACK_TOKEN>\"\n}"
        }
      }
    },
    {
      "name": "GET /docs",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/docs"
      }
    },
    {
      "name": "GET /docs/{slug}",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/docs/:slug"
      }
    },
    {
      "name": "GET /files/{id}",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/files/:id"
      }
    },
    {
      "name": "POST /recovery/forgot-password",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/recovery/forgot-password",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"<email>\"\n}"
        }
      }
    },
    {
      "name": "POST /recovery/confirm-email",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/recovery/confirm-email",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"token\": \"<token>\"\n}"
        }
      }
    },
    {
      "name": "POST /recovery/reset-password",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": "{{baseUrl}}/recovery/reset-password",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"token\": \"<token>\",\n  \"password\": \"<password>\"\n}"
        }
      }
    },
    {
      "name": "GET /identity/status",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/identity/status"
      }
    },
    {
      "name": "GET /identity/start",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/identity/start"
      }
    },
    {
      "name": "GET /identity/link",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/identity/link"
      }
    },
    {
      "name": "GET /identity/callback",
      "request": {
        "method": "GET",
        "header": [],
        "url": "{{baseUrl}}/identity/callback"
      }
    }
  ]
}