PHP code example of oriacall / sdk
1. Go to this page and download the library: Download oriacall/sdk library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
oriacall / sdk example snippets
use Oriacall\Oriacall;
$oriacall = Oriacall::client([
'clientId' => getenv('ORIACALL_CLIENT_ID'),
'clientSecret' => getenv('ORIACALL_CLIENT_SECRET'),
'scope' => ['hello:read', 'objectives:read', 'calls:read'],
]);
$hello = $oriacall->hello->get();
echo $hello->data['message'].' '.$hello->requestId.PHP_EOL;
$calls = $oriacall->calls->list(['limit' => 50]);
print_r($calls->data['data']);
$oriacall = Oriacall::client([
'baseUrl' => 'https://api.oriacall.com',
'clientId' => getenv('ORIACALL_CLIENT_ID'),
'clientSecret' => getenv('ORIACALL_CLIENT_SECRET'),
'scope' => ['calls:read'],
'retries' => 2,
'retryBaseDelayMs' => 250,
'retryMaxDelayMs' => 2000,
'timeoutSeconds' => 30,
'onResponse' => function (array $event): void {
error_log(json_encode($event));
},
]);
$response->data; // decoded JSON array, or null for delete responses
$response->status; // HTTP status code
$response->requestId; // X-Request-Id when provided
$oriacall->getAccessToken();
$oriacall->raw('GET', '/v1/hello');
$oriacall->hello->get();
$oriacall->objectives->list(['limit' => 50]);
$oriacall->objectives->update('objective-id', ['customFields' => ['region' => 'north']]);
$oriacall->objectives->paginate(['limit' => 50]);
$oriacall->objectiveCustomFields->list();
$oriacall->objectiveCustomFields->create(['key' => 'region', 'label' => 'Region', 'type' => 'text']);
$oriacall->objectiveCustomFields->update('region', ['label' => 'Sales Region']);
$oriacall->agents->list(['objectiveId' => 'objective-id']);
$oriacall->agents->paginate(['limit' => 50]);
$oriacall->calls->list(['externalId' => 'crm-call-123']);
$oriacall->calls->get('call-id');
$oriacall->calls->lookupByExternalIds(['crm-call-123', 'crm-call-456']);
$oriacall->calls->update('call-id', ['recordedAt' => '2026-06-10T14:30:00Z']);
$oriacall->calls->upload([...]);
$oriacall->calls->queueAnalysis('call-id');
$oriacall->calls->waitForAnalysis('call-id', ['timeoutMs' => 120000]);
$oriacall->calls->paginate(['limit' => 50]);
$oriacall->leads->list(['customFields' => ['crm_stage' => 'qualified']]);
$oriacall->leads->get('lead-id');
$oriacall->leads->update('lead-id', ['customFields' => ['crm_stage' => 'won']]);
$oriacall->leads->upsertByExternalId('crm-lead-id', ['firstName' => 'Ada', 'lastName' => 'Lovelace']);
$oriacall->leads->paginate(['limit' => 50]);
$oriacall->leadCustomFields->list();
$oriacall->leadCustomFields->create(['key' => 'crm_stage', 'label' => 'CRM Stage', 'type' => 'text']);
$oriacall->leadCustomFields->update('crm_stage', ['label' => 'CRM Stage']);
$oriacall->webhooks->endpoints->list();
$oriacall->webhooks->endpoints->create(['url' => 'https://example.com/oriacall/webhooks', 'events' => ['analysis.completed']]);
$oriacall->webhooks->endpoints->update('endpoint-id', ['isActive' => false]);
$oriacall->webhooks->endpoints->rotateSecret('endpoint-id');
$oriacall->webhooks->endpoints->test('endpoint-id');
$oriacall->webhooks->endpoints->delete('endpoint-id');
$oriacall->webhooks->endpoints->paginate(['limit' => 50]);
$response = $oriacall->calls->list([
'externalId' => 'crm-call-123',
'limit' => 1,
]);
$call = $response->data['data'][0] ?? null;
$response = $oriacall->calls->lookupByExternalIds([
'crm-call-123',
'crm-call-456',
]);
foreach ($response->data['data'] as $call) {
echo $call['externalId'].' => '.$call['id'].PHP_EOL;
}
$response = $oriacall->calls->upload([
'idempotencyKey' => 'crm-call-123',
'externalId' => 'crm-call-123',
'recordedAt' => '2026-06-10T14:30:00Z',
// Optional hint. Oriacall may override it during audio analysis.
'objectiveId' => 'objective-id',
'queueAnalysis' => true,
'agent' => [
'externalId' => 'agent-1',
'name' => 'Morgan Agent',
'email' => '[email protected] ',
],
'lead' => [
'externalId' => 'lead-1',
'firstName' => 'Ada',
'lastName' => 'Lovelace',
'phone' => '+15555550100',
'customFields' => [
'crm_stage' => 'qualified',
],
],
'audio' => [
'path' => storage_path('app/calls/call.mp3'),
'filename' => 'call.mp3',
'contentType' => 'audio/mpeg',
],
]);
echo $response->data['data']['id'];
echo $response->data['data']['recordedAt'];
'audio' => [
'contents' => $audioBytes,
'filename' => 'call.mp3',
'contentType' => 'audio/mpeg',
]
$response = $oriacall->calls->update('call-id', [
'recordedAt' => '2026-06-10T14:30:00Z',
]);
echo $response->data['data']['recordedAt'];
$firstPage = $oriacall->calls->list(['limit' => 50]);
if ($cursor = $firstPage->data['pagination']['nextCursor']) {
$secondPage = $oriacall->calls->list(['limit' => 50, 'cursor' => $cursor]);
}
foreach ($oriacall->calls->paginate(['limit' => 50]) as $call) {
echo $call['id'].PHP_EOL;
}
$oriacall->objectives->list([
'objectiveCustomFields' => [
'region' => 'north',
'priority' => ['gte' => 5],
],
]);
$oriacall->calls->list([
'recordedAfter' => '2026-01-01T00:00:00Z',
'recordedBefore' => '2026-02-01T00:00:00Z',
'sortBy' => 'recordedAt',
'leadCustomFields' => [
'crm_stage' => 'qualified',
],
]);
$oriacall->leads->list([
'customFields' => [
'crm_stage' => 'qualified',
],
]);
use Oriacall\ApiError;
try {
$oriacall->calls->get('call-id');
} catch (ApiError $error) {
logger()->error('Oriacall failed', [
'status' => $error->status,
'code' => $error->errorCode,
'message' => $error->getMessage(),
'request_id' => $error->requestId,
'details' => $error->details,
'retry_after' => $error->retryAfter,
]);
}
use Oriacall\Oriacall;
$valid = Oriacall::verifyWebhookSignature(
body: $request->getContent(),
secret: config('services.oriacall.webhook_secret'),
signature: $request->header('Oriacall-Signature'),
timestamp: $request->header('Oriacall-Timestamp'),
);