●توثيق الـAPI · v1
السطح كله، موثّق.
أنشئ توكن وصول شخصي، ضع ترويسة Authorization، وابدأ. كل ما في هذه الصفحة يعمل من أي سكربت أو خادم. الـAPI مجاني، وتدفع فقط مقابل ما تشغّله.
افتح المرجع كملف نصّي واحد للنماذج اللغويةauth
Authentication
Every request authenticates with a personal access token in the Authorization header. Mint a token in your dashboard at /api-tokens. Each token can be scoped to specific abilities (instances:read, agent:write, waf:*, etc.) or granted full access.
GET
/meGet the authenticated userReturns the user record and the projects they belong to, including the caller's role in each project. next_renewal describes the next scheduled charge across the account: when it falls, what it will cost in cents, and how many instances are in it. It is null when nothing is due.
الردود
- 200User and project list
{ "user": { "id": 42, "email": "you@example.com", "name": "Jane Operator", "wallet_balance": 5240, "onboarded": true, "next_renewal": { "at": "2026-09-01T00:00:00+00:00", "amount_cents": 8600, "instances": 3 } }, "projects": [ { "id": 1, "name": "default", "type": "personal", "current_user_role": "owner" } ] }
مثال
curl https://api.evorxa.com/api/me \ -H "Authorization: Bearer $EVORXA_TOKEN"
PUT
/meUpdate your profileUpdates the authenticated user's personal details. All fields are optional; only the fields you send are changed.
الصلاحية المطلوبة
allجسم الطلب
الاسم النوع الوصف first_namestringOptional. First name. last_namestringOptional. Last name. phonestringOptional. Phone number in international format. Send null to clear. countrystringOptional. Two-letter country code (ISO 3166-1 alpha-2). الردود
- 200Updated user record.
{ "user": { "id": 42, "name": "Jane Operator", "first_name": "Jane", "last_name": "Operator", "email": "you@example.com", "phone": "+15550001111", "country": "US" } } - 422Validation failed.
مثال
curl -X PUT https://api.evorxa.com/api/me \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"first_name":"","last_name":"","phone":"","country":""}'GET
/me/api-tokensList your personal API tokensالصلاحية المطلوبة
allالردود
- 200Token list (without the secret)
[ { "id": 7, "name": "CI deployer", "abilities": ["instances:read", "instances:write"], "last_used_at": "2026-05-14T09:12:03.000Z", "created_at": "2026-05-01T18:00:00.000Z" } ]
مثال
curl https://api.evorxa.com/api/me/api-tokens \ -H "Authorization: Bearer $EVORXA_TOKEN"
POST
/me/api-tokensMint a new API tokenجسم الطلب
الاسم النوع الوصف nameإلزاميstringHuman label for this token. abilitiesstring[]Optional. Defaults to ["*"] (full access). Use scoped abilities like "instances:read" to limit the token. الردود
- 201Token created. The plaintext token is returned only once, so store it now.
{ "id": 8, "name": "CI deployer", "abilities": ["instances:read", "instances:write"], "token": "8|aB9xKp2QrLm...", "created_at": "2026-05-14T19:42:18.000Z" }
مثال
curl -X POST https://api.evorxa.com/api/me/api-tokens \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"","abilities":[]}'DELETE
/me/api-tokens/{id}Revoke an API tokenبارامترات المسار
الاسم النوع الوصف idإلزاميintegerToken ID. الردود
- 204Revoked.
مثال
curl -X DELETE https://api.evorxa.com/api/me/api-tokens/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"
team
Team
Projects are shared workspaces. Each member holds a role. Owners can invite teammates, manage members, rename or delete the project, and take billing-impacting actions (create, upgrade, delete, or reactivate instances). Members get read and non-billing access. Invitations go out by email and expire after seven days.
GET
/projects/{project}/membersList members and pending invitationsReturns the project's members with their roles plus any pending invitations. Available to every member of the project.
الصلاحية المطلوبة
allبارامترات المسار
الاسم النوع الوصف projectإلزاميintegerProject ID. الردود
- 200Members and pending invitations.
{ "project": { "id": 1, "name": "default", "type": "personal" }, "current_user_role": "owner", "members": [ { "id": 3, "role": "owner", "user": { "id": 42, "name": "Jane Operator", "email": "you@example.com" } } ], "invitations": [ { "id": 9, "email": "teammate@example.com", "role": "member", "expires_at": "2026-06-02T12:00:00.000Z", "inviter": { "id": 42, "name": "Jane Operator", "email": "you@example.com" } } ] } - 404You are not a member of this project.
مثال
curl https://api.evorxa.com/api/projects/{project}/members \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/projects/{project}/invitationsInvite a teammate by emailOwner only. Sends an email invitation that the recipient accepts while signed in with the same address. The invitation expires after seven days.
الصلاحية المطلوبة
allبارامترات المسار
الاسم النوع الوصف projectإلزاميintegerProject ID. جسم الطلب
الاسم النوع الوصف emailإلزاميstringRecipient email address. rolestringOptional. "owner" or "member". Defaults to "member". localestringOptional. One of "en", "ar", "de", "nl", "it". Sets the language of the invitation link. Defaults to "en". الردود
- 201Invitation created and emailed.
{ "id": 9, "project_id": 1, "email": "teammate@example.com", "role": "member", "expires_at": "2026-06-02T12:00:00.000Z" } - 403Only project owners can invite teammates.
- 409An active invitation already exists for that email.
- 422That user is already a project member.
مثال
curl -X POST https://api.evorxa.com/api/projects/{project}/invitations \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"email":"","role":"","locale":""}'DELETE
/projects/{project}/members/{member}Remove a memberOwner only. Removes a member from the project. A project must always keep at least one owner.
الصلاحية المطلوبة
allبارامترات المسار
الاسم النوع الوصف projectإلزاميintegerProject ID. memberإلزاميintegerMember record ID, from the members list. الردود
- 204Member removed.
- 403Only project owners can remove members.
- 422Cannot remove the last remaining owner.
مثال
curl -X DELETE https://api.evorxa.com/api/projects/{project}/members/{member} \ -H "Authorization: Bearer $EVORXA_TOKEN"PUT
/projects/{project}Update project detailsOwner only. Updates the project's name and organization details. All fields are optional; only the fields you send are changed.
الصلاحية المطلوبة
allبارامترات المسار
الاسم النوع الوصف projectإلزاميintegerProject ID. جسم الطلب
الاسم النوع الوصف namestringOptional. Project / organization name. tax_idstringOptional. Tax or VAT registration number. Send null to clear. addressstringOptional. Billing address. Send null to clear. الردود
- 200Updated project.
{ "id": 1, "name": "Acme Inc", "type": "business", "tax_id": "EG-123456789", "address": "1 Production Way, Cairo" } - 403Only project owners can update project details.
مثال
curl -X PUT https://api.evorxa.com/api/projects/{project} \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"","tax_id":"","address":""}'DELETE
/projects/{project}/invitations/{invite}Cancel a pending invitationOwner only. Cancels an invitation that has not been accepted yet.
الصلاحية المطلوبة
allبارامترات المسار
الاسم النوع الوصف projectإلزاميintegerProject ID. inviteإلزاميintegerInvitation ID. الردود
- 204Invitation cancelled.
- 403Only project owners can cancel invitations.
- 422Accepted invitations cannot be cancelled.
مثال
curl -X DELETE https://api.evorxa.com/api/projects/{project}/invitations/{invite} \ -H "Authorization: Bearer $EVORXA_TOKEN"
instances
Instances
Provision, list, inspect, power-cycle, reinstall, upgrade, and retire VPS instances. Pricing is debited from the wallet at creation and at upgrade.
GET
/instancesList instancesالصلاحية المطلوبة
instances:readبارامترات الـQuery
الاسم النوع الوصف project_idintegerFilter to one project. Defaults to all projects you own. الردود
- 200Array of instances.
[ { "id": "01H9...", "name": "api-prod-1", "hostname": "api-prod-1.server.evorxa.net", "plan": "scout-2", "status": "running", "main_ip": "203.0.113.42", "vcpu": 2, "ram": 4, "storage": 60, "billed_till": "2026-06-14T00:00:00.000Z", "ip_addresses": [...] } ]
مثال
curl https://api.evorxa.com/api/instances \ -H "Authorization: Bearer $EVORXA_TOKEN"
POST
/instancesProvision a new instanceProvisions a server on the Evorxa platform, builds the OS, debits the wallet, and returns the new record. The instance starts in 'provisioning' status and transitions to 'running' once the OS boots.
الصلاحية المطلوبة
instances:writeجسم الطلب
الاسم النوع الوصف nameإلزاميstringDisplay name, 3-255 characters. Used in hostname derivation. hostnameإلزاميstringFQDN. Auto-managed reverse DNS. project_idإلزاميintegerOwning project. package_idإلزاميintegerPlan package ID. See /me/catalog/plans. categoryإلزاميstringEither "standard" or "cpu-optimized". os_template_idإلزاميintegerFrom /catalog/os-templates/{packageId}. Not required when app_slug is given, since the app selects its own base image. os_nameإلزاميstringDisplay label for the OS. Not required when app_slug is given. billing_cycleإلزاميstring"monthly", "6months", or "yearly". couponstringOptional coupon code. The discount is applied to the amount debited; an invalid, expired, or inapplicable code fails the request with 422 rather than charging full price. app_slugstringOptional. Install a one-click application on the new server. See /catalog/apps. Replaces os_template_id and os_name. app_passwordstringOptional, 8-128 characters. The sign-in password for the application. Omit it and a strong one is generated for you. Ignored by applications that create their own first account. app_license_keystringRequired only for applications that cannot install without a licence you already own — those are marked license_required_upfront in /catalog/apps. Sent to the server during installation and never returned. ssh_key_idsinteger[]Optional. SSH keys to inject at build time. الردود
- 201Instance created. Status is 'provisioning'.
- 402Insufficient wallet balance.
- 422Invalid plan, package, category, coupon, or app, the app does not fit the plan, or the plan is out of stock.
مثال
curl -X POST https://api.evorxa.com/api/instances \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"","hostname":"","project_id":0,"package_id":0,"category":"","os_template_id":0,"os_name":"","billing_cycle":"","coupon":"","app_slug":"","app_password":"","app_license_key":"","ssh_key_ids":[]}'GET
/instances/{id}/appGet the application installed on an instanceThe one-click application installed on this server, with its sign-in details. Installation continues in the background after the instance is created, so poll this until status is 'ready'. Answers with a null app when the server was built without one.
الصلاحية المطلوبة
instances:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200The application, or null.
{ "app": { "slug": "wordpress", "name": "WordPress", "status": "ready", "username": "admin", "password": "generated-at-order-time", "login_url": "http://203.0.113.42/wp-admin", "installed_at": "2026-06-14T10:22:41.000Z" } }
مثال
curl https://api.evorxa.com/api/instances/{id}/app \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/instances/{id}Get an instanceالصلاحية المطلوبة
instances:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Instance with live runtime state attached.
{ "id": "01H9...", "name": "api-prod-1", "status": "running", "vf_state": "complete", "vf_remote_state": { "state": "running", "cpu": 12.4, "memory": { "memtotal": 4194304, "memfree": 1572864 } } } - 404Instance not found or deleted.
مثال
curl https://api.evorxa.com/api/instances/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"DELETE
/instances/{id}Delete an instanceالصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. جسم الطلب
الاسم النوع الوصف modeإلزاميstring"immediate" (delete now, prorated refund) or "end_of_cycle" (cancel renewal). الردود
- 200Deleted, with refund amount in cents.
مثال
curl -X DELETE https://api.evorxa.com/api/instances/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode":""}'POST
/instances/{id}/power/{action}Power actionBoot, shutdown, restart, or hard power-off. Local status moves to a transitional state and syncs from the hypervisor.
الصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. actionإلزاميstringboot · shutdown · restart · poweroff الردود
- 200Command dispatched.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/power/{action} \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/instances/trafficNetwork traffic across every instanceOne request for the whole account. Readings are stored every five minutes and summed per bucket, so this is the cheap way to chart bandwidth without asking each instance in turn. Counters are differenced per instance before they are added together, and a reboot that resets a counter contributes nothing rather than a spike.
الصلاحية المطلوبة
analytics:readبارامترات الـQuery
الاسم النوع الوصف periodstring"1h", "6h", "12h", "24h". Default "24h". الردود
- 200Totals for the window and a continuous series.
{ "period_minutes": 1440, "bucket_minutes": 30, "instances": 4, "totals": { "rx_bytes": 1363148599296, "tx_bytes": 559532441600 }, "points": [ { "t": "2026-08-18T00:00:00+00:00", "rx_bytes": 28374619136, "tx_bytes": 11653201920 } ] }
مثال
curl https://api.evorxa.com/api/instances/traffic \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/instances/{id}/metricsCPU / RAM / disk / networkLive snapshot from the hypervisor plus stored history for the requested period.
الصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. بارامترات الـQuery
الاسم النوع الوصف periodstring"5m", "30m", "1h", "6h", "12h", "24h". Default "1h". الردود
- 200Current snapshot + history points.
{ "current": { "cpu_percent": 12.4, "memory_used_kb": 2621440, "memory_total_kb": 4194304, "disk_used_bytes": 12884901888, "disk_total_bytes": 64424509440, "network_rx_bytes": 938472847, "network_tx_bytes": 271938247 }, "history": [...] }
مثال
curl https://api.evorxa.com/api/instances/{id}/metrics \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/instances/{id}/upgradeUpgrade planProrates the difference and debits the wallet. Optionally reboots immediately.
الصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. جسم الطلب
الاسم النوع الوصف package_idإلزاميintegerTarget plan package. rebootإلزاميbooleanReboot immediately to apply. الردود
- 200Upgraded with prorated charge.
- 402Insufficient wallet balance for the difference.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/upgrade \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"package_id":0,"reboot":false}'POST
/instances/{id}/reinstallReinstall the OS or an applicationWipes the disk and rebuilds it. Send either an operating system or an application slug — an application brings its own image, so the two are alternatives rather than a pair. The root password is reissued and returned by GET /instances/{id}.
الصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. جسم الطلب
الاسم النوع الوصف os_template_idintegerRequired unless app_slug is sent. From /instances/{id}/reinstall-options. os_namestringRequired unless app_slug is sent. Display label. app_slugstringRequired unless os_template_id is sent. From /catalog/apps. Refused with 422 if the plan is below the application's minimums. app_passwordstringOptional. Sign-in password for the application. Generated for you when omitted. app_license_keystringOptional. Required up front by applications that validate a licence during setup. الردود
- 200Reinstall started. Status moves to 'provisioning'.
- 422Neither an operating system nor an application was sent, or the plan is too small for the application.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/reinstall \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"os_template_id":0,"os_name":"","app_slug":"","app_password":"","app_license_key":""}'GET
/instances/{id}/reinstall-optionsList OS templates for reinstallالصلاحية المطلوبة
instances:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200OS template groups.
مثال
curl https://api.evorxa.com/api/instances/{id}/reinstall-options \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/instances/{id}/reset-passwordGenerate a new root/Administrator passwordالصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200New password returned in cleartext (once).
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/reset-password \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/instances/{id}/cancel-deletionUndo a scheduled deletionالصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Deletion cancelled, billing resumed.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/cancel-deletion \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/instances/{id}/extendExtend the billing period earlyDebits one billing cycle from the wallet immediately and pushes billed_till forward by that cycle. Clears any scheduled end-of-cycle deletion. Not available while the instance is suspended.
الصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Extended; new billed_till returned.
- 402Insufficient wallet balance.
- 422Instance suspended or has no renewable cycle.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/extend \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/instances/{id}/reactivateReactivate a suspended instanceDebits the cycle cost from the wallet, extends billed_till, and unsuspends the instance.
الصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Reactivated.
- 402Insufficient wallet balance.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/reactivate \ -H "Authorization: Bearer $EVORXA_TOKEN"
ddos
DDoS Protection
Network-layer DDoS protection is always on for supported locations: attacks are detected and scrubbed at the network edge before they reach your server. These endpoints expose the scrubbing analytics (dropped vs passed traffic), the attack history of an instance, and the per-instance attack notification settings. All of them return supported: false when the instance's IP is not on a protected prefix.
GET
/instances/{id}/ddos/overviewDropped vs passed traffic seriesTime series of scrubbed (dropped) and clean (passed) traffic for the instance's primary IPv4, normalized to bits per second and ordered oldest first. The live period returns roughly 12-second buckets covering the last 10 minutes; longer periods return coarser buckets.
الصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. بارامترات الـQuery
الاسم النوع الوصف periodstring"live", "1h", "1d", "1w". Default "live". الردود
- 200Traffic points for the period.
{ "supported": true, "period": "live", "points": [ { "time": "2026-08-11T17:12:15Z", "drop_bps": 0, "pass_bps": 470 }, { "time": "2026-08-11T17:12:28Z", "drop_bps": 528000000, "pass_bps": 610 } ], "updated_at": "2026-08-11T17:12:28Z" } - 502Analytics temporarily unavailable upstream.
مثال
curl https://api.evorxa.com/api/instances/{id}/ddos/overview \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/instances/{id}/ddos/incidentsAttack historyPast DDoS attacks against the instance's primary IPv4, newest first. Only attacks that happened after the instance was created are listed.
الصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. بارامترات الـQuery
الاسم النوع الوصف pageintegerPage number, starting at 1. الردود
- 200Attack list with pagination.
{ "supported": true, "items": [ { "id": 106248, "started_at": "2026-07-12T11:15:28Z", "ended_at": "2026-07-12T11:16:13Z", "duration_seconds": 45, "vectors": ["UDP_FLOOD"], "peak": "771.49 Mbps" } ], "page": 1, "page_size": 10, "total_items": 1, "total_pages": 1, "has_next": false, "has_previous": false } - 502Analytics temporarily unavailable upstream.
مثال
curl https://api.evorxa.com/api/instances/{id}/ddos/incidents \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/instances/{id}/ddos/settingsGet attack notification settingsAttack notification preferences for this instance. Email alerts are enabled by default. The Discord webhook URL is write-only: reads expose only whether one is configured plus its last four characters.
الصلاحية المطلوبة
instances:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Current settings.
{ "email_notifications": true, "discord_webhook_configured": true, "discord_webhook_hint": "a1b2", "affiliate_link_enabled": false, "is_affiliate": true }
مثال
curl https://api.evorxa.com/api/instances/{id}/ddos/settings \ -H "Authorization: Bearer $EVORXA_TOKEN"PUT
/instances/{id}/ddos/settingsUpdate attack notification settingsAll fields are optional; only the fields you send are changed. The Discord alert is shareable by design: it shows attack details and a 'Server protected by Evorxa' link, but never your IP address. With affiliate_link_enabled (affiliates only) that link becomes your referral shortlink.
الصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. جسم الطلب
الاسم النوع الوصف email_notificationsbooleanOptional. Email the project owner when an attack is mitigated. discord_webhook_urlstringOptional. A discord.com/api/webhooks/... URL. Send null to remove. affiliate_link_enabledbooleanOptional. Use your affiliate shortlink in the webhook embed. الردود
- 200Updated settings (same shape as GET).
- 422Webhook URL is not a valid Discord webhook.
مثال
curl -X PUT https://api.evorxa.com/api/instances/{id}/ddos/settings \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"email_notifications":false,"discord_webhook_url":"","affiliate_link_enabled":false}'
agent
AI Agent
An LLM-driven operator with SSH into your box and a tool kit (shell, file edit, log tail). Open a chat to an instance and stream the agent's actions back. Every account includes a one-time free usage allowance; once it is spent, usage is billed to your wallet balance — but only after you explicitly enable billing.
GET
/agent/creditsGet AI agent credit balanceالصلاحية المطلوبة
agent:readالردود
- 200Balances in cents: the remaining free allowance, the wallet, their sum, and whether pay-as-you-go billing has been enabled.
{ "ai_trial_cents": 500, "wallet_cents": 1240, "total_cents": 1740, "billing_enabled": false }
مثال
curl https://api.evorxa.com/api/agent/credits \ -H "Authorization: Bearer $EVORXA_TOKEN"
POST
/agent/billing/enableEnable pay-as-you-go AI billingExplicit opt-in to wallet charging. Until this is called the agent only spends the free allowance and stops with a 402 (error `ai_billing_required`) when it runs out; afterwards, usage past the allowance debits the wallet. One-way: there is no disable endpoint. Idempotent.
الصلاحية المطلوبة
agent:writeالردود
- 200The updated balance breakdown.
{ "ai_trial_cents": 0, "wallet_cents": 1240, "total_cents": 1240, "billing_enabled": true }
مثال
curl -X POST https://api.evorxa.com/api/agent/billing/enable \ -H "Authorization: Bearer $EVORXA_TOKEN"
POST
/instances/{id}/agent/chatSend a message to the agentStarts a new conversation or appends to an existing one. The agent may issue tool calls (shell, file edit) which run on your instance via SSH. Each tool call and token is metered.
الصلاحية المطلوبة
agent:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. جسم الطلب
الاسم النوع الوصف messageإلزاميstringUser prompt. conversation_idintegerOptional. Continue an existing conversation. الردود
- 200Conversation record with appended assistant message + any tool transcripts.
- 402No spendable AI credit. `error` is `ai_billing_required` when the free allowance is gone and billing was never enabled (fix: POST /agent/billing/enable), or `insufficient_ai_credits` when billing is enabled but the wallet is empty (fix: top up).
- 403Instance is suspended.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/agent/chat \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"message":"","conversation_id":0}'GET
/instances/{id}/agent/conversationsList conversations for an instanceالصلاحية المطلوبة
agent:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Conversations, newest first. Each carries `cost_cents`, the total that chat has consumed.
مثال
curl https://api.evorxa.com/api/instances/{id}/agent/conversations \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/instances/{id}/agent/conversations/{convId}Get a conversation transcriptالصلاحية المطلوبة
agent:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. convIdإلزاميintegerConversation ID. الردود
- 200Full message + tool call transcript, with the conversation's accumulated `cost_cents`.
مثال
curl https://api.evorxa.com/api/instances/{id}/agent/conversations/{convId} \ -H "Authorization: Bearer $EVORXA_TOKEN"DELETE
/instances/{id}/agent/conversations/{convId}Delete a conversationالصلاحية المطلوبة
agent:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. convIdإلزاميintegerConversation ID. الردود
- 204Deleted.
مثال
curl -X DELETE https://api.evorxa.com/api/instances/{id}/agent/conversations/{convId} \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/instances/{id}/agent/telegramGet Telegram link statusالصلاحية المطلوبة
agent:readبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. الردود
- 200Linked Telegram chat ID, or null.
مثال
curl https://api.evorxa.com/api/instances/{id}/agent/telegram \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/instances/{id}/agent/telegramLink a Telegram chat to the agentالصلاحية المطلوبة
agent:writeبارامترات المسار
الاسم النوع الوصف idإلزاميstringInstance UUID. جسم الطلب
الاسم النوع الوصف telegram_chat_idإلزاميstringFrom the /start reply. الردود
- 200Linked.
مثال
curl -X POST https://api.evorxa.com/api/instances/{id}/agent/telegram \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"telegram_chat_id":""}'
shield
Shield · Firewall & Visibility
Per-IP firewall rules, RDNS, bandwidth caps, and ingress visibility (top IPs, top ASNs, country breakdown, port mix, PPS). Backed by in-house Shield nodes.
GET
/shield/ipsList protected IPsالصلاحية المطلوبة
shield:readالردود
- 200IPs with rule counts, policy summary, current bandwidth.
مثال
curl https://api.evorxa.com/api/shield/ips \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/shield/ips/{id}Get a protected IPالصلاحية المطلوبة
shield:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Full IP profile: rules, policy, RDNS.
مثال
curl https://api.evorxa.com/api/shield/ips/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/shield/ips/{id}/rulesCreate a firewall ruleالصلاحية المطلوبة
shield:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. جسم الطلب
الاسم النوع الوصف actionإلزاميstring"allow" or "block". protocolإلزاميstring"tcp", "udp", or "any". src_cidrstringSource CIDR. Defaults to 0.0.0.0/0. dst_portintegerDestination port. Null = any. الردود
- 201Rule created and pushed to Shield nodes.
مثال
curl -X POST https://api.evorxa.com/api/shield/ips/{id}/rules \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"action":"","protocol":"","src_cidr":"","dst_port":0}'PUT
/shield/ips/{id}/rules/{ruleId}Update a firewall ruleالصلاحية المطلوبة
shield:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. ruleIdإلزاميintegerRule ID. الردود
- 200Updated.
مثال
curl -X PUT https://api.evorxa.com/api/shield/ips/{id}/rules/{ruleId} \ -H "Authorization: Bearer $EVORXA_TOKEN"DELETE
/shield/ips/{id}/rules/{ruleId}Delete a firewall ruleالصلاحية المطلوبة
shield:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. ruleIdإلزاميintegerRule ID. الردود
- 204Deleted.
مثال
curl -X DELETE https://api.evorxa.com/api/shield/ips/{id}/rules/{ruleId} \ -H "Authorization: Bearer $EVORXA_TOKEN"PUT
/shield/ips/{id}/policyUpdate default policyالصلاحية المطلوبة
shield:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. جسم الطلب
الاسم النوع الوصف default_instring"allow" or "block". default_outstring"allow" or "block". الردود
- 200Policy updated.
مثال
curl -X PUT https://api.evorxa.com/api/shield/ips/{id}/policy \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"default_in":"","default_out":""}'GET
/shield/ips/{id}/bandwidthBandwidth samplesالصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Time-series of bps in/out.
مثال
curl https://api.evorxa.com/api/shield/ips/{id}/bandwidth \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/ips/{id}/visibility/top-ipsTop source IPsالصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Ranked list of source IPs by bytes/packets.
مثال
curl https://api.evorxa.com/api/shield/ips/{id}/visibility/top-ips \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/ips/{id}/visibility/top-asnsTop source ASNsالصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Ranked ASN list.
مثال
curl https://api.evorxa.com/api/shield/ips/{id}/visibility/top-asns \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/ips/{id}/visibility/countriesCountry breakdownالصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Country share of incoming traffic.
مثال
curl https://api.evorxa.com/api/shield/ips/{id}/visibility/countries \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/ips/{id}/visibility/portsPort distributionالصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Most-hit destination ports.
مثال
curl https://api.evorxa.com/api/shield/ips/{id}/visibility/ports \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/ips/{id}/visibility/ppsPackets per secondالصلاحية المطلوبة
analytics:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerIP record ID. الردود
- 200Time-series PPS.
مثال
curl https://api.evorxa.com/api/shield/ips/{id}/visibility/pps \ -H "Authorization: Bearer $EVORXA_TOKEN"
waf
Web Application Firewall
Front an instance with a managed WAF + DDoS layer on the network edge. Each application gets its own protected hostname with an automatically issued certificate; point your own domains at it, tune enforcement, and read traffic, threat and live-event analytics.
GET
/shield/wafList WAF applicationsالصلاحية المطلوبة
waf:readالردود
- 200Applications with their hostnames, enforcement state and origin.
مثال
curl https://api.evorxa.com/api/shield/waf \ -H "Authorization: Bearer $EVORXA_TOKEN"
POST
/shield/wafCreate a WAF applicationالصلاحية المطلوبة
waf:writeجسم الطلب
الاسم النوع الوصف instance_idإلزاميstringThe instance to protect (its IP becomes the origin). nameإلزاميstringApplication label (max 100 chars). templateإلزاميstringhttp, https, or custom. portintegerOrigin port, required when template is custom (1–65535). الردود
- 201Application created with its protected hostname; the certificate is issued automatically.
- 422The instance is not provisioned yet, or it already has the maximum of 2 applications. Delete one to free a slot.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"instance_id":"","name":"","template":"","port":0}'GET
/shield/waf/{id}Get a WAF applicationالصلاحية المطلوبة
waf:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. الردود
- 200Application with its hostnames and certificate status.
مثال
curl https://api.evorxa.com/api/shield/waf/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"DELETE
/shield/waf/{id}Delete a WAF applicationالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. الردود
- 200Deleted, along with its hostnames and certificates.
مثال
curl -X DELETE https://api.evorxa.com/api/shield/waf/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/shield/waf/{id}/firewallToggle WAF enforcementالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. جسم الطلب
الاسم النوع الوصف enabledإلزاميbooleantrue blocks malicious requests; false runs detect-only. الردود
- 200Enforcement updated.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf/{id}/firewall \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"enabled":false}'POST
/shield/waf/{id}/under-attackToggle under-attack modeالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. جسم الطلب
الاسم النوع الوصف enabledإلزاميbooleanServe from a short-TTL edge cache during a surge so floods never reach the origin. الردود
- 200Mode updated.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf/{id}/under-attack \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"enabled":false}'PUT
/shield/waf/{id}/settingsUpdate protection settingsالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. جسم الطلب
الاسم النوع الوصف waf_modestringblock, detect, or off. challenge_enabledbooleanShow a proof-of-work challenge under attack. cache_enabledbooleanCache eligible responses at the edge. attack_cachebooleanUnder-attack micro-cache. rate_avgintegerSustained requests/sec per client. rate_burstintegerBurst allowance. الردود
- 200Settings updated (they apply to every hostname of the application).
مثال
curl -X PUT https://api.evorxa.com/api/shield/waf/{id}/settings \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"waf_mode":"","challenge_enabled":false,"cache_enabled":false,"attack_cache":false,"rate_avg":0,"rate_burst":0}'GET
/shield/waf/{id}/analyticsTraffic & threat analyticsالصلاحية المطلوبة
waf:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. بارامترات الـQuery
الاسم النوع الوصف periodstring24h (default), 7d, or 30d. الردود
- 200Totals, a time series, top paths/IPs/countries/ASNs, an activity heatmap and threat figures.
- 502Analytics temporarily unavailable.
مثال
curl https://api.evorxa.com/api/shield/waf/{id}/analytics \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/waf/{id}/eventsLive security eventsالصلاحية المطلوبة
waf:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. بارامترات الـQuery
الاسم النوع الوصف limitintegerMax events (1–200, default 100). الردود
- 200Recent blocked/challenged/inspected requests, newest first.
مثال
curl https://api.evorxa.com/api/shield/waf/{id}/events \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/shield/waf/{id}/hostnamesAdd a hostname (verify DNS)الصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. جسم الطلب
الاسم النوع الوصف hostnameإلزاميstringDomain to protect (max 255 chars). الردود
- 200DNS is not pointing at us yet. Returns { verified: false, dns } with the CNAME record to create, and nothing is added. Create the record (DNS-only, no proxy) and call again.
- 201DNS verified; the hostname is added and its certificate is issued automatically. Returns { verified: true, hostname, dns }.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf/{id}/hostnames \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"hostname":""}'POST
/shield/waf/{id}/hostnames/{hostnameId}/retry-sslRe-check DNS & issue certificateالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. hostnameIdإلزاميintegerHostname ID. الردود
- 200Hostname re-checked; certificate issued when DNS is in place.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf/{id}/hostnames/{hostnameId}/retry-ssl \ -H "Authorization: Bearer $EVORXA_TOKEN"DELETE
/shield/waf/{id}/hostnames/{hostnameId}Remove a hostnameالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. hostnameIdإلزاميintegerHostname ID. الردود
- 204Removed.
مثال
curl -X DELETE https://api.evorxa.com/api/shield/waf/{id}/hostnames/{hostnameId} \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/waf/{id}/liveLive view (events, counters, map)الصلاحية المطلوبة
waf:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. بارامترات الـQuery
الاسم النوع الوصف since_idintegerReturn events after this id (cursor). الردود
- 200Cursor events plus the current 5-minute window: live counters, per-country traffic (for the map), and top paths.
مثال
curl https://api.evorxa.com/api/shield/waf/{id}/live \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/waf/{id}/rulesList custom rulesالصلاحية المطلوبة
waf:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. الردود
- 200Your allow/block/challenge/log rules, in priority order.
مثال
curl https://api.evorxa.com/api/shield/waf/{id}/rules \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/shield/waf/{id}/rulesCreate a custom ruleالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. جسم الطلب
الاسم النوع الوصف nameإلزاميstringLabel (max 120 chars). actionإلزاميstringblock | challenge | allow | log. priorityinteger0–100000, lower runs first (default 100). enabledbooleanDefault true. matchإلزاميobjectConditions (all must match): path {op: prefix|exact|regex, value}, method [..], ip {op: in|not_in, cidrs: [..]}, header {name, op: exists|missing|equals, value?}, query {name, op, value?}. الردود
- 201Rule created.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf/{id}/rules \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"","action":"","priority":0,"enabled":false,"match":null}'PUT
/shield/waf/{id}/rules/{ruleId}Update a custom ruleالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. ruleIdإلزاميintegerRule ID. جسم الطلب
الاسم النوع الوصف (any create field)objectSend only the fields to change. الردود
- 200Rule updated.
مثال
curl -X PUT https://api.evorxa.com/api/shield/waf/{id}/rules/{ruleId} \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"(any create field)":null}'DELETE
/shield/waf/{id}/rules/{ruleId}Delete a custom ruleالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. ruleIdإلزاميintegerRule ID. الردود
- 200Removed.
مثال
curl -X DELETE https://api.evorxa.com/api/shield/waf/{id}/rules/{ruleId} \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/shield/waf/{id}/exclusionsList WAF exclusionsالصلاحية المطلوبة
waf:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. الردود
- 200Rules you've excused for your own legitimate traffic.
مثال
curl https://api.evorxa.com/api/shield/waf/{id}/exclusions \ -H "Authorization: Bearer $EVORXA_TOKEN"POST
/shield/waf/{id}/exclusionsCreate a WAF exclusionالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. جسم الطلب
الاسم النوع الوصف rule_idإلزاميstringThe rule number to relax (digits only). path_prefixstringOptional. Limit to paths starting with this. targetstringOptional. A single input to ignore (e.g. REQUEST_COOKIES); empty disables the whole rule. notestringOptional note (max 300 chars). enabledbooleanDefault true. الردود
- 201Exclusion created.
مثال
curl -X POST https://api.evorxa.com/api/shield/waf/{id}/exclusions \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"rule_id":"","path_prefix":"","target":"","note":"","enabled":false}'PUT
/shield/waf/{id}/exclusions/{xid}Update a WAF exclusionالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. xidإلزاميintegerExclusion ID. جسم الطلب
الاسم النوع الوصف (any create field)objectSend only the fields to change. الردود
- 200Exclusion updated.
مثال
curl -X PUT https://api.evorxa.com/api/shield/waf/{id}/exclusions/{xid} \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"(any create field)":null}'DELETE
/shield/waf/{id}/exclusions/{xid}Delete a WAF exclusionالصلاحية المطلوبة
waf:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerApplication ID. xidإلزاميintegerExclusion ID. الردود
- 200Removed.
مثال
curl -X DELETE https://api.evorxa.com/api/shield/waf/{id}/exclusions/{xid} \ -H "Authorization: Bearer $EVORXA_TOKEN"
wallet
Wallet & Billing
Balance, transactions, and invoices. Wallet is the money primitive: all paid actions (instance create/upgrade, reactivate) debit from it. Every server issues a renewal invoice 5 days before its due date; invoices are settled from wallet credit or paid directly by card or local payment.
GET
/wallet/balanceGet wallet balanceالصلاحية المطلوبة
wallet:readالردود
- 200Balance and a fresh exchange rate.
{ "balance_cents": 5240, "balance_usd": 52.40 }
مثال
curl https://api.evorxa.com/api/wallet/balance \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/wallet/transactionsList transactionsThe wallet ledger, newest first. Every paid action appears here with the balance it left behind.
الصلاحية المطلوبة
wallet:readبارامترات الـQuery
الاسم النوع الوصف pageintegerPage number. Default 1. per_pageintegerRows per page. Default 20, maximum 100. الردود
- 200Paginated transaction ledger.
مثال
curl https://api.evorxa.com/api/wallet/transactions \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/invoicesList invoicesPaginated invoice history, newest first. Renewal invoices are issued 5 days before an instance's due date and settle automatically from wallet credit when the balance covers them; wallet top-ups appear as already-paid invoices. Unpaid invoices past their due date carry is_overdue: true.
الصلاحية المطلوبة
wallet:readبارامترات الـQuery
الاسم النوع الوصف statusstringOptional filter: "unpaid", "paid", or "cancelled". pageintegerPage number, 20 invoices per page. الردود
- 200Paginated invoices
{ "data": [ { "id": 118, "number": "INV-000118", "type": "renewal", "status": "unpaid", "amount_cents": 699, "amount_formatted": "$6.99", "is_overdue": false, "due_date": "2026-08-16", "paid_at": null, "payment_method": null, "instance": { "id": "e2a6…", "name": "web-1" } } ], "current_page": 1, "last_page": 1, "total": 1 }
مثال
curl https://api.evorxa.com/api/invoices \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/invoices/{id}Get an invoiceA single invoice with its line items and billing period.
الصلاحية المطلوبة
wallet:readبارامترات المسار
الاسم النوع الوصف idإلزاميintegerInvoice id. الردود
- 200Invoice with line items
{ "id": 118, "number": "INV-000118", "type": "renewal", "status": "unpaid", "amount_cents": 699, "due_date": "2026-08-16", "period_start": "2026-08-16T00:00:00Z", "period_end": "2026-09-16T00:00:00Z", "items": [ { "description": "Renewal: web-1 std.1 (monthly)", "item_type": "plan", "amount_cents": 599 }, { "description": "Extra IP (monthly)", "item_type": "addon", "amount_cents": 100 } ] } - 404Invoice not found or not yours.
مثال
curl https://api.evorxa.com/api/invoices/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"
announcements
Announcements
Platform notices: new regions, planned maintenance, product changes. Read-only, and safe to poll on a schedule.
GET
/announcementsList active announcementsReturns up to 10 currently active announcements ordered by sort order, then newest first. Arabic fields are null when no translation was provided; body is null when there is no long-form text.
الردود
- 200Active announcements
[ { "id": 3, "title": "New region online", "title_ar": "منطقة جديدة متاحة", "excerpt": "Deploy servers in our newest location starting today.", "excerpt_ar": "انشر خوادمك في أحدث مواقعنا ابتداءً من اليوم.", "body": "Full details about the new region...", "body_ar": null, "image_url": "https://cdn.example.com/announcements/region.png", "created_at": "2026-07-20T10:00:00Z" } ]
مثال
curl https://api.evorxa.com/api/announcements \ -H "Authorization: Bearer $EVORXA_TOKEN"
catalog
Catalog
What you can buy. Public read-only catalog (no auth) plus an authenticated /me view.
GET
/catalog/plansPublic plans (no auth)بارامترات الـQuery
الاسم النوع الوصف currencystringOptional. USD (default), SAR, or EGP. Converts prices using the latest stored rate. الردود
- 200Plan categories with per-cycle pricing in the requested currency.
مثال
curl https://api.evorxa.com/api/catalog/plans \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/catalog/regionsPublic regions (no auth)الردود
- 200Region codes, names, flags.
مثال
curl https://api.evorxa.com/api/catalog/regions \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/catalog/billing-cyclesPublic billing cycles (no auth)الردود
- 200Monthly, 6-month, yearly + their cycle discounts.
مثال
curl https://api.evorxa.com/api/catalog/billing-cycles \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/catalog/exchange-ratesPublic USD-based FX rates (no auth)الردود
- 200Rates for USD, SAR, EGP plus the fetched_at timestamp. Refreshed daily from public reference data.
مثال
curl https://api.evorxa.com/api/catalog/exchange-rates \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/me/catalog/plansAuthenticated plansالردود
- 200Same shape as public, with personalised pricing applied.
مثال
curl https://api.evorxa.com/api/me/catalog/plans \ -H "Authorization: Bearer $EVORXA_TOKEN"
GET
/catalog/os-templates/{packageId}OS templates for a packageالصلاحية المطلوبة
instances:readبارامترات المسار
الاسم النوع الوصف packageIdإلزاميintegerPlan package ID. الردود
- 200OS groups with template variants.
مثال
curl https://api.evorxa.com/api/catalog/os-templates/{packageId} \ -H "Authorization: Bearer $EVORXA_TOKEN"GET
/catalog/appsPublic one-click applications (no auth)Applications that can be installed on a new server at creation time. Pass a slug as app_slug to POST /instances, and read the resulting sign-in details from GET /instances/{id}/app. Check min_ram_mb and min_storage_gb against the plan you intend to buy, since an application larger than its plan is refused.
الردود
- 200Available applications.
{ "apps": [ { "slug": "wordpress", "name": "WordPress", "tagline": "The website and blogging platform behind most of the web", "category": "cms", "default_username": "admin", "generates_password": true, "setup_note": null, "license_required_upfront": false, "min_ram_mb": 2048, "min_storage_gb": 20 } ] }
مثال
curl https://api.evorxa.com/api/catalog/apps \ -H "Authorization: Bearer $EVORXA_TOKEN"
ssh-keys
SSH Keys
Public SSH keys that can be injected at instance build time. Stored once, reused everywhere.
GET
/ssh-keysList SSH keysالصلاحية المطلوبة
instances:readالردود
- 200Your registered keys.
مثال
curl https://api.evorxa.com/api/ssh-keys \ -H "Authorization: Bearer $EVORXA_TOKEN"
POST
/ssh-keysAdd an SSH keyالصلاحية المطلوبة
instances:writeجسم الطلب
الاسم النوع الوصف nameإلزاميstringLabel. public_keyإلزاميstringOpenSSH-format public key. الردود
- 201Created.
مثال
curl -X POST https://api.evorxa.com/api/ssh-keys \ -H "Authorization: Bearer $EVORXA_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"","public_key":""}'DELETE
/ssh-keys/{id}Delete an SSH keyالصلاحية المطلوبة
instances:writeبارامترات المسار
الاسم النوع الوصف idإلزاميintegerKey ID. الردود
- 204Deleted.
مثال
curl -X DELETE https://api.evorxa.com/api/ssh-keys/{id} \ -H "Authorization: Bearer $EVORXA_TOKEN"