PHPackages                             yoanbernabeu/airtable-client-bundle - 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. yoanbernabeu/airtable-client-bundle

AbandonedArchivedSymfony-bundle[API Development](/categories/api)

yoanbernabeu/airtable-client-bundle
===================================

Simple Client for Airtable API

1.1.0(3y ago)3311.7k13[3 PRs](https://github.com/yoanbernabeu/Airtable-Client-Bundle/pulls)MITPHPPHP &gt;=7.4.3

Since Jun 12Pushed 2y ago4 watchersCompare

[ Source](https://github.com/yoanbernabeu/Airtable-Client-Bundle)[ Packagist](https://packagist.org/packages/yoanbernabeu/airtable-client-bundle)[ RSS](/packages/yoanbernabeu-airtable-client-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (8)Dependencies (15)Versions (9)Used By (0)

Airtable Client Bundle
======================

[](#airtable-client-bundle)

[![Static code analysis](https://github.com/yoanbernabeu/Airtable-Client-Bundle/actions/workflows/code_analysis.yml/badge.svg)](https://github.com/yoanbernabeu/Airtable-Client-Bundle/actions/workflows/code_analysis.yml)[![Testing](https://github.com/yoanbernabeu/Airtable-Client-Bundle/actions/workflows/testing.yml/badge.svg)](https://github.com/yoanbernabeu/Airtable-Client-Bundle/actions/workflows/testing.yml)

The Airtable Client bundle is a Symfony bundle that attempts to make the Airtable API easier to use.

- Retrieve data from a table, optionally choosing a view
- Retrieve a recording by ID

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

[](#installation)

Airtable Client Bundle requires PHP 7.4+ and Symfony 5.2+.

Install this bundle using Composer and Symfony Flex:

```
composer require yoanbernabeu/airtable-client-bundle
```

To configure Airtable Client Bundle, please create an **airtable\_client.yaml** file in **config/packages/** with the following information:

```
airtable_client:
  key:
  id:
```

To find your **Airtable base ID**, go to your **API documentation** and look in the **Introduction** section.

[![Airtable ID](docs/airtable_id.png)](docs/airtable_id.png)

To find your **Airtable API key**, go to your **Account options** and search in the **API** section.

[![Airtable KEY](docs/airtable_key.png)](docs/airtable_key.png)

Usage
-----

[](#usage)

### Find

[](#find)

```
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class Foo
{
    public int $id;
    public string $bar;
}

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        $records = $airtableClient->findAll('tableName', 'viewName', Foo::class);

        foreach($records as $record) {
            /** @var Foo $foo */
            $foo = $record->getFields();

            echo $foo->bar;
        }

        $airtableClient->findBy('tableName', 'fieldName', 'value', Foo::class);

        $record = $airtableClient->find('tableName', 'id');

        /** @var Foo $foo */
        $foo = $record->getFields();

        echo $foo->bar;

        $airtableClient->findLast('tableName', 'fieldName');

        $airtableClient->add(
            'tableName',
            [
                'id' => 1,
                'bar' => 'lorem ipsum',
                Foo::class
            ]
        );
    }

    // ...
}
```

### Add

[](#add)

```
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class Foo
{
    public int $id;
    public string $bar;
}

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        $airtableClient->add(
            'tableName',
            [
                'id' => 1,
                'bar' => 'lorem ipsum',
                Foo::class
            ]
        );
    }

    // ...
}
```

### Edit

[](#edit)

```
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class Foo
{
    public int $id;
    public string $bar;
}

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        $airtableClient->update(
            'tableName',
            'recordId',
            [
                'id' => 1,
                'bar' => 'lorem ipsum',
                Foo::class
            ]
        );
    }

    // ...
}
```

### Create Form

[](#create-form)

```
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;
use Symfony\Component\HttpFoundation\Request;

class FooController
{
    public function bar(AirtableClientInterface $airtableClient, Request $request)
    {
        $form = $airtableClient->createForm([
            'Name' => TextType::class,
            'text' => TextType::class,
            'Submit' => SubmitType::class
        ]);

        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            $data = $form->getData();
            $airtableClient->add('test', $data);
        }
        return $this->render('bar.html.twig', [
            'form' => $form->createView()
        ]);
    }

    // ...
}
```

### Metadata

[](#metadata)

Easy access to Airtable's Metadata via its [Metadata API](https://airtable.com/api/meta)

```
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        // Get Metadata for All Tables
        $tablesMeta = $airtableClient->getTablesMetadata();

        // Get Metadata for One Table
        $tableMeta = $airtableClient->getTableMetadata('TableName');

    // ...
}
```

License
-------

[](#license)

See the bundled [LICENSE](https://github.com/yoanbernabeu/Airtable-Client-Bundle/blob/main/LICENCE) file.

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 51.2% 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 ~94 days

Recently: every ~119 days

Total

8

Last Release

1133d ago

Major Versions

0.1.5 → 1.0.02023-04-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/21f6c1e090b5d45bb8bd5569f7779bde35d19fd06844327ed0d369c3544fa2e8?d=identicon)[yoanbernabeu](/maintainers/yoanbernabeu)

---

Top Contributors

[![yoanbernabeu](https://avatars.githubusercontent.com/u/59195351?v=4)](https://github.com/yoanbernabeu "yoanbernabeu (85 commits)")[![TBoileau](https://avatars.githubusercontent.com/u/10845781?v=4)](https://github.com/TBoileau "TBoileau (48 commits)")[![Spomky](https://avatars.githubusercontent.com/u/1091072?v=4)](https://github.com/Spomky "Spomky (21 commits)")[![liorchamla](https://avatars.githubusercontent.com/u/17835706?v=4)](https://github.com/liorchamla "liorchamla (6 commits)")[![Snowbaha](https://avatars.githubusercontent.com/u/3284722?v=4)](https://github.com/Snowbaha "Snowbaha (2 commits)")[![ismail1432](https://avatars.githubusercontent.com/u/13260307?v=4)](https://github.com/ismail1432 "ismail1432 (2 commits)")[![asuri0n](https://avatars.githubusercontent.com/u/15729117?v=4)](https://github.com/asuri0n "asuri0n (1 commits)")[![TangoMan75](https://avatars.githubusercontent.com/u/14804833?v=4)](https://github.com/TangoMan75 "TangoMan75 (1 commits)")

---

Tags

airtableairtable-apibundlephpsymfonysymfony-bundle

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/yoanbernabeu-airtable-client-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/yoanbernabeu-airtable-client-bundle/health.svg)](https://phpackages.com/packages/yoanbernabeu-airtable-client-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M648](/packages/sylius-sylius)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.3k](/packages/contao-core-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)

PHPackages © 2026

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