Authentication
The Plane API uses API key authentication to secure requests. All API requests must include a valid API key in the request headers.Authentication Method
Plane uses theX-Api-Key header for authentication:
Obtaining an API Key
To generate an API key:- Log in to your Plane workspace
- Navigate to Settings → API Tokens
- Click Generate New Token
- Provide a descriptive name for your token
- Set an expiration date (optional)
- Copy the generated token immediately (it won’t be shown again)
Making Authenticated Requests
Include theX-Api-Key header in every API request:
Example: Get Current User
API Token Types
Plane supports two types of API tokens:1. API Key
- Rate Limit: 60 requests per minute (default)
- Scope: User-level access
- Use Case: Personal integrations, scripts, and automation
2. Service Token
- Rate Limit: 300 requests per minute
- Scope: Workspace-level access
- Use Case: Production integrations, high-volume applications
API Token Properties
The API token value (only shown once during creation)
Descriptive name for the token
ID of the user who created the token
ID of the workspace the token belongs to
Whether the token is currently active
When the token expires (null for no expiration)
Timestamp of the last API request using this token
When the token was created
Token Security Best Practices
Secure Storage
- Store API keys in environment variables
- Use secret management services (e.g., AWS Secrets Manager, HashiCorp Vault)
- Never hardcode keys in your source code
Token Rotation
- Rotate API keys regularly (every 90 days recommended)
- Delete unused tokens immediately
- Use different tokens for different environments
Least Privilege
- Create tokens with the minimum required permissions
- Use workspace-specific tokens when possible
- Monitor token usage via the
last_usedfield
Authentication Errors
Missing API Key
Status:401 Unauthorized
Invalid API Key
Status:401 Unauthorized
- The API key doesn’t exist
- The API key has been revoked
- The API key has expired
- The API key is inactive (
is_active=False)
Expired API Key
Status:401 Unauthorized
expired_at date in the past will be rejected.
Testing Authentication
Use the/users/me/ endpoint to verify your API key:
Rate Limit Headers
Authenticated requests include rate limit information:Next Steps
Work Items API
Create and manage work items
Projects API
Manage your projects
