Airtable
Airtable is a smart spreadsheet and low-code platform for building collaborative apps. Customize your workflow, collaborate, and achieve ambitious outcomes.
- labels:
project-management
,productivity
,collaboration
,task-management
- authentication:
bearer
Usage
import { airtable } from 'https://deno.land/x/netzo/apis/airtable/mod.ts'
const { api } = airtable({
personalAccessToken: Deno.env.get('AIRTABLE_PERSONAL_ACCESS_TOKEN')
})
import { airtable } from 'https://deno.land/x/netzo/apis/airtable/mod.ts'
const { api } = airtable({
personalAccessToken: Deno.env.get('AIRTABLE_PERSONAL_ACCESS_TOKEN')
})
Configuration
The airtable
factory function expects an object with the following, and returns an object with an HTTP client api
.
Param | Type | Default | Description |
---|---|---|---|
personalAccessToken | string | Deno.env.get('AIRTABLE_PERSONAL_ACCESS_TOKEN') | the access token to use for authentication |
Refer to the API documentation to get the required information.
Examples
The following examples assume you have created an api client instance. Refer to the type definitions for all exported types to pass to the api
client for typed responses.
Find records
Find all records that match the query.
import type { QueryRecords, Records } from 'netzo/apis/airtable/types.ts'
const query: QueryRecords = {}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].get<Records>(query)
const resultData = result.records
import type { QueryRecords, Records } from 'netzo/apis/airtable/types.ts'
const query: QueryRecords = {}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].get<Records>(query)
const resultData = result.records
Add records
Add one or multiple records.
import type { DataAddRecords, Records } from 'netzo/apis/airtable/types.ts'
const data: DataRecords = {
records: [
{
fields: {
Address: '333 Post St',
Name: 'Union Square',
Visited: true
}
}
]
}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].post<Records>(data)
const resultData = result.records
import type { DataAddRecords, Records } from 'netzo/apis/airtable/types.ts'
const data: DataRecords = {
records: [
{
fields: {
Address: '333 Post St',
Name: 'Union Square',
Visited: true
}
}
]
}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].post<Records>(data)
const resultData = result.records
Update records
Update one or multiple records by id.
Id property of the data is optional if upsert property is enabled.
import type { DataUpdateRecords, UpdateRecordsResult } from 'netzo/apis/airtable/types.ts'
const data: DataUpdateRecords = {
records: [
{
fields: {
Address: 'Updated Address',
},
id: RECORD_ID
}
]
}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].patch<UpdateRecordsResult>(data)
const resultData = result.records
import type { DataUpdateRecords, UpdateRecordsResult } from 'netzo/apis/airtable/types.ts'
const data: DataUpdateRecords = {
records: [
{
fields: {
Address: 'Updated Address',
},
id: RECORD_ID
}
]
}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].patch<UpdateRecordsResult>(data)
const resultData = result.records
Delete records
Delete one or multiple records by id.
import type { QueryDeleteRecords, RecordsDeleted } from 'netzo/apis/airtable/types.ts'
const query: QueryDeleteRecords = {
records: [RECORD_ID_1, RECORD_ID_2]
}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].delete<RecordsDeleted>(query)
const resultData = result.records
import type { QueryDeleteRecords, RecordsDeleted } from 'netzo/apis/airtable/types.ts'
const query: QueryDeleteRecords = {
records: [RECORD_ID_1, RECORD_ID_2]
}
const result = await api[DATABASE_ID][TABLE_ID_OR_NAME].delete<RecordsDeleted>(query)
const resultData = result.records
Find databases
Find all databases the api key can access.
import type { Databases, QueryDatabases } from 'netzo/apis/airtable/types.ts'
const query: QueryDatabases = {}
const result = await api.meta.bases.get<Databases>(query)
const resultData = result.bases
import type { Databases, QueryDatabases } from 'netzo/apis/airtable/types.ts'
const query: QueryDatabases = {}
const result = await api.meta.bases.get<Databases>(query)
const resultData = result.bases
Find tables
Find all tables in a specific database.
import type { QueryTables, Tables } from 'netzo/apis/airtable/types.ts'
const query: QueryTables = {}
const result = await api.meta.bases[DATABASE_ID].tables.get<Tables>(query)
const resultData = result.tables
import type { QueryTables, Tables } from 'netzo/apis/airtable/types.ts'
const query: QueryTables = {}
const result = await api.meta.bases[DATABASE_ID].tables.get<Tables>(query)
const resultData = result.tables