{{-- The customer reading this page is the BUYER's customer, so the panel it names must be the buyer's brand — not the product it was built with. --}} {{-- API Key + Quick reference --}}
{{-- Key card --}}

{{ __('Your API Key') }}

{{ __('Use this key as the :param parameter in every request.', ['param' => 'key']) }}

@if ($plainKey !== '')
{{ $plainKey }}
{{ __('Copy it now — for your security we store it hashed and cannot show it again.') }}
@else
{{ str_repeat('•', 36) }}

{{ __('Your key is active but hidden. If you have lost it, generate a new one above — the old one is invalidated immediately.') }}

@endif
{{-- Quick reference --}}

{{ __('Connection details') }}

{{ __('Endpoint') }}
{{ $endpoint }}
{{ __('Method') }}
POST
{{ __('Format') }}
JSON
{{ __('Auth param') }}
key=…
{{ __('Rate limit') }}
300 req/min

{{ __('Compatible with all SMM panel connectors that support the standard Perfect Panel API.') }}

{{ __('Full API reference') }}
{{-- Actions table --}}

{{ __('Available actions') }}

{{ __('Send action as a POST parameter. All prices are per 1,000 units.') }}

@foreach ([ ['services', 'key', '—', __('List active services with your rates')], ['add', 'key, service, link, quantity', 'runs, interval, comments', __('Place a new order')], ['status', 'key, order', '—', __('Get one order status')], ['status (multi)', 'key, orders', '—', __('Get multiple order statuses (comma-separated IDs, max 100)')], ['balance', 'key', '—', __('Get your account balance')], ['refill', 'key, order', '—', __('Request a refill for one order')], ['refill (multi)', 'key, orders', '—', __('Refill multiple orders at once (max 100)')], ['refill_status', 'key, refill', '—', __('Check refill status by refill ID')], ['cancel', 'key, order', '—', __('Request cancellation of one order')], ['cancel (multi)', 'key, orders', '—', __('Cancel multiple orders (max 100)')], ] as [$action, $required, $optional, $desc]) @endforeach
{{ __('Action') }} {{ __('Required params') }} {{ __('Optional params') }} {{ __('Description') }}
{{ $action }} {{ $required }} {{ $optional }} {{ $desc }}
{{-- Code examples with tabs --}}

{{ __('Code examples') }}

@foreach (['curl' => 'cURL', 'php' => 'PHP', 'js' => 'JavaScript'] as $t => $label) @endforeach
{{-- cURL examples --}}
@foreach ($curlExamples as $ex)

{{ $ex['title'] }}

{{ $ex['code'] }}
@endforeach
{{-- PHP examples --}}
@foreach ($phpExamples as $ex)

{{ $ex['title'] }}

{{ $ex['code'] }}
@endforeach
{{-- JavaScript examples --}}
@foreach ($jsExamples as $ex)

{{ $ex['title'] }}

{{ $ex['code'] }}
@endforeach
{{-- Reference: statuses + errors + drip-feed --}}
{{-- Order statuses --}}

{{ __('Order statuses') }}

@foreach ([ ['Pending', 'info', __('Awaiting dispatch to provider')], ['In progress', 'warning', __('Provider is working on it')], ['Processing', 'warning', __('Provider queued')], ['Completed', 'active', __('Fully delivered')], ['Partial', 'warning', __('Partially delivered — a refund was issued for the remainder')], ['Canceled', 'error', __('Canceled — full refund issued')], ['Refunded', 'error', __('Fully refunded')], ] as [$status, $tone, $desc])
{{ $status }} {{ $desc }}
@endforeach
{{-- Common errors --}}

{{ __('Error responses') }}

{{ __('All errors follow the same shape:') }}

{"status":"error","error":"…"}
@foreach ([ ['Incorrect request', __('Missing or unknown action parameter')], ['Invalid API key', __('Key not found or account inactive')], ['Insufficient funds', __('Wallet balance too low for the order')], ['Invalid service ID', __('Service not found or inactive')], ['Quantity must be between X and Y',__('Quantity out of allowed range')], ['Too many requests', __('Rate limit exceeded — wait before retrying')], ] as [$error, $desc])

{{ $error }}

{{ $desc }}

@endforeach
{{-- Drip-feed + security tips --}}

{{ __('Drip-feed') }}

{{ __('Split a large order into timed batches with :runs and :interval.', ['runs' => 'runs', 'interval' => 'interval']) }}

action=add
service=1
link=https://…
quantity=1000
runs=10
interval=60

# 10 batches of 100 units
# one every 60 minutes

{{ __('Security tips') }}

    @foreach ([ __('Never expose your API key in client-side code or public repos.'), __('Regenerate your key immediately if you suspect it was leaked.'), __('Use :param to prevent duplicate orders in retry logic.', ['param' => 'Idempotency-Key']), __('Your key can only access your own orders and balance.'), ] as $tip)
  • {{ $tip }}
  • @endforeach