توثيق الـAPI · v1

السطح كله، موثّق.

كل endpoint يستخدمه الداشبورد متاح لك. اطلع توكن وصول شخصي، حط الـAuthorization header، وابدأ. الـAPI مجاني — تدفع بس على اللي تشغّله.

Base URLhttps://api.evorxa.com/api
ترويسة المصادقةAuthorization: Bearer <token>
حد الطلبات60 طلب/دقيقة لكل توكن

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/me

    Returns the user record and the projects they belong to, including the caller's role in each project.

    الردود

    • 200User and project list
      {
        "user": {
          "id": 42,
          "email": "you@example.com",
          "name": "Jane Operator",
          "wallet_balance": 5240,
          "onboarded": true
        },
        "projects": [
          { "id": 1, "name": "default", "type": "personal", "current_user_role": "owner" }
        ]
      }

    مثال

    curl https://api.evorxa.com/api/me \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • PUT/me

    Updates 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":""}'
  • PUT/me/email

    Changes the email address you sign in with. Requires your current password. A verification email is sent to the new address, and existing sessions must re-authenticate. Not available for accounts that sign in through an external identity provider.

    الصلاحية المطلوبة

    all

    جسم الطلب

    الاسمالنوعالوصف
    emailإلزاميstringThe new email address. Must not be in use by another account.
    current_passwordإلزاميstringYour current account password.

    الردود

    • 200Email updated.
      {
        "message": "Email updated. Please verify the new address and sign in again.",
        "requires_relogin": true
      }
    • 422Wrong current password, email already in use, or the account uses an external identity provider.

    مثال

    curl -X PUT https://api.evorxa.com/api/me/email \
      -H "Authorization: Bearer $EVORXA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"email":"","current_password":""}'
  • PUT/me/password

    Sets a new account password. Requires your current password. Not available for accounts that sign in through an external identity provider.

    الصلاحية المطلوبة

    all

    جسم الطلب

    الاسمالنوعالوصف
    current_passwordإلزاميstringYour current account password.
    passwordإلزاميstringThe new password (minimum 8 characters, must differ from the current one).
    password_confirmationإلزاميstringRepeat of the new password.

    الردود

    • 200Password updated.
      { "message": "Password updated." }
    • 422Wrong current password, weak password, or the account uses an external identity provider.

    مثال

    curl -X PUT https://api.evorxa.com/api/me/password \
      -H "Authorization: Bearer $EVORXA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"current_password":"","password":"","password_confirmation":""}'
  • GET/me/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-tokens

    جسم الطلب

    الاسمالنوعالوصف
    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 — 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}

    بارامترات المسار

    الاسمالنوعالوصف
    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}/members

    Returns 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}/invitations

    Owner 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. "en" or "ar". 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}

    Owner 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}

    Owner 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}

    Owner 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"
  • GET/project-invitations/{token}

    Resolves an invitation token for the signed-in account. Use it to preview the project before accepting. The status is "pending" when your email matches the invited address, or "wrong_email" otherwise.

    الصلاحية المطلوبة

    all

    بارامترات المسار

    الاسمالنوعالوصف
    tokenإلزاميstringInvitation token from the email link.

    الردود

    • 200Invitation details for the current account.
      {
        "status": "pending",
        "current_user_email": "teammate@example.com",
        "invitation": {
          "id": 9,
          "email": "teammate@example.com",
          "role": "member",
          "expires_at": "2026-06-02T12:00:00.000Z",
          "project": { "id": 1, "name": "default", "type": "personal" },
          "invited_by": { "id": 42, "name": "Jane Operator", "email": "you@example.com" }
        }
      }
    • 410Invitation is no longer valid (status "expired", "cancelled", or "accepted").

    مثال

    curl https://api.evorxa.com/api/project-invitations/{token} \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • POST/project-invitations/{token}/accept

    Joins the project as the invited role. You must be signed in with the email address the invitation was sent to. Accepting twice is safe and does not create a duplicate membership.

    الصلاحية المطلوبة

    all

    بارامترات المسار

    الاسمالنوعالوصف
    tokenإلزاميstringInvitation token from the email link.

    الردود

    • 200Joined. Returns the project and your membership.
      {
        "status": "accepted",
        "project": { "id": 1, "name": "default", "type": "personal" },
        "membership": { "id": 12, "project_id": 1, "user_id": 57, "role": "member" }
      }
    • 403Signed in with a different email (status "wrong_email").
    • 410Invitation is expired, cancelled, or already accepted.

    مثال

    curl -X POST https://api.evorxa.com/api/project-invitations/{token}/accept \
      -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/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/instances

    Provisions 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. 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}.
    os_nameإلزاميstringDisplay label for the OS.
    billing_cycleإلزاميstring"monthly", "6months", or "yearly".
    ssh_key_idsinteger[]Optional. SSH keys to inject at build time.

    الردود

    • 201Instance created. Status is 'provisioning'.
    • 402Insufficient wallet balance.
    • 422Invalid plan, package, or category.

    مثال

    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":"","ssh_key_ids":[]}'
  • GET/instances/{id}

    الصلاحية المطلوبة

    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}

    الصلاحية المطلوبة

    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}

    Boot, 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/{id}/metrics

    Live 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}/upgrade

    Prorates 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}/reinstall

    الصلاحية المطلوبة

    instances:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميstringInstance UUID.

    جسم الطلب

    الاسمالنوعالوصف
    os_template_idإلزاميintegerFrom /instances/{id}/reinstall-options.
    os_nameإلزاميstringDisplay label.

    الردود

    • 200Reinstall started. Status moves to 'provisioning'.

    مثال

    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":""}'
  • GET/instances/{id}/reinstall-options

    الصلاحية المطلوبة

    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-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-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}/extend

    Debits 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}/reactivate

    Debits 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"
  • GET/instances/{id}/vnc

    الصلاحية المطلوبة

    instances:read

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميstringInstance UUID.

    الردود

    • 200wss URL with token + VNC password.

    مثال

    curl https://api.evorxa.com/api/instances/{id}/vnc \
      -H "Authorization: Bearer $EVORXA_TOKEN"

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. Credits are debited from your AI Agent credit pool, separate from the wallet.

  • GET/agent/credits

    الصلاحية المطلوبة

    agent:read

    الردود

    • 200Balance in cents, includes trial credit.
      { "balance_cents": 1240, "trial_remaining_cents": 500 }

    مثال

    curl https://api.evorxa.com/api/agent/credits \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • POST/instances/{id}/agent/chat

    Starts 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.
    • 402Out of AI credits.
    • 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/conversations

    الصلاحية المطلوبة

    agent:read

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميstringInstance UUID.

    الردود

    • 200Conversations, newest first.

    مثال

    curl https://api.evorxa.com/api/instances/{id}/agent/conversations \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • GET/instances/{id}/agent/conversations/{convId}

    الصلاحية المطلوبة

    agent:read

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميstringInstance UUID.
    convIdإلزاميintegerConversation ID.

    الردود

    • 200Full message + tool call transcript.

    مثال

    curl https://api.evorxa.com/api/instances/{id}/agent/conversations/{convId} \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • DELETE/instances/{id}/agent/conversations/{convId}

    الصلاحية المطلوبة

    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/telegram

    الصلاحية المطلوبة

    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/telegram

    الصلاحية المطلوبة

    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/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}

    الصلاحية المطلوبة

    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}/rules

    الصلاحية المطلوبة

    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}

    الصلاحية المطلوبة

    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}

    الصلاحية المطلوبة

    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}/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}/bandwidth

    الصلاحية المطلوبة

    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-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-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/countries

    الصلاحية المطلوبة

    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/ports

    الصلاحية المطلوبة

    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/pps

    الصلاحية المطلوبة

    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 your apps with a managed WAF + DDoS layer. Add hostnames, get TLS issued automatically, toggle rule sets, and roll back at any time.

  • GET/shield/waf

    الصلاحية المطلوبة

    waf:read

    الردود

    • 200Apps with hostnames, firewall state, origin IP.

    مثال

    curl https://api.evorxa.com/api/shield/waf \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • POST/shield/waf

    الصلاحية المطلوبة

    waf:write

    جسم الطلب

    الاسمالنوعالوصف
    nameإلزاميstringApplication label.
    origin_ipإلزاميstringOrigin (instance) IP.
    origin_portintegerDefaults to 80/443.
    hostnameإلزاميstringPrimary hostname (CNAME this to the issued edge).

    الردود

    • 201App created. TLS issuance is queued.

    مثال

    curl -X POST https://api.evorxa.com/api/shield/waf \
      -H "Authorization: Bearer $EVORXA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"name":"","origin_ip":"","origin_port":0,"hostname":""}'
  • GET/shield/waf/{id}

    الصلاحية المطلوبة

    waf:read

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerApp ID.

    الردود

    • 200App with hostnames + SSL status.

    مثال

    curl https://api.evorxa.com/api/shield/waf/{id} \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • DELETE/shield/waf/{id}

    الصلاحية المطلوبة

    waf:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerApp ID.

    الردود

    • 204Deleted.

    مثال

    curl -X DELETE https://api.evorxa.com/api/shield/waf/{id} \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • POST/shield/waf/{id}/firewall

    الصلاحية المطلوبة

    waf:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerApp ID.

    جسم الطلب

    الاسمالنوعالوصف
    enabledإلزاميbooleanEnable or disable the rule set.

    الردود

    • 200State toggled.

    مثال

    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}/hostnames

    الصلاحية المطلوبة

    waf:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerApp ID.

    جسم الطلب

    الاسمالنوعالوصف
    hostnameإلزاميstringHostname to add. SSL will be issued.

    الردود

    • 201Hostname added, SSL queued.

    مثال

    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-ssl

    الصلاحية المطلوبة

    waf:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerApp ID.
    hostnameIdإلزاميintegerHostname ID.

    الردود

    • 200Retry queued.

    مثال

    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}

    الصلاحية المطلوبة

    waf:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerApp ID.
    hostnameIdإلزاميintegerHostname ID.

    الردود

    • 204Removed.

    مثال

    curl -X DELETE https://api.evorxa.com/api/shield/waf/{id}/hostnames/{hostnameId} \
      -H "Authorization: Bearer $EVORXA_TOKEN"

