Skip to content

Self-healing open source data connector. Use it as a layer between you and any complex / legacy APIs and always get the data that you want in the format you expect.

License

Notifications You must be signed in to change notification settings

superglue-ai/superglue

Repository files navigation

superglue_logo_white

self-healing integration agent 🍯

superglue is a self-healing integration agent. You can deploy it as a proxy between you and any complex / legacy APIs and always get the data that you want in the format you expect.

Here's how it works: You prompt superglue in natural language (like "get all issues from jira"), provide an API URL, and superglue transforms the prompt into corresponding API calls. What superglue does under the hood:

  • Automatically generates the API configuration by analyzing API docs.
  • Handles pagination, authentication, and error retries.
  • Creates deterministic transformations (using JSONata for creating transformation rules), into the exact schema you need.
  • Validates that all data coming through follows that schema, and automatically fixes transformations when they break.

superglue uses LLMs only during configuration setup and transformation rule creation, making the glueing process deterministic and extremely efficient in terms of latency and cost.

If you’re spending a lot of time writing code connecting to weird APIs, fumbling with custom fields in foreign language ERPs, mapping JSONs, extracting data from compressed CSVs sitting on FTP servers, and making sure your integrations don’t break when something unexpected comes through, superglue might be for you.

GitHub Y Combinator Client SDK Docker Twitter Adina Twitter Stefan Weave Badge

quick start

hosted version

  1. Sign up for early access to the hosted version of superglue at superglue.ai

  2. Install the superglue js/ts client:

npm install @superglue/client
  1. Configure your first api call:
import { SuperglueClient } from "@superglue/client";

const superglue = new SuperglueClient({
  apiKey: "************"
});

const config = {
  urlHost: "https://futuramaapi.com",
  urlPath: "/graphql",
  instruction: "get all characters from the show",
  responseSchema: {
    type: "object",
    properties: {
      characters: {
        type: "array",  
        items: {
          type: "object",
          properties: {
            name: { type: "string" },
            species: { type: "string", description: "lowercased" }
          }
        }
      }
    }
  }
};

const result = await superglue.call({endpoint: config});
console.log(JSON.stringify(result.data, null, 2));

/*
output:
{
  "characters": [
    {
      "name": "Phillip J. Fry",
      "species": "human"
    },
    ...
  ]
}
*/

self-hosted version

Run your own instance of superglue using Docker:

  1. Pull the Docker image:
docker pull superglueai/superglue
  1. Create a .env by copying the .env.example file at the root

  2. Start the server:

docker run -d \
  --name superglue \
  --env-file .env \
  -p 3000:3000 \
  -p 3001:3001 \
  superglueai/superglue
  1. Verify the installation:
curl http://localhost:3000/health
> OK

# or open http://localhost:3000/?token=your-auth-token
  1. Open the dashboard to create your first configuration:
http://localhost:3001/
  1. run your first call:
npm install @superglue/client
import { SuperglueClient } from "@superglue/client";

const superglue = new SuperglueClient({
  endpoint: "http://localhost:3000",
  apiKey: "your-auth-token"
});

// either via config object
const config = {
  urlHost: "https://futuramaapi.com",
  urlPath: "/graphql",
  instruction: "get all characters from the show",
};

const result = await superglue.call({endpoint: config});

// or via the api id if you have already created the endpoint
const result2 = await superglue.call({id: "futurama-api"});

console.log(JSON.stringify(result.data, null, 2));

key features

  • API Proxy: Configure APIs and intercept responses in real-time with minimal added latency
  • LLM-Powered Data Mapping: Automatically generate data transformations using large language models
  • Schema Validation: Ensure data compliance with your specified schemas
  • File Processing: Handle various file formats (CSV, JSON, XML) with automatic decompression
  • Flexible Authentication: Support for various auth methods including header auth, api keys, oauth, and more
  • Smart Pagination: Handle different pagination styles automatically
  • Caching & Retry Logic: Built-in caching and configurable retry strategies

πŸ“– Documentation

For detailed documentation, visit docs.superglue.cloud.

🀝 contributing

We love contributions! Feel free to open issues for bugs or feature requests.

license

superglue is GPL licensed. The superglue client SDKs are MIT licensed. See LICENSE for details.

πŸ™‹β€β™‚οΈ support

Twitter

About

Self-healing open source data connector. Use it as a layer between you and any complex / legacy APIs and always get the data that you want in the format you expect.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages