PHPackages                             complyforce/api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. complyforce/api

ActiveLibrary[HTTP &amp; Networking](/categories/http)

complyforce/api
===============

PHP client for the Complyforce API

1.8.1(1mo ago)07MITPHPPHP ^7.4 || ^8.0

Since Feb 10Pushed 1mo agoCompare

[ Source](https://github.com/devowlio/complyforce-php-api)[ Packagist](https://packagist.org/packages/complyforce/api)[ Docs](https://complyforce.com)[ RSS](/packages/complyforce-api/feed)WikiDiscussions v1-master Synced 1mo ago

READMEChangelogDependencies (8)Versions (11)Used By (0)

Complyforce PHP SDK
===================

[](#complyforce-php-sdk)

[![Complyforce logo](https://camo.githubusercontent.com/a85bf42aafda5d1483ea470dd372dd6a691b1fedc8205babace6012c27d2ad72/68747470733a2f2f6173736574732e6465766f776c2e696f2f6769742f636f6d706c79666f7263652f6c6f676f2d66756c6c2d626c61636b2e706e67)](https://camo.githubusercontent.com/a85bf42aafda5d1483ea470dd372dd6a691b1fedc8205babace6012c27d2ad72/68747470733a2f2f6173736574732e6465766f776c2e696f2f6769742f636f6d706c79666f7263652f6c6f676f2d66756c6c2d626c61636b2e706e67)

Complyforce is an AI-assisted website compliance auditing service that identifies services, cookies, and data processing, and checks them against your consent setup for GDPR/ePrivacy (and related national) compliance issues. It generates legally evaluable compliance reports (including machine-readable output) that can be triggered and accessed via an API for integration into your product.

The Complyforce PHP SDK provides seamless integration with the Complyforce API. This library is designed to simplify API interactions and provide tools for efficient implementation.

Detailed API documentation is available at [complyforce.com/api/docs](http://complyforce.com/api/docs).

Requirements
------------

[](#requirements)

- PHP 7.4+ or 8.x
- Extensions: `curl`, `json`, `mbstring`

Installation
------------

[](#installation)

```
composer require complyforce/api
```

Usage
-----

[](#usage)

### Configuration

[](#configuration)

Set up the SDK with your Complyforce API key. You can [generate an API key](https://vendor.complyforce.com/api-keys) in the Complyforce Vendor Dashboard.

```
use DevOwl\ComplyforceApiClient\Api\VendorAPIKeyApi;
use DevOwl\ComplyforceApiClient\Configuration;
use GuzzleHttp\Client;

$apiKey = "your_api_key_here";

$config = new Configuration();
$config->setApiKey("x-api-key", $apiKey);

$client = new Client();
$vendorApi = new VendorAPIKeyApi($client, $config);
```

### Private deployments

[](#private-deployments)

If you are a large scale enterprise customer using a private Complyforce deployment, set an explicit base URL. The major version of this SDK package mirrors the API version. Make sure you use the correct SDK version for the compatible API version.

```
$config->setHost("https://your-instance.complyforce.com/v1");
```

### Response handling

[](#response-handling)

All API methods return model instances on success and throw `ApiException` on non-2xx responses or network errors.

```
use DevOwl\ComplyforceApiClient\ApiException;

try {
    $result = $vendorApi->vendorApiKeyValidateGet();
    echo $result?->getVendorName() . PHP_EOL;
} catch (ApiException $e) {
    // Access response body or headers for error details
    $body = $e->getResponseBody();
    $headers = $e->getResponseHeaders();
}
```

### Async and raw HTTP info

[](#async-and-raw-http-info)

Each endpoint also provides:

- `*Async()` methods that return a Guzzle promise.
- `*WithHttpInfo()` methods that return `[$data, $statusCode, $headers]`.

```
[$data, $status, $headers] = $vendorApi->vendorApiKeyValidateGetWithHttpInfo();
```

API Methods
-----------

[](#api-methods)

Each method below maps directly to an API endpoint. For detailed payloads, see the [Complyforce API docs](http://complyforce.com/api/docs).

### vendorApiKeyValidateGet()

[](#vendorapikeyvalidateget)

Validates the API key and returns the vendor name if authorized.

```
$apiKeyValidate = $vendorApi->vendorApiKeyValidateGet();
if ($apiKeyValidate && $apiKeyValidate->getVendorName()) {
    echo "Authenticated as " . $apiKeyValidate->getVendorName() . PHP_EOL;
} else {
    echo "Authentication failed" . PHP_EOL;
}
```

### orderPost()

[](#orderpost)

Accepts an order for a website scan with one, several, all, or the most relevant subpages. You can specify scan type, requested URLs, and the channel UUID. You can create a channel in *Brand &amp; Channel &gt; \[Name of brand\] &gt; Create channel* in the [Complyforce Vendor Dashboard](https://vendor.complyforce.com/).

**Scan types (details in the [API docs](https://complyforce.com/api/docs#tag/order/GET/order))**

scanTypeWhat it doesWhen to use`single`Scans one specific page.You need a specific or fast overview of data protection issues.`multiple`Scans at least two specific pages.You want targeted coverage of important known pages and processes (e.g. product page, checkout, company profile).`mostRelevant`Finds and scans up to 10-15 representative subpages.You need an analysis that can uncover most problems.`all`Scans all pages found via the sitemap.You need a comprehensive data protection analysis of the entire website.```
use DevOwl\ComplyforceApiClient\Api\OrderApi;
use DevOwl\ComplyforceApiClient\Model\OrderBody;
use DevOwl\ComplyforceApiClient\Model\OrderCreate;
use DevOwl\ComplyforceApiClient\Model\OrderCreateChannel;

$channelUuid = "your-channel-uuid";

$orderApi = new OrderApi($client, $config);

$orderCreate = new OrderCreate();
$orderCreate->setScanType("single");
$orderCreate->setScanUrlsRequested(["https://example.com"]);

$channel = new OrderCreateChannel();
$channel->setUuid($channelUuid);
$orderCreate->setChannel($channel);

$orderBody = new OrderBody();
$orderBody->setOrder($orderCreate);

$postedOrder = $orderApi->orderPost($orderBody);
echo "Order created " . $postedOrder->getOrder()?->getUuid() . PHP_EOL;
```

### orderGet()

[](#orderget)

Retrieves order data, current status and status updates, as well as report link and summary for completed orders.

```
$orderUuid = "your-order-uuid";

$readOrder = $orderApi->orderGet($orderUuid, "true", "false");
print_r($readOrder->getOrder());
```

### orderProgressGet()

[](#orderprogressget)

Fetches scan progress of the order as a percentage.

You can also receive the order progress by a webhook. Configure the webhook at *Brand &amp; Channel &gt; \[Name of brand\] &gt; \[Name of channel\] &gt; Edit &gt; Webhooks* in the [Complyforce Vendor Dashboard](https://vendor.complyforce.com/).

```
$orderUuid = "your-order-uuid";

$readOrderProgress = $orderApi->orderProgressGet($orderUuid);
print_r($readOrderProgress);
```

### orderReportGet()

[](#orderreportget)

Retrieves full report data and report link for completed orders.

```
use DevOwl\ComplyforceApiClient\Api\OrderReportApi;

$orderUuid = "your-order-uuid";

$orderReportApi = new OrderReportApi($client, $config);

try {
    $readOrderReport = $orderReportApi->orderReportGet($orderUuid);
    print_r($readOrderReport);
} catch (ApiException $e) {
    $errors = $e->getResponseBody();
    if (is_array($errors) && ($errors[0]["code"] ?? null) === "OrderNotCompletedOrCompletedPartially") {
        echo "Order not completed yet" . PHP_EOL;
    } else {
        throw $e;
    }
}
```

### orderReportDelete()

[](#orderreportdelete)

Deletes an existing order report prior to its expiry date.

```
use DevOwl\ComplyforceApiClient\Model\OrderReportDeleteRequest;
use DevOwl\ComplyforceApiClient\Model\OrderReportDeleteRequestOrder;

$deleteOrder = new OrderReportDeleteRequestOrder();
$deleteOrder->setUuid($orderUuid);

$deleteRequest = new OrderReportDeleteRequest();
$deleteRequest->setOrder($deleteOrder);

$orderReportApi->orderReportDelete($deleteRequest);
echo "Order report deleted" . PHP_EOL;
```

Support
-------

[](#support)

Need integration support? Our developers can build an individual solution with you. [Contact our support team](https://vendor.complyforce.com/documentation) via the Complyforce Vendor Dashboard!

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance90

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

9

Last Release

43d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/acbafcb6877c76a7f437f4e23f5c728af4d85a4ac4f03c01524edf903aa5d179?d=identicon)[complyforce](/maintainers/complyforce)

---

Tags

phpapisdkrestswagger

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/complyforce-api/health.svg)

```
[![Health](https://phpackages.com/badges/complyforce-api/health.svg)](https://phpackages.com/packages/complyforce-api)
```

###  Alternatives

[onesignal/onesignal-php-api

A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com

34170.2k2](/packages/onesignal-onesignal-php-api)[huaweicloud/huaweicloud-sdk-php

Huawei Cloud SDK for PHP

1829.2k2](/packages/huaweicloud-huaweicloud-sdk-php)[ory/hydra-client-php

Documentation for all of Ory Hydra's APIs.

1710.8k](/packages/ory-hydra-client-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
