Appearance
Developer API Overview
The Developer API provides full management access to your PackEdge resources. Use it to build automations, integrate with your platform, or create custom dashboards.
Base URL: https://api.packedge.dev/v1
Who Uses This?
You (the developer) — from your backend systems. Never expose this API to end customers.
┌─────────────────────────────────────────────────────┐
│ Your Backend / Platform │
│ ┌─────────────────────────────────────────────┐ │
│ │ WooCommerce, Custom CRM, Automation │ │
│ │ ┌─────────────────────────────────────┐ │ │
│ │ │ Authorization: Bearer pk_secret... │───┼───┼──► api.packedge.dev/v1/*
│ │ │ (YOUR secret, never shared) │ │ │
│ │ └─────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘Use Cases
- E-commerce integration — Auto-create licenses on WooCommerce/EDD purchase
- CRM sync — Keep customer data in sync with your CRM
- Custom dashboard — Build your own analytics/management UI
- Automation — Bulk license operations, scheduled tasks
Authentication
Pass your secret API key in the Authorization header:
bash
Authorization: Bearer pk_your_api_keyCreating an API Key
- Go to PackEdge Console
- Navigate to Settings → API Keys
- Click Create API Key
- Copy and store securely (shown once)
Security
- Never expose API keys in client-side code, git repos, or logs
- Keys have full account access
- Rotate immediately if compromised
Endpoints
Products
- List — Get all products
- Get — Get single product
- Create — Create new product
- Update — Update product
- Delete — Delete product
Licenses
- List — Get licenses (with filters)
- Get — Get single license
- Create — Issue new license
- Update — Modify license
- Revoke — Revoke a license (cache-busting + webhook)
- Bulk — Revoke / suspend / activate / extend many at once
- Delete — Permanently delete license
Customers
- List — Get all customers
- Get — Get customer details
- Create — Create customer
- Update — Update customer
- Delete — Delete customer
- Bulk — Bulk delete customers
- Portal Block / Unblock — Manage portal access
Sites
- List — Get sites
- Get — Get site details
- Deactivate — Force deactivate
- Bulk Deactivate — Deactivate many sites at once
Releases
- List — A product's releases
- Upload — Upload a release zip
- Inspect — Preview a zip's readme metadata
- Create — Create a release record
- Update — Edit notes / compat / status
- Set Stable — Promote or roll back the stable release
- Download — Signed download URL
- Delete — Delete a release
Plans
- List — A product's pricing plans
- Create — Create a plan
- Update — Update a plan (reconciles Stripe/Polar)
- Sync — Push a plan to the payment provider
- Delete — Delete a plan
Webhooks
- List · Get · Create · Update · Delete
- Regenerate Secret · Test · Deliveries · Redeliver
Payments
- List — Get payments / orders
- Get — One payment with linked records
- Create Order — Record a manual order + license
Subscriptions
- List — Get subscriptions
- Create — Record a manual subscription
- Cancel — Cancel a subscription
- Bulk — Bulk cancel
Dashboard & Analytics
- Stats — Account counts + total revenue
- Revenue — All-time + windowed revenue with a daily series
- Charts — Daily revenue / license series
- Sales Summary · Trend · Breakdown
- Downloads · Domains · Activations
- Product Reports · Feature Usage · SDK Status
Events & Logs
- List Events — SDK/event feed
- Event Stats — Aggregate event analytics
- Audit Logs — Account audit trail
Exports
- CSV Exports — Licenses, customers, payments, sales, and per-product data as CSV
Feedback
- List — Customer feedback
- Stats — Sentiment / rating / tag breakdowns
- Tags — Manage and assign feedback tags
Notifications
Tickets
Portal
- Settings — Portal URL + blocked count
- Blocked Customers — Current block list
Settings
- Email — Email-notification preferences
- Product Email — Per-product email overrides
- Product SDK — Per-product SDK behavior
Response Format
All responses are JSON (the only exception: CSV exports return text/csv):
json
{
"data": { ... },
"meta": {
"page": 1,
"perPage": 20,
"total": 100,
"totalPages": 5
}
}Error Handling
Errors return appropriate HTTP status codes with details:
json
{
"error": "Product not found"
}| Status | Meaning |
|---|---|
200 | Success |
201 | Created |
400 | Bad request |
401 | Unauthorized — invalid or missing API key |
404 | Not found |
422 | Validation error |
500 | Server error |