wallet

Wallet & Billing

Balance, transactions, and top-ups. Wallet is the money primitive — all paid actions (instance create/upgrade, reactivate) debit from it.

  • GET/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/transactions

    الصلاحية المطلوبة

    wallet:read

    بارامترات الـQuery

    الاسمالنوعالوصف
    typestring"debit", "credit", or both.
    limitintegerDefault 50, max 200.

    الردود

    • 200Paginated transaction ledger.

    مثال

    curl https://api.evorxa.com/api/wallet/transactions \
      -H "Authorization: Bearer $EVORXA_TOKEN"

announcements

Announcements

Platform announcements published by the Evorxa team, as shown on the dashboard overview. Read-only.

  • GET/announcements

    Returns 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/plans

    بارامترات الـ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/regions

    الردود

    • 200Region codes, names, flags.

    مثال

    curl https://api.evorxa.com/api/catalog/regions \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • GET/catalog/billing-cycles

    الردود

    • 200Monthly, 6-month, yearly + their cycle discounts.

    مثال

    curl https://api.evorxa.com/api/catalog/billing-cycles \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • GET/catalog/exchange-rates

    الردود

    • 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/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}

    الصلاحية المطلوبة

    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"

ssh-keys

SSH Keys

Public SSH keys that can be injected at instance build time. Stored once, reused everywhere.

  • GET/ssh-keys

    الصلاحية المطلوبة

    instances:read

    الردود

    • 200Your registered keys.

    مثال

    curl https://api.evorxa.com/api/ssh-keys \
      -H "Authorization: Bearer $EVORXA_TOKEN"
  • POST/ssh-keys

    الصلاحية المطلوبة

    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}

    الصلاحية المطلوبة

    instances:write

    بارامترات المسار

    الاسمالنوعالوصف
    idإلزاميintegerKey ID.

    الردود

    • 204Deleted.

    مثال

    curl -X DELETE https://api.evorxa.com/api/ssh-keys/{id} \
      -H "Authorization: Bearer $EVORXA_TOKEN"