PHPackages                             nicdev/webflow-sdk - 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. [API Development](/categories/api)
4. /
5. nicdev/webflow-sdk

ActiveLibrary[API Development](/categories/api)

nicdev/webflow-sdk
==================

Use all the features offered by the Webflow API

0.6.4(3y ago)668[1 issues](https://github.com/nicdev/webflow-php/issues)MITPHP

Since Apr 19Pushed 3y ago2 watchersCompare

[ Source](https://github.com/nicdev/webflow-php)[ Packagist](https://packagist.org/packages/nicdev/webflow-sdk)[ RSS](/packages/nicdev-webflow-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (15)Used By (0)

Webflow PHP SDK
===============

[](#webflow-php-sdk)

*BEWARE! This is a super early version in active development. So please be careful if you decide to use it ✌️*

**This is open source software and not in any official way supported by Webflow.**

This PHP SDK allows you to interact with the Webflow API easily.

There are two main ways to use this library. By accessing Sites and other entities and interacting with their respective classes or...

[See the Entities documentation](#entities)

...directly as an API wrapper through the underlying `Webflow` class.

[See the API client wrapper documentation](#client-api-wrapper)

Table of Contents
=================

[](#table-of-contents)

- [Installation](#installation)
- [Usage](#usage)
    - [Entities](#entities)
        - [Get sites](#get-sites)
        - [Fetch a specific site by its ID](#fetch-a-specific-site-by-its-id-1)
        - [Publish a domain](#publish-a-domain)
        - [Get a site's domains](#get-a-sites-domains)
        - [Get a site's collections](#get-sites-collections)
        - [Fetch a specific collection by its ID](#fetch-a-specific-collection-by-its-id)
        - [Fetch a collection's items](#fetch-a-collections-items)
        - [Fetch a site's webhooks](#fetch-a-sites-webhooks)
        - [Fetch a site's products](#fetch-a-sites-products)
        - [Fetch a site's orders](#fetch-a-sites-orders)
    - [Client (API Wrapper)](#client-api-wrapper)
        - **Meta**
            - [Get the current user's information](#get-the-current-users-information)
            - [Get the authenticated user's authorization information](#get-the-authenticated-users-authorization-information)
        - **Sites**
            - [List all sites associated with the authenticated user](#list-all-sites-associated-with-the-authenticated-user)
            - [Fetch a specific site by its ID](#fetch-a-specific-site-by-its-id)
            - [Publish a specific site by its ID](#publish-a-specific-site-by-its-id)
            - [List all domains associated with a specific site by its ID](#list-all-domains-associated-with-a-specific-site-by-its-id)
        - **Webhooks**
            - [List all webhooks associated with a specific site by its ID](#list-all-webhooks-associated-with-a-specific-site-by-its-id)
            - [Fetch a specific webhook associated with a specific site by their IDs](#fetch-a-specific-webhook-associated-with-a-specific-site-by-their-ids)
            - [Create a webhook for a specific site](#create-a-webhook-for-a-specific-site)
            - [Delete a webhook for a specific site](#delete-a-webhook-for-a-specific-site)
        - **Collections/Items**
            - [List all collections for a specific site](#list-all-collections-for-a-specific-site)
            - [Fetch a specific collection by its ID](#fetch-a-specific-collection-by-its-id)
            - [List items for a specific collection by its ID](#list-items-for-a-specific-collection-by-its-id)
            - [Create an item in a specific collection by its ID](#create-an-item-in-a-specific-collection-by-its-id)
            - [Get an item by its ID](#get-an-item-by-its-id)
            - [Publish one or more items by their ID](#publish-one-or-more-items-by-their-id)
            - [Update an item by its ID](#update-an-item-by-its-id)
            - [Patch an item by its ID](#patch-an-item-by-its-id)
            - [Delete or un-publish an item by its ID](#delete-or-un-publish-an-item-by-its-id)
        - **Products/SKUs**
            - [List products/SKUs for a specific site by its ID](#list-products-skus-for-a-specific-site-by-its-id)
            - [Create a Product and SKU](#create-a-product-and-sku)
            - [Get Products and SKUs](#get-products-and-skus)
            - [Update a Product](#update-a-product)
            - [Create a SKU](#create-a-sku)
            - [Update a SKU](#update-a-sku)
            - [Inventory for a specific item](#inventory-for-a-specific-item)
            - [Update Inventory](#update-inventory)
        - **Ecommerce**
            - [List orders](#list-orders)
            - [Get an Order](#get-an-order)
            - [Update an Order](#update-an-order)
            - [Fulfill an Order](#fulfill-an-order)
            - [Un-fulfill an Order](#un-fulfill-an-order)
            - [Refund an Order](#refund-an-order)
            - [Get Ecommerce settings for a Site](#get-ecommerce-settings-for-a-site)
- [Contributing](#contributing)
- [License](#license)

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

[](#installation)

Install the SDK via Composer:

```
composer require nicdev/webflow-sdk
```

Usage
=====

[](#usage)

Client (API Wrapper)
====================

[](#client-api-wrapper)

To use this SDK, first create a new instance of the `Webflow` class with your API token.

```
use Nicdev\WebflowSdk\Webflow;

$token = 'your-webflow-api-token';
$webflow = new Webflow($token);
```

### Get the current user's information

[](#get-the-current-users-information)

```
$user = $webflow->user();
```

### Get the authenticated user's authorization information

[](#get-the-authenticated-users-authorization-information)

```
$authInfo = $webflow->authInfo();
```

### List all sites associated with the authenticated user

[](#list-all-sites-associated-with-the-authenticated-user)

```
$sites = $webflow->listSites();
```

### Fetch a specific site by its ID

[](#fetch-a-specific-site-by-its-id)

```
$site = $webflow->getSite($siteId);
```

### Publish a specific site by its ID

[](#publish-a-specific-site-by-its-id)

```
$webflow->publishSite($siteId);
```

### List all domains associated with a specific site by its ID

[](#list-all-domains-associated-with-a-specific-site-by-its-id)

```
$domains = $webflow->listDomains($siteId);
```

### List all webhooks associated with a specific site by its ID

[](#list-all-webhooks-associated-with-a-specific-site-by-its-id)

```
$webhooks = $webflow->listWebhooks($siteId);
```

### Fetch a specific webhook associated with a specific site by their IDs

[](#fetch-a-specific-webhook-associated-with-a-specific-site-by-their-ids)

```
$webhook = $webflow->getWebhook($siteId, $webhookId);
```

### Create a webhook for a specific site

[](#create-a-webhook-for-a-specific-site)

```
use Nicdev\WebflowSdk\Enums\WebhookTypes;

$triggerType = WebhookTypes::SITE_PUBLISH;
$url = 'https://your-webhook-url.com';
$filter = []; // Optional filter array

$webflow->createWebhook($siteId, $triggerType, $url, $filter);
```

### Delete a webhook for a specific site

[](#delete-a-webhook-for-a-specific-site)

```
$webflow->deleteWebhook($siteId, $webhookId);
```

### List all collections for a specific site

[](#list-all-collections-for-a-specific-site)

```
$collections = $webflow->listCollections($siteId);
```

### Fetch a specific collection by its ID

[](#fetch-a-specific-collection-by-its-id)

```
$collection = $webflow->fetchCollection($collectionId);
```

### List items for a specific collection by its ID

[](#list-items-for-a-specific-collection-by-its-id)

```
$page = 1; // Optional page number

$items = $webflow->listItems($collectionId, $page);
```

### Create an item in a specific collection by its ID

[](#create-an-item-in-a-specific-collection-by-its-id)

```
$fields = [
    'field-name' => 'field-value',
    // ...
];
$live = false; // Optional live mode

$item = $webflow->createItem($collectionId, $fields, $live);
```

### Get an item by its ID

[](#get-an-item-by-its-id)

```
$item = $webflow->getItem($collectionId, $itemId)
```

### Publish one or more items by their ID

[](#publish-one-or-more-items-by-their-id)

```
$itemIds = ['your-item-id', 'your-other-item-id'];

$webflow->publishItems($collection, $itemIds);
```

### Update an item by its ID

[](#update-an-item-by-its-id)

```
$fields = $fields = [
    'field-name' => 'field-value',
    // ...
];
$live = false; // Optional publish

$webflow->updateItem($collectionId, $itemId, $fields, $live)
```

### Patch an item by its ID

[](#patch-an-item-by-its-id)

*I don't see a real difference between the update and patch methods but they have been matched to their respective endpoints. For more information see [the documentation](https://developers.webflow.com/reference/update-item).*

```
$fields = $fields = [
    'field-name' => 'field-value',
    // ...
];
$live = false; // Optional publish

$webflow->updateItem($collectionId, $itemId, $fields, $live)
```

### Delete or un-publish an item by its ID

[](#delete-or-un-publish-an-item-by-its-id)

```
$live = true; // Optional. When set to true the item will be un-published but kept in the collection

$webflow->deleteItem($collectionId, $itemId, $live)
```

### List products/SKUs for a specific site by its ID.

[](#list-productsskus-for-a-specific-site-by-its-id)

```
$page = 1; // Optional page number
$webflow->listProducts($siteId, $page);
```

### Create a Product and SKU

[](#create-a-product-and-sku)

```
$product = [
    'slug' = 'foo-bar',
    'name' => 'Foo Bar',
];
$sku = [
    'slug' => 'foo-bar-small',
    'name' => 'Foo Bar (S)',
    'price' => [
        'value' => 990,
        'unit' => 'USD'
    ]
]; // Optional
$webflow->createProductAndSku($siteId, $product, $sku)
```

### Get Products and SKUs

[](#get-products-and-skus)

```
$webflow->getProduct($site, $product);
```

### Update a Product

[](#update-a-product)

```
$fields = [
    'name' => 'New Foo Bar',
    '_archived' => true
];

$webflow->updateProduct($siteId, $productId, $fields);
```

### Create a SKU

[](#create-a-sku)

```
$sku = [
    'slug' => 'foo-bar-Medium',
    'name' => 'Foo Bar (M)',
    'price' => [
        'value' => 1190,
        'unit' => 'USD'
    ]
];
$webflow->createSku($siteId, $product, $sku);
```

### Update a SKU

[](#update-a-sku)

```
$sku = [
    'slug' => 'foo-bar-Medium',
    'name' => 'Foo Bar (M) Discounted!!',
    'price' => [
        'value' => 1290,
        'unit' => 'USD'
    ]
];

$webflow->updateSku($siteId, $productId, $skuId, $sku);
```

### Inventory for a specific item

[](#inventory-for-a-specific-item)

```
$collectionId = 'your-collection-id'; //likely to be the SKUs collection.
$webflow->getInventory($collectionId, $skuId)
```

### Update Inventory

[](#update-inventory)

```
$fields = [
    'inventory_type' => 'infinite'
];

$webflow->updateInventory($collectionId, $skuId, $fields);
```

### List orders

[](#list-orders)

```
$page = 1; // Optional page number

$items = $webflow->listOrders($collectionId, $page);
```

### Get an Order

[](#get-an-order)

```
$webflow->getOrdr($siteId, $orderId)
```

### Update an Order

[](#update-an-order)

```
$fields = [
    'comment' => 'Adding a comment to this order'
];

$webflow->updateOrder$siteId, $orderId, $fields);
```

### Fulfill an Order

[](#fulfill-an-order)

```
$notifyCustomer = true; // Optional, defaults to false

$webflow->fullfillOrder($siteId, $orderId, $notifyCustomer);
```

### Un-fulfill an Order

[](#un-fulfill-an-order)

```
$webflow->unfulfillOrder($siteId, $orderId);
```

### Refund an Order

[](#refund-an-order)

```
$webflow->refundOrder($siteId, $orderId);
```

### Get Ecommerce settings for a Site

[](#get-ecommerce-settings-for-a-site)

```
$webflow->getEcommerceSettings($siteId);
```

Entities
========

[](#entities)

To use this SDK, first create a new instance of the `Webflow` class with your API token.

```
use Nicdev\WebflowSdk\Webflow;

$token = 'your-webflow-api-token';
$webflow = new Webflow($token);
```

### Get sites

[](#get-sites)

```
$sites = $webflow->sites; // [Site $site1, Site $site2...]
// or
$sites = $webflow->sites()->list(); // [Site $site1, Site $site2...]
```

### Fetch a specific site by its ID

[](#fetch-a-specific-site-by-its-id-1)

```
$site = $webflow->sites($siteId) // Site $site;
// or
$site = $webflow->sites()->get($siteId) // Site $site;
```

### Publish a domain

[](#publish-a-domain)

```
$site->publish();
```

### Get a site's domains

[](#get-a-sites-domains)

```
$webflow->sites($siteId)->domains();
// or
$webflow->sites($siteId)->domains;
```

### Get site's collections

[](#get-sites-collections)

```
$site->collections; // [Collection $collection1, Collection $collection2, ...]
// or
$site->collections(); // [Collection $collection1, Collection $collection2, ...]
```

### Fetch a specific collection by its ID

[](#fetch-a-specific-collection-by-its-id-1)

```
$site->collections($collectionId) // Collection $collection;
```

### Fetch a collection's items

[](#fetch-a-collections-items)

```
$site->collections($collectionId)->items(); // [Item $item1, Item $item2, ...]
// or
$site->collections($collectionId)->items; // [Item $item1, Item $item2, ...]
```

### Fetch a site's webhooks

[](#fetch-a-sites-webhooks)

```
$site->webhooks(); // [Webhook $webhook1, Webhook $webhook2, ...]
// or
$site->webhooks; // [Webhook $webhook1, Webhook $webhook2, ...]
```

### Fetch a site's products

[](#fetch-a-sites-products)

```
$site->products(); // [Product $product1, Product $product2, ...]
// or
$site->products; // [Product $product1, Product $product2, ...]
```

### Fetch a site's orders

[](#fetch-a-sites-orders)

```
$site->webhooks(); // [Order $order1, Order $order2, ...]
// or
$site->webhooks; // [Order $order1, Order $order2, ...]
```

Contributing
------------

[](#contributing)

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License
-------

[](#license)

This SDK is licensed under the MIT License. See LICENSE for more information.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~2 days

Total

13

Last Release

1102d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3e412fd6d8e41c03294f932d9e79561b95cec2824079a589be1992a8318933fe?d=identicon)[nicdev](/maintainers/nicdev)

---

Top Contributors

[![nicdev](https://avatars.githubusercontent.com/u/144079?v=4)](https://github.com/nicdev "nicdev (5 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/nicdev-webflow-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/nicdev-webflow-sdk/health.svg)](https://phpackages.com/packages/nicdev-webflow-sdk)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[mapado/rest-client-sdk

Rest Client SDK for hydra API

1125.9k2](/packages/mapado-rest-client-sdk)

PHPackages © 2026

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