The H0p API uses API keys for authentication. Each key is scoped to an organization and has configurable permissions, giving you granular control over what each integration can do.Documentation Index
Fetch the complete documentation index at: https://docs.h0p.co/llms.txt
Use this file to discover all available pages before exploring further.
API key overview
API keys provide:- Organization scope - Each key belongs to one organization
- Granular permissions - Control exactly what each key can access
- Two key types - User keys tied to your account, bot keys tied to your organization
- Secure generation - Cryptographically random, shown only once
Key types
H0p offers two types of API keys for different use cases:- User keys
- Bot keys
User keys are linked to your personal account:
| Property | Description |
|---|---|
| Limit | One key per user per organization |
| Attribution | Actions appear under your name |
| Lifecycle | Deleted when you leave the organization |
| Best for | Development, testing, personal scripts |
Creating an API key
Choose key type
Select whether to create a User key or Bot key:
- User key - Tied to your account, deleted if you leave the organization
- Bot key - Tied to the organization, persists independently of team members
Configure permissions
Select the permissions your key needs. See Permissions below for details.
Permissions
API keys use a granular permission system. Each key can be granted specific actions for different resources.Available resources
| Resource | Description |
|---|---|
shortLinks | Create, read, update, delete short links |
domains | Manage custom domains |
stats | Access analytics and click data |
files | Upload files (QR logos, social images) |
apiKeys | Manage API keys (admin only) |
webhooks | Configure webhook endpoints |
Available actions
| Action | Description |
|---|---|
create | Create new resources |
read | View existing resources |
update | Modify existing resources |
delete | Remove resources |
Example permission configurations
Read-only analytics:Using your API key
Include your API key in thex-api-key header with every request:
POST request example
Using environment variables
Never hardcode API keys. Use environment variables:- Linux/macOS
- Windows (PowerShell)
- Node.js
- Python
Managing API keys
View your keys
See all your organization’s API keys in Developer Tools > API Keys:
- Key name and type
- Associated user (or “Bot” for bot keys)
- Permissions summary
- Creation date
- Last 4 characters for identification
Update key permissions
- Click on a key to open its details
- Modify the permissions as needed
- Save changes
Revoke a key
If a key is compromised or no longer needed:- Go to Developer Tools > API Keys
- Find the key you want to revoke
- Click the Delete button
- Confirm the deletion

Security best practices
Store keys securely
Store keys securely
- Use environment variables, not hardcoded values
- Never commit API keys to version control
- Use a secrets manager for production (AWS Secrets Manager, HashiCorp Vault, etc.)
Limit key exposure
Limit key exposure
- Never expose keys in client-side code (browser JavaScript, mobile apps)
- Don’t share keys in Slack, email, or other channels
- Make API calls from server-side code only
Use minimal permissions
Use minimal permissions
Only grant the permissions your integration needs:
- Analytics dashboard?
stats: ["read"]only - Link creation tool?
shortLinks: ["create"]only - Don’t grant
deleteunless necessary
Rotate keys regularly
Rotate keys regularly
- Create new keys periodically (e.g., quarterly)
- Revoke old keys after migrating to new ones
- Immediately revoke any potentially compromised keys
Use separate keys per environment
Use separate keys per environment
Create distinct keys for:
- Development
- Staging
- Production
Monitor usage
Monitor usage
- Review API usage in the dashboard
- Watch for unexpected activity patterns
- Set up webhooks for audit logging
Error handling
401 Unauthorized
Returned when authentication fails:- Missing
x-api-keyheader - Typo in the API key
- Key has been revoked
- Using wrong header name (use
x-api-key, notAuthorization)
403 Forbidden
Returned when your key doesn’t have permission:- Key doesn’t have the required permission for this resource/action
- Trying to access resources from another organization
Handling auth errors
Next steps
Quickstart
Make your first API call.
API introduction
Learn about all available endpoints.
Webhooks
Set up real-time notifications.
Contact support
Get help with authentication issues.


