/nango-sync

Sync external APIs to your DB, fast.

Primary LanguageTypeScriptOtherNOASSERTION

Nango Logo

Integrate your app with 3rd-party APIs, fast

The service that lets you easily synchronise data between your app and any 3rd-party API.


Explore the docs »

Website · Examples · Report Bug · Slack · Roadmap · Twitter ·

⭐️ Why Nango?

Adding integrations to an app is complicated.

At first, it looks as simple as making requests to a 3rd-party API. But you quickly need to build OAuth, background synchronisation, retries, pagination, caching, webhooks, data transformation, monitoring, etc.

We pre-built these components so you don’t have to and can focus on shipping low maintenance integrations fast.

 How it works

With Nango, building integrations becomes as simple as:

  1. Authenticate users with OAuth in your frontend:
nango.auth('hubspot', '<user-id>'); // Starts OAuth flow
  1. Easily sync data from any API endpoint to your DB in the backend:
nango.sync('https://api.hubspot.com/crm/v3/contacts', config); // Syncs contacts forever!
  1. Read the always-fresh data from the DB and use it in your app
SELECT * FROM hubspot_contacts WHERE ...

Additionally, Nango has out-of-the-box support for:

  • 🔐 OAuth token retrieval & refresh
  • 📶 Incremental syncs
  • 🪝 Webhooks
  • ⚡️ JSON-to-SQL schema mapping
  • 🔄 Retries & rate-limit handling
  • 🚀 Scalable & flexible open-source infrastructure
  • Language-agnostic
  • ☁️ Self-hosted and Cloud options

🧑‍💻 Example use cases

Nango is API agnostic: It works with any API endpoint that returns JSON (you just need to give it a few details about the endpoint).

While Nango supports millions of APIs, here are some of the most popular ones:

  • CRMs such as HubSpot, Salesforce, Pipedrive, Zoho CRM, Zendesk Sell etc.
  • Accounting systems such as Quickbooks, Xero, Netsuite, Zoho Books, Freshbooks etc.
  • Cloud providers such as AWS, GCP, Azure, DigitalOcean, Fly.io, Heroku etc.
  • Productivity tools such as Gmail, Google Calendar, Slack, Outlook 365, Zoom, Google Drive etc.
  • Project Management tools such as Airtable, Asana, Monday.com, ClickUp etc.
  • Dev tools such as Github, Gitlab, JIRA, Trello, Figma etc.
  • ...any API endpoint that returns JSON

The docs have more examples of Nango configurations for different APIs and endpoints.

🚀 Quickstart

Let’s sync the Pokémon API to your DB in 3 minutes.

Clone the repo and start Nango locally…

git clone https://github.com/NangoHQ/nango-sync.git && cd nango-sync
docker compose up

...and create a Sync with a simple CURL command:

curl --request POST \
	--url http://localhost:3003/v1/syncs \
	--header "Content-type: application/json" \
	--data '{"url": "https://pokeapi.co/api/v2/pokemon", "response_path": "results", "paging_url_path":"next", "mapped_table":"pokemons", "frequency":"1 minute"}'

That's it! You can check out the list of all Pokémons in your local db (password is nango). They will stay in sync forever!

☁️ Use the fully-hosted Nango Cloud

Request a Nango instance on the Slack community (free-tier available).

🔗 Links

💪 Contributors