Verify an API key
Checks the API key in the Authorization header and returns the key's name, scopes, expiry and rate-limit status.
Use it to test a new key, to see which permissions a key has, or as a cheap health check for your integration. It needs no scope, and counts against the key's rate limit like any other request.
A key that isn't valid gets a 401 (missing, invalid, expired or revoked) or a 403 (valid, but API access isn't enabled for the account or the request comes from outside the key's IP allowlist). The code field says which.
apiKeyAuthorizationBearer <vk_live_<public id>_<secret>>An API key from the Vidyst studio (Developer → API keys), sent as Authorization: Bearer vk_live_….
The key is valid and may call the API.
application/json- response
The key is valid and may call the API.
valid*booleanAlways true: an invalid key gets a 401 problem instead.
key*The API key the request was authenticated with. Never includes the secret.
rateLimit*Where the key stands against its rate limit, as of this request.
requestId*stringThis request's id (also in X-Request-Id).
curl -X GET 'https://vapi.vidyst.com/public/v1/auth/verify' \ -H 'Authorization: Bearer vk_live_…'{ "valid": true, "key": { "id": "01929c5e-8f3a-7b21-9d4e-5a6b7c8d9e0f", "name": "Production server", "prefix": "vk_live_4fQ9zK2mXp7L", "mode": "live", "scopes": [ "webinars:read", "registrants:read" ], "expiresAt": "2027-02-01T09:30:00.000Z", "createdAt": "2026-11-03T09:30:00.000Z", "usingPreviousSecret": false }, "rateLimit": { "limit": 120, "remaining": 119, "resetAt": "2026-11-03T09:31:00.000Z", "windowSeconds": 60 }, "requestId": "0192f5e2-7c1a-7c4e-9a51-3d1f0b6c2e11"}Webinars
Create webinars from your own systems, with their schedule, registration and public page.
Create a webinar POST
Creates a webinar owned by the API key's account, on the licence you name. Needs the `webinars:write` scope. A `scheduled` webinar (the default) is published straight away: its page (`pageUrl`) goes live and, with `access: registration`, registration opens. Create it as a `draft` to keep it private. Send an `Idempotency-Key` so a retry after a timeout can't create it twice.