# Airtable Exporter (`jupri/airtable`) Actor

💫 Export Dataset to Airtable

- **URL**: https://apify.com/jupri/airtable.md
- **Developed by:** [cat](https://apify.com/jupri) (community)
- **Categories:** Developer tools, Integrations
- **Features:** Full permissions
- **Stats:** 209 total users, 5 monthly users, 4.7% runs succeeded, 15 bookmarks
- **User rating**: 1.02 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Welcome To Airtable Dataset Exporter

![dont be sad readme is here](https://raw.githubusercontent.com/JupriGH/resources/main/cats/catframe.png)

#### About Airtable.com

![enter image description here](https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Airtable_Logo.svg/330px-Airtable_Logo.svg.png)

**Airtable**  is a  [cloud collaboration](https://en.wikipedia.org/wiki/Cloud_collaboration "Cloud collaboration")  service headquartered in  [San Francisco](https://en.wikipedia.org/wiki/San_Francisco "San Francisco"). It was founded in 2012 by Howie Liu, Andrew Ofstad, and Emmett Nicholas.

Airtable is a spreadsheet-database hybrid, with the features of a  [database](https://en.wikipedia.org/wiki/Database "Database")  but applied to a  [spreadsheet](https://en.wikipedia.org/wiki/Spreadsheet "Spreadsheet"). The fields in an Airtable table are similar to cells in a spreadsheet, but have types such as 'checkbox', 'phone number', and 'drop-down list', and can reference file attachments like images.[\[1\]](https://en.wikipedia.org/wiki/Airtable#cite_note-1)[\[2\]](https://en.wikipedia.org/wiki/Airtable#cite_note-2)

Users can create a database, set up  [column types](https://en.wikipedia.org/wiki/Data_type "Data type"), add  [records](https://en.wikipedia.org/wiki/Record_\(computer_science\) "Record (computer science)"),  [link tables](https://en.wikipedia.org/wiki/Associative_entity "Associative entity")  to one another,  [collaborate](https://en.wikipedia.org/wiki/Collaboration "Collaboration"), sort records and publish views to external websites.

#### About This Actor

You need to Authorize The Actor to be able to access your Airtable Database. This is only performed once on The first run. The access token will be saved to your `Key-Value` storage named **paws-auth-v1** *(encrypted to add more security)*.

To authorize open the "Live View" tab or visit The URL shown in the console log. You need to grant access to one of your Base.

## STEP 1: INSTALL (required)

- If this is first time using this actor, you required to run the actor through **APIFY** actor `console`, this is performed only once.

```yaml
😼 Authentication needed to complete this operation.
😼 Please visit the following URL or open The "Live View" tab.
🌐 [server] <auth> Server running on https://mq3pf1pe9a2k.runs.apify.net ...
```

- Open `Live View` Tab or visit URL displayed on the Log
- Make sure the popup not blocked by your browser
- Follow the popup Authorization steps.

<img src="https://raw.githubusercontent.com/JupriGH/resources/e905d9e6936bc27fc7f557c8b353081c2087ad9d/screenshots/airtable-tut-1.png" width="400">

- Done

## STEP 2: INTEGRATION (optional)

- This actor can run as standalone or used for *integration.*
- On your actor console select **Integration** Tab
- Click **Add Integration**
- On **Generic integrations** section click **Connect Actor or Task**
- *Choose what to connect* search for  **Airtable Exporter** and click **connect**
- Input necessary parameters and click **save**
- Run you actor as usual
- Done

## STEP 3: UNINSTALL

- On your `APIFY Key-Value` storage delete store named **paws-auth-v1**
- On `AIRTABLE` account menu click **Integrations**

![enter image description here](https://apify-uploads-prod.s3.amazonaws.com/issue/5KoSKVaqyfcQ6yO3i/qDhmgQeK5hFNTxANR-at-11.png)

- Select **Third-party Integration** and click **Dataset Manager @APIFY**

![enter image description here](https://apify-uploads-prod.s3.amazonaws.com/issue/5KoSKVaqyfcQ6yO3i/QJTwrLDNNptYJs88D-at-12.png)

- Click **Revoke Access**

![enter image description here](https://apify-uploads-prod.s3.amazonaws.com/issue/5KoSKVaqyfcQ6yO3i/pASiD3phfjrHuGf6S-at-13.png)

### How It's Works

![enter image description here](https://images.apifyusercontent.com/uOWud8i1hV720fR9jiAsY4zwdjhs0FGbPsJJfmXDJzI/aHR0cHM6Ly9hcGlmeS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vaXNzdWUvNUtvU0tWYXF5ZmNRNnlPM2kvM2dxZ3NBdzVzS3ltRDlESkstYWlydGFibGUtZmxvdy5zdmc.svg)

# Actor input Schema

## `dataset_id` (type: `string`):

💡 APIFY Dataset ID

## `primary_key` (type: `string`):

💡 This is the table’s <b>primary field</b>. It cannot be hidden or moved. The name is meant to be a short, unique representation of each record in your table. <br><br><code>format: <i>root.branch.leaf.0.name</i><br>example: <i>product.id</i></code>

## `base_name` (type: `string`):

💡 AIRTABLE Base name or ID <code><i>(appXXXXXXXXXX)</i></code> <i>(default: APIFY)</i>

## `table_name` (type: `string`):

💡 AIRTABLE Table name. <i>(default: DATASET-\<dataset_id>)</i>

## `update_mode` (type: `string`):

💡 An <b>UPSERT</b> is a database operation that will update an existing row if a specified value already exists in a table, and insert a new row if the specified value doesn't already exist. <i><code>(require primary_key)</code></i>

## `select_command` (type: `string`):

No description

## `select_fields` (type: `array`):

💡 <p><b>Fields to include/exclude :</b></p><p><code>name</code> or <code>name.root.branch.leaf</code></p><p><b>Examples:</p><code>address</code><br><code>address.street</code><br><code>images.0.url</code>

## `column_order` (type: `array`):

💡 Select fields or Subfields that should display first, the rest of columns will be displayed in <a target="_blank" href="https://en.wikipedia.org/wiki/Natural_sort_order">natural sort ordering</a>.

## `clean_null` (type: `boolean`):

No description

## `clean_zero` (type: `boolean`):

No description

## `clean_false` (type: `boolean`):

No description

## `clean_string` (type: `boolean`):

No description

## `clean_space` (type: `boolean`):

No description

## `clean_array` (type: `boolean`):

No description

## `clean_object` (type: `boolean`):

No description

## `clean_hash` (type: `boolean`):

No description

## `clean_item` (type: `boolean`):

No description

## Actor input object example

```json
{
  "update_mode": "0"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jupri/airtable").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("jupri/airtable").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call jupri/airtable --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jupri/airtable"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rzyXiN9Abtpy4tkXs/builds/pPq0OUwvkmyMewyyW/openapi.json
