Browse topics

API access & tokens

Create, scope and revoke API tokens, authenticate requests, and use the API to sync students, enrolments and progress with your own systems.

Admins

API tokens let your own software — a student information system, an admissions portal, a reporting script — work with your ValidBridge organization without a person signing in. Each token belongs to one organization.

Who can use it

API access is available on the Pro plan and above. Creating and managing tokens needs the Admin role.

Create a token

  1. In the dashboard, open Developers → API Access (open API Access).
  2. On the API Tokens tab, click Create Token.
  3. Give it a Token Name that says what uses it (for example “SIS nightly sync”) and, optionally, a description.
  4. Optionally set an Expiration Date. Leave it empty for a token that never expires.
  5. Choose its Permissions (see below) and create it.
  6. Copy the token straight away and store it in your password manager or secrets store. It is shown only once. Tokens start with vb_.

Permissions

Read Only
— the token can read but not change anything. The safe default.
Full Access
— create, read, update and delete on every resource.
Custom
— tick create, read, update or delete per resource: courses, activities, assignments, chapters, folders, media, certifications, user groups and payments, plus search.

Give each integration its own token with the narrowest permissions it needs, so you can revoke one without breaking the others.

Authenticate requests

Send the token in the Authorization header of every request, as a bearer token:

Authorization: Bearer vb_your_token_here

Requests and responses are JSON. The Documentation & Playground tab on the same page lists every endpoint with its full address, parameters and example responses, lets you try calls with your token, and gives you a ready-to-copy curl command.

What you can do with it

The school-administration part of the API is built for syncing with your own systems. All of it is scoped to your organization's slug (the name in your ValidBridge address). The most useful calls:

TaskRequest
Create (provision) a student or staff accountPOST /admin/{org_slug}/users
Find a user by emailGET /admin/{org_slug}/users/by-email/{email}
Enrol a user in a coursePOST /admin/{org_slug}/enrollments/{user_id}/{course_uuid}
Enrol many users at oncePOST /admin/{org_slug}/enrollments/bulk
Read a user’s progress in all coursesGET /admin/{org_slug}/progress/{user_id}
List a user’s certificatesGET /admin/{org_slug}/certifications/{user_id}
Add a user to a user group (class, stream)POST /admin/{org_slug}/usergroups/{usergroup_uuid}/members/{user_id}
Send a user a one-click sign-in link from your portalPOST /admin/{org_slug}/auth/magic-link

Paths are relative to the API address shown in the playground. The playground is the reference: it is always up to date with what your plan allows.

Admin and staff accounts are protected

A token cannot sign in as, or issue sign-in links for, an organization Admin or Maintainer.

Limits

  • Creating or regenerating tokens: 10 per hour.
  • Provisioning users: 30 per minute per token.
  • Looking users up by email: 60 per minute per token.

Over a limit, the API answers 429 Too Many Requests. Wait and retry, and spread large imports out or use the bulk enrolment call.

Revoke or regenerate a token

The token list shows each token's prefix, status, when it was last used and when it expires. From a token's actions:

  • Regenerate issues a new secret for the same token and settings. The old secret stops working immediately, so update your integration at once.
  • Revoke switches the token off for good. Use it when an integration is retired or a token may have leaked.

Treat tokens like passwords

Never put a token in a web page, a mobile app, a shared spreadsheet or an email. Keep it on a server you control. A token that never expires is convenient but riskier — set an expiry and rotate it on a schedule if you can.

Was this article helpful?

Still need help?

Questions about access, grades or a payment to your school? Your instructor or organization admin can usually sort it fastest. For anything else, our support team is here.