When to use this
Trial access
Give new users a 7-day trial key. It stops working automatically.
Time-limited integrations
Partner needs API access for a project? Key expires when the project ends.
Session-based access
Generate a key that lasts for a user’s session (e.g., 24 hours).
Security rotations
Force key rotation by having keys expire periodically.
How it works
- Create a key with an
expirestimestamp (Unix milliseconds) - Key works normally until the expiration time
- After expiration, verification returns
code: EXPIRED - Unkey automatically cleans up expired keys
Create a temporary key
Setexpires to a Unix timestamp in milliseconds:
Common expiration times
| Duration | Calculation |
|---|---|
| 1 hour | Date.now() + 60 * 60 * 1000 |
| 24 hours | Date.now() + 24 * 60 * 60 * 1000 |
| 7 days | Date.now() + 7 * 24 * 60 * 60 * 1000 |
| 30 days | Date.now() + 30 * 24 * 60 * 60 * 1000 |
| Specific date | new Date("2024-12-31").getTime() |
Verification response
When verifying an expired key:Extend or change expiration
Update the expiration time on an existing key:Remove expiration
Make a temporary key permanent by settingexpires to null:
Combining with other features
Temporary keys work with all other key features:Temporary vs usage-limited keys
| Feature | Temporary Keys | Usage-Limited Keys |
|---|---|---|
| Controlled by | Time | Request count |
| Expires when | Clock hits timestamp | Credits reach 0 |
| Good for | Time-bound access | Pay-per-use, quotas |
| Example | ”Access for 7 days" | "1000 requests total” |

