{"id":23076387,"url":"https://github.com/bilbyai/air2neo","last_synced_at":"2025-08-15T18:32:30.420Z","repository":{"id":38362233,"uuid":"484463252","full_name":"bilbyai/air2neo","owner":"bilbyai","description":"Airtable to Neo4j","archived":false,"fork":false,"pushed_at":"2023-09-27T03:44:08.000Z","size":143,"stargazers_count":7,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-15T22:25:38.293Z","etag":null,"topics":["airtable","api","neo4j","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bilbyai.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":{"github":"leetdavid"}},"created_at":"2022-04-22T14:27:09.000Z","updated_at":"2024-08-08T11:33:18.000Z","dependencies_parsed_at":"2023-09-27T09:48:36.069Z","dependency_job_id":null,"html_url":"https://github.com/bilbyai/air2neo","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bilbyai%2Fair2neo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bilbyai%2Fair2neo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bilbyai%2Fair2neo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bilbyai%2Fair2neo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bilbyai","download_url":"https://codeload.github.com/bilbyai/air2neo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229894003,"owners_count":18140620,"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":["airtable","api","neo4j","python"],"created_at":"2024-12-16T09:31:29.268Z","updated_at":"2024-12-16T09:31:30.132Z","avatar_url":"https://github.com/bilbyai.png","language":"Python","funding_links":["https://github.com/sponsors/leetdavid"],"categories":[],"sub_categories":[],"readme":"# air2neo\n[![Test Lint and Deploy](https://github.com/bilbyai/air2neo/actions/workflows/test_lint_deploy.yml/badge.svg)](https://github.com/bilbyai/air2neo/actions/workflows/test_lint_deploy.yml)\n[![codecov](https://codecov.io/gh/bilbyai/air2neo/branch/main/graph/badge.svg?token=EQW6XHZSXS)](https://codecov.io/gh/bilbyai/air2neo)\n\nAirtable to Neo4j data ingestor\n\n\n## Quickstart\n```python\nfrom air2neo import Air2Neo, MetatableConfig\n\na2n = Air2Neo(\n    airtable_api_key,\n    airtable_base_id,\n    neo4j_uri,\n    neo4j_username,\n    neo4j_password,\n    MetatableConfig(\n        table_name,                         # \"Metatable\"\n        # Optionally, you can provide `table`,\n        # which is a pyairtable.Table object.\n\n        name_col,                           # \"Name\",\n        view_col,                           # \"View\", (optional)\n        index_for_col,                      # \"IndexFor\",\n        constrain_for_col,                  # \"ConstrainFor\",\n        node_properties_col,                # \"NodeProperties\",\n        edges_col,                          # \"Edges\",\n        node_properties_last_ingested_col,  # \"nodesLastIngested\",\n        edges_last_ingested_col,            # \"edgesLastIngested\",\n        airtable_id_property_in_neo4j,      # \"_aid\" (The name of the property in Neo4j that stores the Airtable ID, defaults to)\n        format_edge_col_name,               # \"function that formats edge column names. Removes everything after a double-underscore, e.g. IN_INDUSTRY__BANK is renamed to IN_INDUSTRY\",\n        airtable_api_key,                   # \"Airtable API key\",\n        airtable_base_id,                   # \"Airtable base ID\",\n    ),\n)\na2n.run()\n```\n\nIf you have a .env file like so:\n```\nAIRTABLE_API_KEY=\nAIRTABLE_BASE_ID=\nAIRTABLE_METATABLE_NAME=        # Optional, defaults to \"Metatable\"\nNEO4J_URI=\nNEO4J_USERNAME=\nNEO4J_PASSWORD=\n```\nYou just run the following:\n```python\nfrom air2neo import Air2Neo\n\na2n = Air2Neo()\na2n.run()\n```\n## Installation\n```bash\n$ pip install air2neo\n```\n## Documentation\nTo be implemented. For now, please look at the code docstrings. Sorry about that!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbilbyai%2Fair2neo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbilbyai%2Fair2neo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbilbyai%2Fair2neo/lists"}