Project Auth Tokens
Project Auth Tokens enable programmatic access to specific BetaHub projects for in-game reporting, launchers, and custom integrations. Unlike Personal Access Tokens which provide full account access, Project Auth Tokens are scoped to a single project with configurable permissions and rate limits.
What Are Project Auth Tokens?
Project Auth Tokens (tkn- prefix) are created by project owners to grant limited API access for specific use cases:
- In-game bug reporting through Unity, Unreal Engine, and other game engine plugins
- Game launcher integrations for automated feedback collection
- Public feedback forms with controlled access
- Third-party tools that need project-specific access
Key Differences from Personal Access Tokens
| Feature | Personal Access Token | Project Auth Token |
|---|---|---|
| Token Prefix | pat- |
tkn- |
| Created By | Individual users | Project owners |
| Scope | All user-accessible projects | Single project only |
| Rate Limiting | None | Configurable IP-based |
| Authentication Header | Bearer pat-... |
FormUser tkn-... |
| Typical Use | General API, scripts | In-game reporting |
| Permissions | Inherit user permissions | Project-specific config |
Creating Project Auth Tokens
Permission Required: You must be a project owner or have developer permissions to create Project Auth Tokens.
Step 1: Navigate to Project Settings
- Go to your project dashboard
- Click Settings in the sidebar
- Select API Tokens from the settings menu
Step 2: Create a New Token
- Click the “New Token” button
- Configure the token settings:
- Token Name (required): Descriptive name (e.g., “Unity Plugin”, “Game Launcher”)
- Permissions: Select what actions this token can perform
- Rate Limits: Configure IP-based daily limits
Step 3: Copy and Store Token
CRITICAL: One-Time Display
After creating the token, it will be displayed ONLY ONCE. Copy it immediately and store it securely. If you lose it, you’ll need to delete and create a new token.
Token Permissions
Configure what each token can do:
Bug Reporting:
- Can Create Bug Report - Allow bug/issue submission
- Limit Per Day - Daily limit per IP address (default: 8)
Feature Requests:
- Can Create Feature Request - Allow suggestion submission
- Limit Per Day - Daily limit per IP address (default: 8)
Support Tickets:
- Can Create Ticket - Allow support ticket submission
- Limit Per Day - Daily limit per IP address (default: 8)
Releases:
- Can Read Release List - Access to release information
- Can Create Release - Upload new versions (advanced use cases)
Rate Limiting and IP Tracking
Project Auth Tokens use IP-based rate limiting to prevent abuse:
How It Works:
- Each unique IP address is tracked separately
- Limits reset daily at midnight UTC
- Counters are maintained per token per IP per day
Default Limits:
- Bug reports: 8 per day per IP
- Feature requests: 8 per day per IP
- Support tickets: 8 per day per IP
When Limit is Exceeded:
HTTP Status: 403 Forbidden
Response: { "error": "Not allowed to [action]." }
Configuring Limits: Adjust the daily limits when creating or editing a token based on your needs. Higher limits are appropriate for automated systems, while lower limits work well for public forms.
Using Project Auth Tokens
Authentication Format:
curl -H "Authorization: FormUser tkn-YOUR_TOKEN_HERE" \
-H "BetaHub-Project-ID: pr-YOUR_PROJECT_ID" \
-H "Content-Type: application/json" \
https://app.betahub.io/projects/pr-YOUR_PROJECT_ID/issues.json
Creating a Bug Report:
curl -X POST \
-H "Authorization: FormUser tkn-abc123def456..." \
-H "BetaHub-Project-ID: pr-abc123" \
-H "Content-Type: application/json" \
-d '{
"title": "Player falls through floor in level 3",
"description": "When jumping near the water fountain...",
"category": "bug",
"priority": "high"
}' \
https://app.betahub.io/projects/pr-abc123/issues.json
Optional: User Identification with JWT
You can attach a JWT token to identify the submitter:
Authorization: FormUser tkn-YOUR_TOKEN,YOUR_JWT_TOKEN
This associates the submission with a specific user while using the token’s project permissions.
Managing Project Auth Tokens
Viewing Tokens: In Project Settings → API Tokens, you can see:
- Token name and creation date
- Configured permissions
- Rate limit settings
- Partial token value (first 8 characters)
Editing Tokens:
- Update token name
- Modify permissions
- Adjust rate limits
- Changes take effect immediately
Deleting Tokens:
- Click Delete next to the token
- Confirm deletion
- Token is immediately revoked
- Applications using it will receive 403 errors
Token Deletion: Deletion is immediate and irreversible. Game clients and integrations using the token will immediately lose access.
Common Use Cases
Unity Plugin Integration:
// Configure BetaHub reporter
BugReportUI.projectId = "pr-abc123";
BugReportUI.authToken = "tkn-YOUR_TOKEN_HERE";
Custom Web Form:
// Submit bug from custom form
await fetch('https://app.betahub.io/projects/pr-123/issues.json', {
method: 'POST',
headers: {
'Authorization': 'FormUser tkn-YOUR_TOKEN',
'BetaHub-Project-ID': 'pr-123',
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: bugTitle,
description: bugDescription,
category: 'bug'
})
});
Game Launcher: Use Project Auth Tokens to allow players to submit feedback directly from your launcher without web authentication.
Security Best Practices
Token Distribution:
- ✅ Embed in game builds for in-game reporting
- ✅ Use in public-facing forms with rate limits
- ✅ Include in launcher applications
- ❌ Don’t expose tokens with high rate limits publicly
- ❌ Don’t share tokens across unrelated projects
Limit Configuration:
- Set conservative limits for public-facing tokens
- Use higher limits for trusted internal tools
- Monitor token usage through project analytics
Regular Maintenance:
- Review active tokens periodically
- Delete tokens for discontinued features
- Rotate tokens for long-running integrations
- Create separate tokens for different integrations
Finding Your Project ID:
Your project ID is visible in the browser URL when viewing a project:
https://app.betahub.io/projects/pr-abc123
└─────┬──────┘
Project ID
Use this ID in API calls wherever you see {project_id} or pr-123 in examples.
See Also
- Personal Access Tokens – General API access and automation
- HTML Widget – Embed feedback forms in web games
- Game Engines – Unity and Unreal Engine plugins
- Security – Authentication and access control