API Authentication
Almost all API requests require authentication using an API key. The API key is passed in the HTTP header of each request.Finding Your API Key
You can find your API key in the changedetection.io dashboard:- Navigate to Settings in the main menu
- Click on the API tab
- Your API key will be displayed - click it to copy to clipboard

Enabling/Disabling API Access
You can enable or disable API access in the Settings > API section:- When API Access Token Enabled is checked, all API requests require a valid API key
- When unchecked, API requests will work without authentication (not recommended for production)
Using the API Key
The API key is passed via thex-api-key header in every request:
Example Requests
Authentication Errors
If authentication fails, you’ll receive a 403 Forbidden response:Common Issues
403 Forbidden - Invalid API key
403 Forbidden - Invalid API key
Cause: The API key is incorrect or has been regenerated.Solution:
- Verify you’re using the correct API key from Settings > API
- Check for extra whitespace or newlines in your API key
- If you regenerated the key, update it in your application
403 Forbidden - API access disabled
403 Forbidden - API access disabled
Cause: API access token is disabled in settings.Solution:
- Go to Settings > API
- Enable “API Access Token Enabled”
Missing x-api-key header
Missing x-api-key header
Cause: The request doesn’t include the
x-api-key header.Solution:- Ensure the header is named exactly
x-api-key(case-insensitive) - Check that your HTTP client is sending custom headers
Security Best Practices
Use Environment Variables
Store your API key in environment variables, not in source code:
Use HTTPS
Always use HTTPS in production to prevent API key interception:
Rotate Keys Regularly
Regenerate your API key periodically, especially if:
- It may have been exposed
- Team members with access have left
- You’re changing security policies
Restrict Access
If using a reverse proxy:
- Limit API access to specific IP addresses
- Use firewall rules to control access
- Consider using VPN for remote access
Endpoints Without Authentication
The following endpoints do not require authentication:GET /api/v1/full-spec- Fetch the OpenAPI specification