{"id":22400146,"url":"https://github.com/scalefreecom/tap-airtable","last_synced_at":"2025-06-22T08:33:20.270Z","repository":{"id":112947349,"uuid":"468699727","full_name":"ScalefreeCOM/tap-airtable","owner":"ScalefreeCOM","description":null,"archived":false,"fork":false,"pushed_at":"2022-10-11T08:54:20.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T00:17:29.255Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ScalefreeCOM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://aimementoring.com/donate","aimementoring.com"]}},"created_at":"2022-03-11T10:09:28.000Z","updated_at":"2022-03-11T10:43:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"cecbf16e-78dc-4a38-b05e-138a9a4adfc9","html_url":"https://github.com/ScalefreeCOM/tap-airtable","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ScalefreeCOM/tap-airtable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScalefreeCOM%2Ftap-airtable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScalefreeCOM%2Ftap-airtable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScalefreeCOM%2Ftap-airtable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScalefreeCOM%2Ftap-airtable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScalefreeCOM","download_url":"https://codeload.github.com/ScalefreeCOM/tap-airtable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScalefreeCOM%2Ftap-airtable/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261262309,"owners_count":23132422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-05T08:11:33.350Z","updated_at":"2025-06-22T08:33:15.242Z","avatar_url":"https://github.com/ScalefreeCOM.png","language":"Python","funding_links":["https://aimementoring.com/donate","aimementoring.com"],"categories":[],"sub_categories":[],"readme":"# Tap Airtable customized by [Scalefree International GmbH](https://www.scalefree.com)\n\n[\u003cimg src=\"https://user-images.githubusercontent.com/78537603/191483803-8cd4fc72-54a1-45f6-ab39-d798ec83e4c9.jpg\" width=50% align=right\u003e](https://www.scalefree.com)\n\n[Singer](https://www.singer.io/) tap that extracts data from a [AirTable](https://airtable.com/api) database and produces JSON-formatted data following the [Singer spec](https://github.com/singer-io/getting-started/blob/master/docs/SPEC.md).\n\nTo make this Tap work with a Target, clone both projects and follow this instructions:\n\n## Usage\n\nThis section dives into basic usage of `tap-mysql` by walking through extracting\ndata from a table. It assumes that you can connect to and read from a MySQL\ndatabase.\n\n### Install\n\n```bash\npython3 -m venv ~/.virtualenvs/tap-airtable\nsource ~/.virtualenvs/tap-airtable/bin/activate\npip install -e .\n```\n\n\n### Create the configuration file\n\n\n| Configuration Key   | required | Description                                                                                              |\n|---------------------|----------|----------------------------------------------------------------------------------------------------------|\n| metadata_url        | - | Airtable metadata URL, at the time of the update: \"https://api.airtable.com/v2/meta/\"                    |\n| records_url         | - | Airtable content URL, at the time of the update: \"https://api.airtable.com/v0/\"                          |\n| token               | yes | Airtable Token                                                                                           |\n| base_id             | - | Airtable base ID to export                                                                               |\n| selected_by_default | - | Default for every table in the base. If set to true, all of the tables in the schema will be syncronized |\n| remove_emojis       | - | Filter out emojis from the scyncronization                                                               |\n\n\n#### Configuration file example\n\n\n```json\n{\n    \"metadata_url\":\"https://api.airtable.com/v2/meta/\",\n    \"records_url\":\"https://api.airtable.com/v0/\",\n    \"token\":\"airtable_token\",\n    \"base_id\": \"airtable_base_id\",\n    \"selected_by_default\": true,\n    \"remove_emojis\": false\n}\n```\n\n\n### Discovery mode\n\nThe tap can be invoked in discovery mode to find the available tables and\ncolumns in the database:\n\n```bash\n$ tap-airtable --config config.json --discover\n\n```\n\nA discovered catalog is output, with a JSON-schema description of each table. A\nsource table directly corresponds to a Singer stream.\n\nThe `selected-by-default` fields is used to enable the sync of the tables. If set to 'true', all of the tables will be \nselected in the `properties.json` \n\n\n\n## Target project (Example: target-postgres) \n\n### Clone target-postgres project\n\n```shell\n git clone https://github.com/datamill-co/target-postgres\n cd target-postgres\n```\n\n### To install dependencies on target project run the commands\n\n```shell\n python3 -m venv ~/.virtualenvs/target-postgres\n source ~/.virtualenvs/target-postgres/bin/activate\n pip install target-postgres\n```\n\n### To run full tap and target action run for a particular Base\n\nComplete the config.json \n\n```\n{\n    \"metadata_url\":\"https://api.airtable.com/v2/meta/\",\n    \"records_url\":\"https://api.airtable.com/v0/\",\n    \"token\":\"airtable-api-key\",\n    \"base_id\": \"base-id\",\n    \"selected_by_default\": true\n}\n```\n\nFrom the home directory of the project \n\n```shell\ntap-airtable -c config.json --properties properties.json | ~/.virtualenvs/target-postgres/bin/target-postgres \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalefreecom%2Ftap-airtable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalefreecom%2Ftap-airtable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalefreecom%2Ftap-airtable/lists"}