Raw API Responses
Every resource method returns typed DTOs, but the untouched original payload is always available too.
Every DTO carries ->raw
php
$employee = $biotime->employees()->find('EMP001');
$employee->raw; // the exact array returned by the API for this rowUse this for any field the DTO doesn't model as a typed property (see DTOs).
Client for direct requests
If you need to call an endpoint the SDK's resources don't wrap, BioTime::client() exposes the underlying Client, which handles authentication and retries the same way every resource method does:
php
$client = $biotime->client();
$raw = $client->get('/personnel/api/employees/', ['emp_code' => 'EMP001']);
// $raw is the decoded JSON array — count/next/previous/data envelopeClient exposes get(), post(), put(), delete() (all returning decoded JSON arrays), and download() (returning a raw string body, used internally by Attendances::export()).
Export endpoints return raw bytes, not DTOs
Attendances::export() is the one built-in method that intentionally skips DTO mapping entirely — see Attendances → Exporting.