Automate configurations already in your Panel account
Connect your backend or automation to configurations you have already saved. Keep their messages, servers, tweaks, cloud device IDs, and cloud passwords up to date.
Quick rule: Existing Panel configuration: Client API. New configuration from request data: Business API.
The credentials are separate: manage the Client API credential in Panel > API > Client API and the Business API credential in Panel > API > Business API.
Authentication
Authenticate every request with the Client API key issued for the Panel account that owns the target configuration.
Transport
Example
Notes
X-API-Key
X-API-Key: YOUR_CLIENT_API_KEY
Recommended explicit header.
Authorization
Authorization: Bearer YOUR_CLIENT_API_KEY
Standard Bearer authentication alternative.
Send credentials in headers only. If both X-API-Key and Authorization are present, X-API-Key takes precedence.
Get your Client API key:
Open Panel > API > Client API, then generate a key for your account. The full key is shown only once; Panel keeps only its secure hash and a short preview.
Keep the key private. Use it from a trusted backend or automation environment; do not ship it in a public app, browser bundle, repository, or log.
Rate Limits and Daily Quota
Each Client API credential has a short-term rate limit and a daily request quota. The daily quota resets at 00:00 UTC.
Header
Value
Meaning
X-RateLimit-Limit
Requests
Maximum requests allowed in the current rate-limit window.
X-RateLimit-Remaining
Requests
Requests remaining in the current rate-limit window.
X-DailyQuota-Limit
Requests
Maximum Client API requests allowed for the current UTC day.
X-DailyQuota-Used
Requests
Requests counted against today's quota.
X-DailyQuota-Remaining
Requests
Requests remaining until the next UTC reset.
X-DailyQuota-Reset
Unix timestamp
Next daily reset at 00:00 UTC.
Retry-After
Seconds
Time to wait after a rate-limit or daily-quota response.
Every authenticated request that passes the rate limiter counts once, including read-only GET requests and requests that later return a validation or resource error. Requests rejected for a missing or invalid credential, API maintenance, or rate limiting do not use the daily quota.
Credential rotation does not reset daily usage. When the daily quota is exhausted, the API returns 429 with error: daily_quota_exceeded and quota details in the response body.
Available Operations
Use these endpoints to automate resources inside configurations owned by the authenticated Panel account.
Start in Panel. Client API does not create configurations. Create one in your account first, then select it by config_unique_key to manage its resources.
GET /api/v1/configs lists configurations owned by the account authenticated with your Client API key.
POST /api/v1/configs syncs servers and tweaks for one existing configuration selected by config_unique_key; it does not create a new configuration.
Create the configuration in Panel before connecting your automation.
The Client API can read and replace the configuration message. Manage other configuration-level settings such as password, update_url, and lock toggles in Panel.
Identifies an existing configuration in the authenticated account. Supports optional servers and tweaks arrays.
Configuration Message
Use GET /api/v1/configs/{config_key}/message to read the complete current message and PUT /api/v1/configs/{config_key}/message to replace it.
Updating only part of a message: the API replaces the complete message; it does not search and replace text on the server. Fetch the current config_message, change the required text in your automation, then send the complete edited value in the PUT request. This is useful for changing a date without losing the rest of the message.
Field
Rule
Notes
message
Required key; nullable string
Send the complete replacement message. HTML is accepted. The administrator-configured maximum message length applies. Send null to clear the message.
Tweak
Endpoints: GET /api/v1/configs/{config_key}/tweaks, POST /api/v1/configs/{config_key}/tweaks, PUT /api/v1/configs/{config_key}/tweaks/{tweak_key}, DELETE /api/v1/configs/{config_key}/tweaks/{tweak_key}.
Endpoints: GET /api/v1/configs/{config_key}/servers, POST /api/v1/configs/{config_key}/servers, PUT /api/v1/configs/{config_key}/servers/{server_key}, DELETE /api/v1/configs/{config_key}/servers/{server_key}.
Automate the Access-tab resources of an existing configuration: cloud Device IDs and cloud Passwords.
Preconditions: Device ID endpoints require is_cloud_hwid_lock=true. Password endpoints require is_cloud_password=true. Enable these in Configuration Info.
Device IDs
Endpoints: GET /api/v1/configs/{config_key}/device-ids, POST /api/v1/configs/{config_key}/device-ids, PUT /api/v1/configs/{config_key}/device-ids/{device_id}, DELETE /api/v1/configs/{config_key}/device-ids/{device_id}.
{device_id} in URL is the numeric Device ID record id from list/create responses.
required on create; must be 32 hexadecimal chars (A-F0-9)
Create accepts one ID or multiple IDs separated by newlines, commas, or semicolons. Input is normalized to uppercase, and duplicate IDs are ignored within one request.
Expires the Device ID at the end of that date. Omit or send null for no expiry.
Passwords
Endpoints: GET /api/v1/configs/{config_key}/passwords, POST /api/v1/configs/{config_key}/passwords, PUT /api/v1/configs/{config_key}/passwords/{password_id}, DELETE /api/v1/configs/{config_key}/passwords/{password_id}.
{password_id} in URL is the numeric Password record id from list/create responses.
Optional metadata fields. is_active defaults to true on create.
Limits: A generated-password request can create up to 100 passwords. Per configuration, accounts support up to 500 Cloud Passwords and 1,000 Cloud Device IDs unless an administrator sets a lower account limit.
Rules
A Client API key can access only configurations owned by its Panel account.
Do not send empty values for required fields.
Do not send id or configuration_id in server/tweak payloads.
Use exact enum values only. Invalid values return 422.
Optional fields can be omitted or set to null.
Configuration message updates replace the complete value. Fetch the current message first when changing only a date or another substring.
Delete operations require existing unique_key values in the target configuration.
Cloud password rule: delete_after_used=true is valid only for type=one_time.
Cloud HWID rule: each device_id must be exactly 32 hexadecimal characters.
Cloud access expiry: expire_date uses YYYY-MM-DD. Expired Device IDs/passwords are rejected during auth.
Cloud access limits are enforced for device IDs and passwords per configuration.
Account limits are enforced for configurations, servers, tweaks, device IDs, and passwords.
Examples
These examples automate configurations that already exist in your account. UUID-like keys are shortened with ... for readability; send the full value in real requests.
List Configurations in Your Account
curl -X GET "https://httptweak.com/api/v1/configs" \
-H "X-API-Key: your_api_key"
List a Configuration's Servers and Tweaks
curl -X GET "https://httptweak.com/api/v1/configs/2f7c1f7e...dc5a2d8b/resources" \
-H "X-API-Key: your_api_key"
Get the Current Configuration Message
curl -X GET "https://httptweak.com/api/v1/configs/2f7c1f7e...dc5a2d8b/message" \
-H "X-API-Key: your_api_key"
Replace the Configuration Message
For a partial change such as a date, first read config_message with the GET request above, replace the date in your code, and send the complete edited message below.
curl -X PUT "https://httptweak.com/api/v1/configs/2f7c1f7e...dc5a2d8b/message" \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key" \
-d '{
"message": "Service available until 2026-08-31"
}'