PHPackages                             straylightagency/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. [API Development](/categories/api)
4. /
5. straylightagency/laravel-airtable

ActiveLibrary[API Development](/categories/api)

straylightagency/laravel-airtable
=================================

Interact with Airtable using a fluent API.

00PHP

Since May 16Pushed 3w agoCompare

[ Source](https://github.com/straylightagency/laravel-airtable)[ Packagist](https://packagist.org/packages/straylightagency/laravel-airtable)[ RSS](/packages/straylightagency-laravel-airtable/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Airtable
================

[](#laravel-airtable)

A fluent Airtable client for Laravel applications.

Query, insert, update and manage Airtable records using an expressive Laravel-style API.

---

Features
--------

[](#features)

- Fluent Laravel-style query builder
- Airtable CRUD operations
- Multi-base support
- Laravel Facade support
- Lightweight and dependency-free
- PHP 8.3+ compatible

---

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

[](#installation)

Install the package using Composer:

```
composer require straylightagency/laravel-airtable
```

---

Laravel Integration
-------------------

[](#laravel-integration)

### Auto-discovery

[](#auto-discovery)

The package supports Laravel auto-discovery out of the box.

### Manual registration

[](#manual-registration)

If auto-discovery is disabled, register the service provider manually in `bootstrap/providers.php`:

```
Straylightagency\LaravelAirtable\AirtableServiceProvider::class,
```

### Configuration

[](#configuration)

Add your Airtable credentials to your `.env` file:

```
AIRTABLE_BASE_ID="appXXXXXXXXXXXXXX"
AIRTABLE_TOKEN="patXXXXXXXXXXXXXX"
AIRTABLE_API_URL="https://api.airtable.com/v0/%s/" # optional
```

Use this artisan command to publish the `airtable.php` file inside your config folder :

```
php artisan vendor:publish --tag=airtable
```

---

Quick Start
-----------

[](#quick-start)

```
use Straylightagency\LaravelAirtable\Facades\Airtable;

$records = Airtable::table('Users')
    ->view('Active users')
    ->get();
```

---

Usage
-----

[](#usage)

### Selecting records

[](#selecting-records)

```
$records = Airtable::table('Users')->get();
```

### Filtering records

[](#filtering-records)

```
$records = Airtable::table('Users')
    ->where('status', '=', 'active')
    ->get();
```

### Multiple conditions

[](#multiple-conditions)

```
$records = Airtable::table('Users')
    ->where('status', 'active')
    ->where('country', 'Belgium')
    ->get();
```

### Using views

[](#using-views)

```
$records = Airtable::table('Users')
    ->view('Public')
    ->get();
```

### Selecting specific fields

[](#selecting-specific-fields)

```
$records = Airtable::table('Users')
    ->fields(['name', 'email'])
    ->get();
```

### Ordering records

[](#ordering-records)

```
$records = Airtable::table('Users')
    ->orderBy('name')
    ->get();
```

### Limiting results

[](#limiting-results)

```
$records = Airtable::table('Users')
    ->limit(10)
    ->get();
```

### Pagination

[](#pagination)

```
$records = Airtable::table('Users')
    ->limit(50)
    ->offset(100)
    ->get();
```

---

CRUD Operations
---------------

[](#crud-operations)

### Find a record

[](#find-a-record)

```
$record = Airtable::table('Users')
    ->find('recXXXXXXXXXXXXXX');
```

### Get first record

[](#get-first-record)

```
$record = Airtable::table('Users')
    ->where('email', 'john@example.com')
    ->first();
```

### Insert a record

[](#insert-a-record)

```
$record = Airtable::table('Users')->insert([
    'Name' => 'John Doe',
    'Email' => 'john@example.com',
]);
```

### Update a record

[](#update-a-record)

```
$record = Airtable::table('Users')->update(
    'recXXXXXXXXXXXXXX',
    [
        'Name' => 'John Doe',
    ]
);
```

### Patch a record

[](#patch-a-record)

```
$record = Airtable::table('Users')->patch(
    'recXXXXXXXXXXXXXX',
    [
        'Name' => 'Updated name',
    ]
);
```

### Delete a record

[](#delete-a-record)

```
$record = Airtable::table('Users')
    ->delete('recXXXXXXXXXXXXXX');
```

---

Multi-base Support
------------------

[](#multi-base-support)

You can dynamically switch Airtable bases:

```
$records = Airtable::on('appXXXXXXXXXXXXXX')
    ->table('Users')
    ->get();
```

---

API Reference
-------------

[](#api-reference)

### AirtableManager

[](#airtablemanager)

```
table(string $table_name): Table
on(string $base_id): Base
```

### Base

[](#base)

```
table(string $table_name): Table
```

### Table

[](#table)

```
count(): int

typecast(bool $value): Table

delay(int $value): Table

fields(array|string $fields): Table

where(string $field, mixed $operator, $value = null): Table

whereRaw(string $formula): Table

view(string $view_name): Table

orderBy(string $field, string $direction = 'asc'): Table

limit(int $value): Table

take(int $value): Table

offset(int $value): Table

skip(int $value): Table

get(): array

all(): array

first(): array

find(string $id): array

insert(array $data): array

update(array|string $id, array $data = null): array

patch(array|string $id, array $data = null): array

delete(string $id): array
```

---

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 11+

---

License
-------

[](#license)

This package is open-sourced software licensed under the MIT license.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance62

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4163238?v=4)[Anthony Pauwels](/maintainers/anthonypauwels)[@anthonypauwels](https://github.com/anthonypauwels)

---

Top Contributors

[![anthonypauwels](https://avatars.githubusercontent.com/u/4163238?v=4)](https://github.com/anthonypauwels "anthonypauwels (9 commits)")

### Embed Badge

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

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

###  Alternatives

[facebook/php-business-sdk

PHP SDK for Facebook Business

90923.5M35](/packages/facebook-php-business-sdk)[exsyst/swagger

A php library to manipulate Swagger specifications

35916.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[botman/driver-telegram

Telegram driver for BotMan

93452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

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