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

ActiveLibrary[API Development](/categories/api)

ldubois/php-airtable
====================

Manipulate Airtable API using PHP

0.9.1(4y ago)27.8k↓25%2MITPHPPHP &gt;=7.1

Since Jun 17Pushed 3y agoCompare

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

READMEChangelogDependencies (4)Versions (45)Used By (0)

Airtable for PHP
================

[](#airtable-for-php)

Basic SDK to deal with airtable records. Fork on armetiz/airtable-php

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

[](#installation)

Tell composer to require this bundle by running:

```
composer require ldubois/php-airtable
```

Usage
-----

[](#usage)

```
$key   = "APP_KEY"; // Generated from : https://airtable.com/account
$base  = "BASE_ID"; // Find it on : https://airtable.com/api
$table = "TABLE_NAME"; // Find it on : https://airtable.com/api

$airtable = new Airtable($key, $base);

$records = $airtable->findRecords($table);
```

**Available methods**

- Airtable::getBase()
- Airtable::createTableManipulator(string $table): TableManipulator
- Airtable::getRecord(string $table, string $id)
- Airtable::createRecord(string $table, array $fields)
- Airtable::setRecord(string $table, array $criteria = \[\], array $fields)
- Airtable::updateRecord(string $table, array $criteria = \[\], array $fields)
- Airtable::updateRecordById(string $table, string $id, array $fields)
- Airtable::containsRecord(string $table, array $criteria = \[\])
- Airtable::flushRecords(string $table)
- Airtable::deleteRecord(string $table, array $criteria = \[\])
- Airtable::deleteRecords(string $table, array $criteria = \[\])
- Airtable::findRecord(string $table, array $criteria = \[\])
- Airtable::findRecords(string $table, array $criteria = \[\])
- Airtable::containsRecord(string $table, array $criteria = \[\])
- Airtable::searchRecords(string $table, array $fields, string $search, string $criteria = "", string $view = "", int $maxRows = 5)

Example
-------

[](#example)

Simple member indexer that encapsulate Airtable within simple API. Can be used to start a CRM on Airtable.

Note: Because Airtable doesn't allow schema manipulation using their public API, you should configure table using the WebUI with the following

- Id : text
- Firstname : text
- Lastname : text
- Email : email
- CreatedAt : Date and time
- Picture : Attachments

```
$key   = "APP_KEY"; // Generated from : https://airtable.com/account
$base  = "BASE_ID"; // Find it on : https://airtable.com/api
$table = "TABLE_NAME"; // Find it on : https://airtable.com/api

$airtable = new Airtable($key, $base);

$records = $airtable->findRecords($table);
```

```
use Ldubois\AirtableSDK\Airtable as AirtableClient;

class MemberIndex
{
    private $airtable;

    public function __construct(AirtableClient $airtableClient, string $table)
    {
        $this->airtable = $airtableClient->createTableManipulator($table);
    }

    public function clear()
    {
        $this->airtable->flushRecords();
    }

    public function search(){
        $records  =  $this->airtable->searchRecords( ["Champ1","Champ2"], "search_value");
        return $records;
    }

    public function save(array $data)
    {
        $criteria = ["Id" => $data["id"]];
        $fields   = [
            "Id"                    => $data["id"],
            "Firstname"             => $data["firstName"],
            "Lastname"              => $data["lastName"],
            "Email"                 => $data["email"],
            "CreatedAt"             => (string)$data["createdAt"],
        ];

        if ($this->airtable->containsRecord($criteria)) {
            $this->airtable->updateRecord($criteria, $fields);
        } else {
            $this->airtable->createRecord($fields);
        }
    }

    public function delete($id)
    {
        $this->airtable->deleteRecord(["Id" => $id]);
    }
}
```

License
-------

[](#license)

Fork : This library is under the MIT license. [See the complete license](https://github.com/ldubois/airtable-php/blob/master/LICENSE).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

Established project with proven stability

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

Recently: every ~41 days

Total

43

Last Release

1327d ago

PHP version history (2 changes)0.1.0PHP &gt;=5.5.0

0.3.2PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/7fe42dd00c178300a72665c543286b7556806bddfc54140d7e98bfe0fdbf7cd9?d=identicon)[ldubois](/maintainers/ldubois)

---

Top Contributors

[![armetiz](https://avatars.githubusercontent.com/u/1119250?v=4)](https://github.com/armetiz "armetiz (20 commits)")

---

Tags

airtablecrudphpphpapisdkairtable

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[openai-php/symfony

Symfony Bundle for OpenAI

215715.5k3](/packages/openai-php-symfony)[deepseek-php/deepseek-php-client

deepseek PHP client is a robust and community-driven PHP client library for seamless integration with the Deepseek API, offering efficient access to advanced AI and data processing capabilities.

47073.9k5](/packages/deepseek-php-deepseek-php-client)[jstolpe/instagram-graph-api-php-sdk

Instagram Graph API PHP SDK

13998.4k2](/packages/jstolpe-instagram-graph-api-php-sdk)[webit/w-firma-api

wFirma.pl API

1820.2k](/packages/webit-w-firma-api)[armetiz/airtable-php

Manipulate Airtable API using PHP

209.2k](/packages/armetiz-airtable-php)[google-gemini-php/symfony

Symfony Bundle for Gemini

149.4k1](/packages/google-gemini-php-symfony)

PHPackages © 2026

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