> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# List bases

> List every Airtable base accessible to the connected account.

`listBases` returns all bases the connected Airtable account can access. Use it
to discover stable base IDs before configuring later schema or record actions.

## Example

```ts automations/list-airtable-bases.automation.ts theme={null}
import { automation, onHttpRequest } from "automate.ax"
import { listBases } from "automate.ax/airtable"

export default automation("List Airtable bases", () => {
  onHttpRequest({ scope: "automation" })
  listBases({})
})
```

## Inputs

The action has no action-specific inputs. Its optional `account` input accepts
an Airtable account binding or compatible signal and defaults to the project's
default Airtable binding.

## Output

Returns a signal containing `{ bases: AirtableBase[] }`:

| Property                  | Type     | Description                                     |
| ------------------------- | -------- | ----------------------------------------------- |
| `bases[].id`              | `string` | Stable Airtable base ID.                        |
| `bases[].name`            | `string` | Human-readable base name.                       |
| `bases[].permissionLevel` | `string` | Connected account's effective permission level. |

The action follows Airtable's pagination until it has collected every
accessible base. It requires the `schema.bases:read` scope.
