Create an API key
Name your key
Enter a descriptive name that identifies the consumer — for example,
GitHub Actions Deploy or Data Export Script. Good names make auditing and revocation much easier later.Choose permission scopes
Select the scopes this key needs. Apply the principle of least privilege: grant only what the consumer requires.
| Scope | Access granted |
|---|---|
read:projects | List and read project data |
write:projects | Create and update projects |
read:tasks | Read task details |
write:tasks | Create, update, and complete tasks |
read:workflows | View workflow definitions and run history |
write:workflows | Trigger and manage workflow runs |
admin | Full workspace access (use sparingly) |
Optionally restrict by IP
Expand IP Allow-list and enter one or more CIDR ranges (e.g.,
203.0.113.0/24). Requests originating outside those ranges are rejected with 403 Forbidden. Leave the field empty to allow all IPs.Use your API key in requests
Pass the key in theAuthorization header of every request:
Manage existing keys
After creation, each key appears in the API Keys list with its name, creation date, last-used timestamp, scopes, and IP restrictions.Rotate a key
Rotate a key when you suspect it has been compromised or as part of your regular credential-hygiene schedule.Click Rotate
Select ⋯ → Rotate next to the key. fsckmsft invalidates the old key and generates a new one immediately.
Rotation is instantaneous. The old key stops working the moment you confirm the rotation, so update your consumer before rotating in production environments.
Revoke a key
To permanently delete a key, select ⋯ → Revoke next to it and confirm. Revocation is irreversible — you must create a new key if you need access again.IP allow-listing
IP allow-listing lets you restrict which network origins can authenticate with a given key. This adds a second factor of defense: even if the key value leaks, an attacker can only use it from an approved IP address.A single IPv4 or IPv6 CIDR block, e.g.
203.0.113.42/32 for a single address or 10.0.0.0/8 for a private range.Security best practices
One key per consumer
Create a dedicated key for each application, script, or service. This makes rotation and revocation surgical rather than disruptive.
Least-privilege scopes
Grant only the scopes each consumer needs. An export script never needs
write:workflows.Rotate regularly
Establish a rotation schedule — quarterly at minimum — even without a known compromise.
Audit last-used
Review the Last Used timestamp on each key periodically. Keys that have never been used or are stale are candidates for revocation.