API Settings
API Settings configure access to the Angage ERP REST API, enabling integration with external systems, custom applications, and automation tools.
Overview
API Settings enable you to:
- Generate API keys
- Manage access tokens
- Configure rate limits
- Monitor API usage
- Control permissions
- View API documentation
Accessing API Settings
Navigate to Settings → Integrations → API Settings from the main menu.
API Overview
API Dashboard
API Dashboard
API Status: ✓ Active
Base URL: https://api.angage.com/v1
Usage This Month:
├─ Total Requests: 245,678
├─ Successful: 243,456 (99.1%)
├─ Failed: 2,222 (0.9%)
└─ Rate Limit Hits: 45
Active API Keys: 5
├─ Production: 3
├─ Development: 2
└─ Webhook Endpoints: 8
Quick Links:
├─ [API Documentation]
├─ [Generate New Key]
├─ [View Usage Reports]
└─ [Webhook Configuration]API Keys
Key Management
API Keys
Production Keys:
┌────────────────────────────────────────────────────────────────┐
│ Name │ Key (prefix) │ Created │ Last Used │
├────────────────────────────────────────────────────────────────┤
│ Main App │ ak_live_8x7y... │ Jan 01 │ 2 min ago │
│ Mobile App │ ak_live_2z3a... │ Jan 10 │ 5 min ago │
│ Analytics │ ak_live_5b6c... │ Jan 15 │ 1 hour ago │
└────────────────────────────────────────────────────────────────┘
Development Keys:
┌────────────────────────────────────────────────────────────────┐
│ Name │ Key (prefix) │ Created │ Last Used │
├────────────────────────────────────────────────────────────────┤
│ Dev Testing │ ak_test_1a2b... │ Dec 15 │ Today │
│ QA Environment │ ak_test_3c4d... │ Dec 20 │ Yesterday │
└────────────────────────────────────────────────────────────────┘
[+ Generate New API Key]Create API Key
Generate API Key
Key Details:
├─ Key Name: [Mobile App Integration]
├─ Description: [API key for iOS/Android mobile application]
├─ Environment: ● Production ○ Development
└─ Expiration: ○ Never ● After [365] days
Permissions:
├─ Scope: [Custom ▼]
│ ├─ Full Access
│ ├─ Read Only
│ └─ Custom
│
└─ Module Access:
├─ [x] Customers (Read, Write)
├─ [x] Products (Read only)
├─ [x] Orders (Read, Write)
├─ [x] Invoices (Read only)
├─ [ ] Payments (No access)
├─ [x] Inventory (Read only)
└─ [ ] Settings (No access)
Rate Limiting:
├─ Requests per minute: [60]
├─ Requests per hour: [1,000]
└─ Requests per day: [10,000]
IP Restrictions:
├─ [ ] Restrict to specific IPs
└─ Allowed IPs: [Add IP addresses...]
[Generate Key]Key Generated
API Key Generated Successfully
⚠️ Copy this key now - it won't be shown again!
┌────────────────────────────────────────────────────────────────┐
│ API Key: ak_live_8x7y9z1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7 │
└────────────────────────────────────────────────────────────────┘
[Copy to Clipboard]
Key Details:
├─ Name: Mobile App Integration
├─ Environment: Production
├─ Created: January 22, 2026 10:30 AM
├─ Expires: January 22, 2027
└─ Created By: John Smith
Quick Start:
┌────────────────────────────────────────────────────────────────┐
│ curl -X GET "https://api.angage.com/v1/customers" \ │
│ -H "Authorization: Bearer ak_live_8x7y9z1a2b3c..." │
└────────────────────────────────────────────────────────────────┘
[Done]Rate Limiting
Rate Limit Configuration
Rate Limit Settings
Default Limits (per API key):
├─ Requests per second: [10]
├─ Requests per minute: [100]
├─ Requests per hour: [2,000]
└─ Requests per day: [20,000]
Burst Allowance:
├─ [x] Allow short bursts
├─ Burst size: [20] requests
└─ Burst window: [5] seconds
Rate Limit Response:
├─ HTTP Status: 429 Too Many Requests
├─ Include Retry-After header: [x]
└─ Include rate limit headers: [x]
Headers Included:
├─ X-RateLimit-Limit: Maximum requests allowed
├─ X-RateLimit-Remaining: Requests remaining
├─ X-RateLimit-Reset: Time when limit resets
└─ Retry-After: Seconds to wait before retry
[Save Rate Limit Settings]Key-Specific Limits
Rate Limits by API Key
┌────────────────────────────────────────────────────────────────┐
│ API Key │ Per Min │ Per Hour │ Per Day │ Custom │
├────────────────────────────────────────────────────────────────┤
│ Main App │ 200 │ 5,000 │ 50,000 │ ✓ │
│ Mobile App │ 60 │ 1,000 │ 10,000 │ Default │
│ Analytics │ 30 │ 500 │ 5,000 │ ✓ │
│ Dev Testing │ 100 │ 2,000 │ 20,000 │ Default │
└────────────────────────────────────────────────────────────────┘
[Edit Limits]API Usage
Usage Dashboard
API Usage Analytics
Time Period: [Last 30 Days ▼]
Request Volume:
┌────────────────────────────────────────────────────────────────┐
│ Daily Requests (Last 30 Days) │
│ ████████████████████████████████████████████████████████████ │
│ 8.2K avg | 12.5K peak | 245.7K total │
└────────────────────────────────────────────────────────────────┘
By Endpoint:
├─ GET /customers: 45,678 (18.6%)
├─ GET /products: 38,901 (15.8%)
├─ GET /orders: 34,567 (14.1%)
├─ POST /orders: 23,456 (9.5%)
├─ GET /inventory: 21,234 (8.6%)
└─ Other: 81,842 (33.4%)
By API Key:
├─ Main App: 156,789 (63.8%)
├─ Mobile App: 56,789 (23.1%)
├─ Analytics: 23,456 (9.5%)
└─ Development: 8,644 (3.6%)
Response Times:
├─ Average: 145ms
├─ P95: 320ms
├─ P99: 580ms
└─ Slowest: GET /reports/sales (avg 450ms)Error Analysis
API Errors (Last 30 Days)
Error Summary:
├─ Total Errors: 2,222
├─ Error Rate: 0.9%
└─ Most Common: 401 Unauthorized
Error Breakdown:
┌────────────────────────────────────────────────────────────────┐
│ Error Code │ Count │ Percentage │ Trend │
├────────────────────────────────────────────────────────────────┤
│ 401 Unauthorized │ 1,234 │ 55.5% │ ↓ Decreasing │
│ 404 Not Found │ 567 │ 25.5% │ → Stable │
│ 429 Rate Limited │ 234 │ 10.5% │ ↑ Increasing │
│ 400 Bad Request │ 156 │ 7.0% │ → Stable │
│ 500 Server Error │ 31 │ 1.5% │ ↓ Decreasing │
└────────────────────────────────────────────────────────────────┘
Recent Errors:
├─ Jan 22 10:45 - 401 - Invalid API key (Mobile App)
├─ Jan 22 10:30 - 429 - Rate limit exceeded (Analytics)
├─ Jan 22 10:15 - 404 - Customer CUST-99999 not found
└─ [View All Errors]Authentication
Authentication Methods
API Authentication
Supported Methods:
├─ [x] Bearer Token (recommended)
├─ [x] API Key Header
└─ [ ] OAuth 2.0 (enterprise)
Bearer Token:
┌────────────────────────────────────────────────────────────────┐
│ Authorization: Bearer ak_live_8x7y9z1a2b3c4d5e... │
└────────────────────────────────────────────────────────────────┘
API Key Header:
┌────────────────────────────────────────────────────────────────┐
│ X-API-Key: ak_live_8x7y9z1a2b3c4d5e... │
└────────────────────────────────────────────────────────────────┘
Security Settings:
├─ [x] Require HTTPS only
├─ [x] Validate request signatures
├─ [x] Log all API requests
└─ Token expiration: [Never ▼]API Documentation
Interactive Documentation
API Documentation
Available at: https://api.angage.com/docs
Documentation Features:
├─ Interactive API Explorer
├─ Code samples (cURL, Python, JavaScript, PHP)
├─ Request/Response schemas
├─ Authentication guide
└─ Webhook documentation
Quick Reference:
┌────────────────────────────────────────────────────────────────┐
│ Resource │ Endpoints │
├────────────────────────────────────────────────────────────────┤
│ Customers │ GET, POST, PUT, DELETE /customers │
│ Products │ GET, POST, PUT, DELETE /products │
│ Orders │ GET, POST, PUT /orders │
│ Invoices │ GET, POST /invoices │
│ Inventory │ GET, PUT /inventory │
│ Payments │ GET, POST /payments │
└────────────────────────────────────────────────────────────────┘
[Open API Documentation] [Download OpenAPI Spec]Sample Request
API Example: Create Customer
Endpoint: POST /v1/customers
Request:
┌────────────────────────────────────────────────────────────────┐
│ curl -X POST "https://api.angage.com/v1/customers" \ │
│ -H "Authorization: Bearer ak_live_..." \ │
│ -H "Content-Type: application/json" \ │
│ -d '{ │
│ "name": "Acme Corporation", │
│ "email": "[email protected]", │
│ "phone": "555-123-4567", │
│ "billing_address": { │
│ "street": "123 Main St", │
│ "city": "New York", │
│ "state": "NY", │
│ "zip": "10001", │
│ "country": "US" │
│ } │
│ }' │
└────────────────────────────────────────────────────────────────┘
Response (201 Created):
┌────────────────────────────────────────────────────────────────┐
│ { │
│ "id": "cust_abc123def456", │
│ "code": "CUST-12345", │
│ "name": "Acme Corporation", │
│ "email": "[email protected]", │
│ "created_at": "2026-01-22T10:30:00Z" │
│ } │
└────────────────────────────────────────────────────────────────┘Best Practices
Security
- Use HTTPS only
- Rotate keys periodically
- Restrict IP addresses
- Monitor for abuse
Performance
- Implement caching
- Use pagination
- Batch requests when possible
- Handle rate limits gracefully
Integration
- Handle errors properly
- Implement retries
- Log API activity
- Keep documentation updated
Troubleshooting
Common Issues
401 Unauthorized
- Verify API key is valid
- Check key hasn't expired
- Confirm key has required permissions
- Verify authentication header format
429 Rate Limited
- Implement exponential backoff
- Check rate limit headers
- Consider requesting higher limits
- Optimize request patterns
500 Server Error
- Check request payload
- Review API logs
- Contact support if persistent
- Try again later
Related Documentation
Learn about Webhooks for receiving real-time notifications from the API.
