Skip to main content

APIs and SDKs

Introduction

Neosync, like many web services these days, is a full-fledged API. Check out the architecture page for an overview of how the Neosync API fits into the picture.

All of our APIs are generated from Protobuf files. For this reason, a client can easily be generated in any of the many supported languages. Internally, we make great use of the Go SDK as well as the TypeScript SDK.

Configuration

There are a few inputs that any SDK needs in order to be properly configured.

  1. API URL
  2. Account ID
  3. API Key (required for Neosync Cloud or self-hosted authenticated environments)

API Url

If using Neosync Cloud, the backend api url is: https://neosync-api.svcs.neosync.dev

The standard localhost url is: http://localhost:8080

Account ID

The account ID is necessary for some requests that do not have an obvious identifier like retrieving a list of jobs, or a list of connections. This can be found by going into the app on the /:accountName/settings page and found in the header.

API Key

An access token (api key, or user jwt) must be used to access authenticated Neosync environments. For an API Key, this can be created at /:accountName/settings/api-keys.

Clients

Go

The Go SDK that is committed to the Neosync repo may be freely imported and utilized. See the Go SDK page for more information on how to use the SDK.

All of the generated code lives here.

TypeScript

The TypeScript SDK is published to the npm registry. It is generated from Neosync protos and is used by the Neosync App. See the TS SDK page for more information on how to use the SDK.

All of the generated code lives here.

Protos

All of Neosync's protos are public and can be found here. A new SDK can be easily generated by augmenting the buf.gen.yaml file, or providing a separate one when running the buf cli to generate a different SDK for other purposes.