superglue integrates & orchestrates APIs from natural language. Agents use it to build deterministic workflows across apps, APIs and databases. Humans use it to generate insights, build automations and manage data.
Read the docs 🍯🍯🍯
superglue orchestrates APIs from natural language. Tell it what you want to do in your CRM, ERP and co. and superglue builds, runs and executes the integration pipelines automatically. Comes with automated schema mapping, drift detection, retries and remappings so your API workflows keep running no matter what.
superglue makes agents reliable in prod by letting them build deterministic workflows across any SaaS app, API and data source. Use the superglue MCP instead of hard-coding tools and let your agent use APIs the way they want to, not the way they were written.
Run on our cloud-hosted version
Install the superglue js/ts client:
npm install @superglue/client
import { SuperglueClient } from "@superglue/client";
const superglue = new SuperglueClient({
apiKey: "************"
});
const workflowResult = await superglue.executeWorkflow({
// input can be an ID of a pre-saved workflow or a WorkflowInput object
workflow: {
id: "myTodoUserWorkflow",
steps: [
{
id: "fetchTodos", // Unique ID for this step
apiConfig: {
id: "jsonplaceholderTodos",
urlHost: "https://jsonplaceholder.typicode.com",
urlPath: "/todos",
method: HttpMethod.GET,
instruction: "Fetch a list of todos. We only need the first one for this example.",
},
},
{
id: "fetchUser",
apiConfig: {
id: "jsonplaceholderUsers",
urlHost: "https://jsonplaceholder.typicode.com",
urlPath: "/users/<<$.fetchTodos[0].userId>>", // JSONata path parameter for first userId
method: HttpMethod.GET,
instruction: "Fetch user details by user ID for the first todo."
},
},
],
// Transform the results of the steps into the final desired output. If not given, this will be generated from the reponse schema
finalTransform: "$",
responseSchema: { // define the expected final output structure
type: "object",
description: "first todo",
properties: {
todoTitle: { type: "string" },
userName: { type: "string" }
}
}
},
// `payload` could be used to pass initial data to the first step if needed. E.g. IDs to fetch, filters, etc. In short, things that can change across calls.
// payload: { userId: 1 },
// `credentials` can be used to authenticate requests. They need to be referenced in the api config (e.g. "headers": {"Authorization": "Bearer <<hubspot_api_key>>"})
// credentials: { hubspot_api_key: "pa_xxx" },
});
console.log(JSON.stringify(workflowResult, null, 2));
For detailed documentation, visit docs.superglue.cloud.
We love contributions! Feel free to open issues for bugs or feature requests.
superglue is GPL licensed. The superglue client SDKs are MIT licensed. See LICENSE for details.