PHPackages                             devswebdev/laravel-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. devswebdev/laravel-airtable

ActiveLibrary

devswebdev/laravel-airtable
===========================

Laravel Airtable SDK

v0.15(5y ago)00MITPHPPHP ^7.1CI failing

Since Feb 22Pushed 5y agoCompare

[ Source](https://github.com/DevinNorgarb/laravel-airtable)[ Packagist](https://packagist.org/packages/devswebdev/laravel-airtable)[ Docs](https://github.com/tapp/laravel-airtable)[ RSS](/packages/devswebdev-laravel-airtable/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (6)Versions (14)Used By (0)

Laravel SDK for Airtable
========================

[](#laravel-sdk-for-airtable)

[![Latest Stable Version](https://camo.githubusercontent.com/15221b7e9511a27135ab1f2e95c13d29d7282dc85270408dd592026f627d6f73/68747470733a2f2f706f7365722e707567782e6f72672f746170702f6c61726176656c2d6169727461626c652f762f737461626c65)](https://packagist.org/packages/tapp/laravel-airtable)[![StyleCI](https://camo.githubusercontent.com/cb895a0053198b4de2204f51c7e15ae68b3c6b4410457ef08fbc3b0b457c0dd5/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3137323133303837362f736869656c643f6272616e63683d6d6173746572)](https://github.styleci.io/repos/172130876)[![Quality Score](https://camo.githubusercontent.com/2898f6592ed54b966fd007990819b6ece0a143343f721f14b6ed4ca3429498f4/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f546170704e6574776f726b2f6c61726176656c2d6169727461626c65732f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/TappNetwork/laravel-airtables/?branch=master)[![Total Downloads](https://camo.githubusercontent.com/5dd256deb880a58e4e065b39c5f70f452586721b2780a465d76f5024a520d8dc/68747470733a2f2f706f7365722e707567782e6f72672f746170702f6c61726176656c2d6169727461626c652f646f776e6c6f616473)](https://packagist.org/packages/tapp/laravel-airtable)

A simple approach to interacting with Airtables.

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

[](#installation)

You can install the package via composer:

```
composer require tapp/laravel-airtable
```

Publish the config file:

```
php artisan vendor:publish --provider="Tapp\Airtable\AirtableServiceProvider"
```

Define airtables account information in .env:

```
AIRTABLE_KEY=
AIRTABLE_BASE=
AIRTABLE_TABLE=
AIRTABLE_TYPECAST=false
```

- `AIRTABLE_KEY` can be retrieved here:
- `AIRTABLE_BASE` can be found here: , select base then copy from URL: `https://airtable.com/[Base Is Here]/api/docs#curl/introduction`
- `AIRTABLE_TABLE` can be found in the docs for the appropriate base, this is not case senstive. IE: `tasks`
- `AIRTABLE_TYPECAST` set this to true to allow automatic casting.

Example Config
--------------

[](#example-config)

If you need to support multiple tables, add them to the tables config in the config/airtable.php

```
...
    'tables' => [

        'default' => [
            'name' => env('AIRTABLE_TABLE', 'Main'),
        ],

        'companies' => [
            'name' => env('AIRTABLE_COMPANY_TABLE', 'Companies'),
        ],
        ...
    ],
...

```

Usage
-----

[](#usage)

### Import the facade in your class.

[](#import-the-facade-in-your-class)

```
use Airtable;
```

#### Get records from that table

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

- This will only return the first 100 records due to Airtable page size limiation

```
Airtable::table('tasks')->get();
```

#### Get all records from that table.

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

- This will get all records by sending multiple requests until all record are fetched.
- Optional Parameter which is the delay between requests in microseconds as API is limited to 5 requests per second per base, defaults to 0.2 second.

```
Airtable::table('tasks')->all();
Airtable::table('tasks')->all(500000); // 0.5 seconds
```

#### Get one record from the default table.

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

```
Airtable::find('id_string');
```

#### 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

```
Airtable::where('id', '5')->get();
Airtable::where('id', '>', '5')->get();
```

#### First or Create

[](#first-or-create)

- First argument will be used for finding existing
- Second argument is additional data to save if no results are found and we are creating (will not be saved used if item already exists)

```
Airtable::firstOrCreate(['name' => 'myName'], ['field' => 'myField']);
```

#### Update or Create

[](#update-or-create)

- First argument will be used to find existing
- Second argument is additional data to save when we create or update

```
Airtable::updateOrCreate(['name' => 'myName'], ['field' => 'myField']);

Airtable::table('companies')->firstOrCreate(['Company Name' => $team->name]);
```

#### Update

[](#update)

- First argument will be the id
- Second argument is the whole record including the updated fields

**Note:** Update is destructive and clear all unspecified cell values if you did not provide a value for them. use PATCH up update specified fields

```
Airtable::table('companies')->update('rec5N7fr8GhDtdNxx', [ 'name' => 'Google', 'country' => 'US']);
```

#### Patch

[](#patch)

- First argument will be the id
- Second argument is the field you would like to update

```
Airtable::table('companies')->patch('rec5N7fr8GhDtdNxx', ['country' => 'US']);
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

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

[](#contributing)

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

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Steve Williamson](https://github.com/tapp)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

Laravel Package Boilerplate
---------------------------

[](#laravel-package-boilerplate)

This package was generated using the [Laravel Package Boilerplate](https://laravelpackageboilerplate.com).

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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

Recently: every ~20 days

Total

11

Last Release

2140d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12491966?v=4)[Devin Norgarb](/maintainers/DevinNorgarb)[@DevinNorgarb](https://github.com/DevinNorgarb)

---

Top Contributors

[![swilla](https://avatars.githubusercontent.com/u/304159?v=4)](https://github.com/swilla "swilla (18 commits)")[![scottgrayson](https://avatars.githubusercontent.com/u/7796074?v=4)](https://github.com/scottgrayson "scottgrayson (14 commits)")[![DevinNorgarb](https://avatars.githubusercontent.com/u/12491966?v=4)](https://github.com/DevinNorgarb "DevinNorgarb (5 commits)")[![albalooshi](https://avatars.githubusercontent.com/u/13213888?v=4)](https://github.com/albalooshi "albalooshi (4 commits)")[![mo7amed-3bdalla7](https://avatars.githubusercontent.com/u/11799413?v=4)](https://github.com/mo7amed-3bdalla7 "mo7amed-3bdalla7 (1 commits)")[![jokosusilo](https://avatars.githubusercontent.com/u/6588022?v=4)](https://github.com/jokosusilo "jokosusilo (1 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

laravelairtabletapp

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/devswebdev-laravel-airtable/health.svg)

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

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[s-ichikawa/laravel-sendgrid-driver

This library adds a 'sendgrid' mail driver to Laravel.

4139.3M1](/packages/s-ichikawa-laravel-sendgrid-driver)[tapp/laravel-airtable

Laravel Airtable SDK

113229.1k](/packages/tapp-laravel-airtable)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)[tzsk/sms

A robust and unified SMS gateway integration package for Laravel, supporting multiple providers.

320244.3k6](/packages/tzsk-sms)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)

PHPackages © 2026

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