PHPackages                             lee-to/php-airtable - 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. lee-to/php-airtable

ActiveLibrary[API Development](/categories/api)

lee-to/php-airtable
===================

AirTable API client for PHP

v1.0.1(5y ago)45351MITPHPPHP ^7.1CI failing

Since Jul 8Pushed 5y ago1 watchersCompare

[ Source](https://github.com/lee-to/php-airtable)[ Packagist](https://packagist.org/packages/lee-to/php-airtable)[ Docs](https://github.com/lee-to/php-airtable)[ RSS](/packages/lee-to-php-airtable/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (4)Versions (3)Used By (1)

AirTable API client for PHP
===========================

[](#airtable-api-client-for-php)

[![Build Status](https://camo.githubusercontent.com/2a020a0e0b520d721620a1229e5fe36589977729d160a8b624197beac32e082f/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6c65652d746f2f7068702d6169727461626c2f352e782e737667)](https://travis-ci.org/github/lee-to/php-airtable)[![Total Downloads](https://camo.githubusercontent.com/6d09a868c5220e58b2bf84f974ca62bea2445d0a4077f0d7d3adb7813b6d5ba7/68747470733a2f2f706f7365722e707567782e6f72672f6c65652d746f2f7068702d6169727461626c652f646f776e6c6f616473)](//packagist.org/packages/lee-to/php-airtable)[![License](https://camo.githubusercontent.com/f77fb8fa4cca189b906496f02891246b2f8107068780698db599d4c1b2d3571a/68747470733a2f2f706f7365722e707567782e6f72672f6c65652d746f2f7068702d6169727461626c652f6c6963656e7365)](//packagist.org/packages/lee-to/php-airtable)

AirTable API client for PHP

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

[](#installation)

The AirTable Client PHP can be installed with [Composer](https://getcomposer.org/). Run this command:

```
composer require lee-to/php-airtable
```

Usage
-----

[](#usage)

Get token and base from [AirTable Account](http://airtable.com/account) and [AirTable API](http://airtable.com/api)

### Import.

[](#import)

```
use Airtable;
```

### Init.

[](#init)

- optional param $http\_client = "curl" or "guzzle". Default guzzle if exist or curl

```
$client = new AirTable($token, $base, $http_client);
```

#### Get records from that table

[](#get-records-from-that-table)

- List table records

```
$client->table('table_name')->list();
```

#### Get one record from table.

[](#get-one-record-from-table)

```
$client->table('table_name')->retrieve('ID');
```

#### Filter records

[](#filter-records)

- First argument is the column name
- Second argument is the operator or the value if you want to use equal '=' as an operator.
- Third argument is the value of the filter

```
$client->table('table_name')->filterByFormula("column", "operator", "value")->list();
```

#### Sort records

[](#sort-records)

- First argument is the column name
- Second argument is direction.

```
$client->table('table_name')->sort("column", "direction")->list();
```

#### Fields

[](#fields)

- Only data for fields whose names are in this list will be included in the result. If you don't need every field, you can use this parameter to reduce the amount of data transferred

```
$client->table('table_name')->fields(["Column1", "Column2"])->list();
```

#### Max records

[](#max-records)

- The maximum total number of records that will be returned in your requests. If this value is larger than pageSize (which is 100 by default), you may have to load multiple pages to reach this total.

```
$client->table('table_name')->maxRecords(15)->list();
```

#### Page size

[](#page-size)

- The number of records returned in each request. Must be less than or equal to 100. Default is 100.

```
$client->table('table_name')->pageSize(15)->list();
```

#### Offset

[](#offset)

- Set offset ID for next page

```
$client->table('table_name')->offset('ID')->list();
```

#### Update

[](#update)

- Update one record

```
$client->table('table_name')->update('ID', ["Column1" => "Value"]);
```

OR

```
foreach($client->table('table_name')->list() as $record) {
    $record->update(["Column1" => "Value"]);
}
```

#### Create

[](#create)

- Create a new record

```
$client->table('table_name')->create(["Column1" => "Value"]);
```

#### Delete

[](#delete)

- Delete one record

```
$client->table('table_name')->delete('ID');
```

OR

```
foreach($client->table('table_name')->list() as $record) {
    $deleted = $record->delete();

    $deleted->isDeleted(); // Check is deleted or not
}
```

#### Get fields of record

[](#get-fields-of-record)

```
foreach($client->table('table_name')->list() as $record) {
    $record->getId(); // ID

    $record->COLUMN1; // Any fields in table
}
```

Tests
-----

[](#tests)

1. [Composer](https://getcomposer.org/) is a prerequisite for running the tests. Install composer globally, then run `composer install` to install required files.
2. Get personal API key and Base [AirTable](https://airtable.com/account), then create `tests/AirTableTestCredentials.php` from `tests/AirTableTestCredentials.php.dist` and edit it to add your credentials.
3. The tests can be executed by running this command from the root directory:

```
$ ./vendor/bin/phpunit
```

See also
--------

[](#see-also)

- \[Laravel Airtable\] ()

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

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

- [Danil Shutsky](https://github.com/lee-to)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

Security
--------

[](#security)

If you have found a security issue, please contact the maintainers directly at .

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity51

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

Total

2

Last Release

2139d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1861327?v=4)[Danil Shutsky](/maintainers/lee-to)[@lee-to](https://github.com/lee-to)

---

Top Contributors

[![lee-to](https://avatars.githubusercontent.com/u/1861327?v=4)](https://github.com/lee-to "lee-to (10 commits)")

---

Tags

airtableairtable-apiphpapiairtable

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/lee-to-php-airtable/health.svg)

```
[![Health](https://phpackages.com/badges/lee-to-php-airtable/health.svg)](https://phpackages.com/packages/lee-to-php-airtable)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k7.6M74](/packages/openai-php-laravel)[mailchimp/transactional

458.9M16](/packages/mailchimp-transactional)[get-stream/stream-chat

A PHP client for Stream Chat (https://getstream.io/chat/)

301.8M2](/packages/get-stream-stream-chat)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[guym4c/airtable-client

PHP Airtable API client

101.9k](/packages/guym4c-airtable-client)

PHPackages © 2026

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