Customer Task via Admin API

Allow Admins to perform customer-level tasks securely using their Admin API key and a customer ID header.

πŸ” Perform Customer Tasks via Admin API Key

Allow admins to perform any customer-level operation by reusing existing customer endpoints. This is done securely using X-ADMIN-API-KEY and X-CUSTOMER-ID headers.


πŸ”Ή How It Works

Admin can call any customer API endpoint like API-URL/lists, API-URL/contacts, etc., by sending:

  • X-ADMIN-API-KEY in the header (for admin authentication)

  • X-CUSTOMER-ID in the header (to impersonate customer context)

The system detects these headers, validates them, and routes the request through existing customer workflows.


πŸ“₯ Example: Get Contact Lists as Admin

πŸ”Ή HTTP Request

GET API-URL/lists

πŸ” Authorization Header

Header
Type
Required
Description

X-ADMIN-API-KEY

string

Yes

Valid admin API key

X-CUSTOMER-ID

string

Yes

Customer UID to impersonate

πŸ’» PHP Example

$response = Http::withHeaders([
  'X-ADMIN-API-KEY' => 'admin-abc-123',
  'X-CUSTOMER-ID' => 'ab382plq98zr7'
])->get('API-URL/lists');

print_r($response->json());

πŸ“¦ Sample JSON Response

{
  "status": "success",
  "lists": [
    {
      "uid": "xj35478ymfe15",
      "name": "Newsletter Subscribers"
    },
    {
      "uid": "lm451q7h7j3e2",
      "name": "Event Attendees"
    }
  ]
}

πŸ“ Example: Create a List as Admin

πŸ”Ή HTTP Request

POST API-URL/lists

πŸ” Authorization Header

Header
Type
Required
Description

X-ADMIN-API-KEY

string

Yes

Valid admin API key

X-CUSTOMER-ID

string

Yes

Customer UID to impersonate

πŸ”Έ POST Parameters

Field
Type
Required
Description

name

string

Yes

Name of the list

description

string

No

Optional list note

πŸ’» PHP Example

$response = Http::withHeaders([
  'X-ADMIN-API-KEY' => 'admin-abc-123',
  'X-CUSTOMER-ID' => 'ab382plq98zr7'
])->post('API-URL/lists', [
  'name' => 'New Customers List',
  'description' => 'Imported from CRM'
]);

print_r($response->json());

πŸ“¦ Sample JSON Response

{
  "status": "success",
  "message": "List created successfully",
  "list": {
    "uid": "ls35478ymfe15",
    "name": "New Customers List"
  }
}

πŸ›  Notes

  • Works for all HTTP verbs: GET, POST, PUT, DELETE

  • Admin access is controlled strictly via headers

  • Always log admin impersonation actions


Last updated