Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/alloy-automation:alloy-automation-integrations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Embedded 2025-09 Integrations API
version: '5.0'
servers:
- url: https://production.runalloy.com
tags:
- name: Integrations
paths:
/integrations:
get:
summary: Retrieve a list of all integrations
description: Returns all the available integrations in your Alloy Embedded Account. Includes integrations/apps you've created an "integration" for, their workflows and statuses. If `installed` equals `true`, the `installedVersion` key will show the currently installed version.
operationId: list-integrations
parameters:
- name: Authorization
in: header
required: true
schema:
type: string
default: bearer YOUR_API_KEY
- $ref: '#/components/parameters/xApiVersion'
- name: userId
in: query
description: 'The Id used to identify the user. Note: you can also use the Embedded user''s `username` in this field.'
required: true
schema:
type: string
x-code-samples:
- lang: cURL
source: "curl -X GET \"https://production.runalloy.com/integrations?userId={{userId}}\" \\\n -H \"Authorization: bearer YOUR_API_KEY\" \\\n -H \"x-api-version: 2025-09\"\n"
- lang: Python
source: "import requests\n\nurl = \"https://production.runalloy.com/integrations\"\nparams = {\"userId\": \"{{userId}}\"}\nheaders = {\n \"Authorization\": \"bearer YOUR_API_KEY\",\n \"x-api-version\": \"2025-09\"\n}\n\nresponse = requests.get(url, params=params, headers=headers)\nprint(response.json())\n"
- lang: JavaScript
source: "const userId = \"{{userId}}\";\nconst url = `https://production.runalloy.com/integrations?userId=${userId}`;\n\nfetch(url, {\n method: \"GET\",\n headers: {\n \"Authorization\": \"bearer YOUR_API_KEY\",\n \"x-api-version\": \"2025-09\"\n }\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error(\"Error:\", error));\n"
- lang: PHP
source: "<?php\n$userId = \"{{userId}}\";\n$url = \"https://production.runalloy.com/integrations?userId=\" . urlencode($userId);\n\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n \"Authorization: bearer YOUR_API_KEY\",\n \"x-api-version: 2025-09\"\n]);\n\n$response = curl_exec($ch);\ncurl_close($ch);\n$data = json_decode($response, true);\nprint_r($data);\n?>\n"
- lang: Go
source: "package main\n\nimport (\n \"encoding/json\"\n \"fmt\"\n \"io\"\n \"net/http\"\n \"net/url\"\n)\n\nfunc main() {\n userId := \"{{userId}}\"\n baseURL := \"https://production.runalloy.com/integrations\"\n params := url.Values{}\n params.Add(\"userId\", userId)\n fullURL := baseURL + \"?\" + params.Encode()\n\n req, _ := http.NewRequest(\"GET\", fullURL, nil)\n req.Header.Set(\"Authorization\", \"bearer YOUR_API_KEY\")\n req.Header.Set(\"x-api-version\", \"2025-09\")\n\n client := &http.Client{}\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n\n body, _ := io.ReadAll(resp.Body)\n var data map[string]interface{}\n json.Unmarshal(body, &data)\n fmt.Println(data)\n}\n"
- lang: Java
source: "import java.net.HttpURLConnection;\nimport java.net.URL;\nimport java.io.BufferedReader;\nimport java.io.InputStreamReader;\nimport com.google.gson.Gson;\nimport java.util.Map;\n\npublic class Example {\n public static void main(String[] args) throws Exception {\n String userId = \"{{userId}}\";\n String urlString = \"https://production.runalloy.com/integrations?userId=\" + java.net.URLEncoder.encode(userId, \"UTF-8\");\n \n URL url = new URL(urlString);\n HttpURLConnection conn = (HttpURLConnection) url.openConnection();\n conn.setRequestMethod(\"GET\");\n conn.setRequestProperty(\"Authorization\", \"bearer YOUR_API_KEY\");\n conn.setRequestProperty(\"x-api-version\", \"2025-09\");\n \n BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));\n String inputLine;\n StringBuilder response = new StringBuilder();\n while ((inputLine = in.readLine()) != null) {\n response.append(inputLine);\n }\n in.close();\n \n Gson gson = new Gson();\n Map<String, Object> data = gson.fromJson(response.toString(), Map.class);\n System.out.println(data);\n }\n}\n"
- lang: Ruby
source: 'require ''net/http''
require ''json''
require ''uri''
userId = "{{userId}}"
uri = URI("https://production.runalloy.com/integrations")
params = { userId: userId }
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request[''Authorization''] = ''bearer YOUR_API_KEY''
request[''x-api-version''] = ''2025-09''
response = http.request(request)
data = JSON.parse(response.body)
puts data
'
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
data:
- integrationId: 66326843cc9cdb107221f222
description: ''
primaryConnector: Shopify
installed: false
icon: https://cdn.runalloy.com/icons/shopify.png
workflows:
- workflowId: 66326849cc9cdb107221f342
name: 'Untitled Workflow #346'
installed: false
active: false
version: 1
connectors:
- name: On Installation Trigger
id: 4762a899-8f38-44d9-a091-f4b6eaba386e
connector: onInstallationTrigger
icon: https://cdn.runalloy.com/icons/OnIntegrationInstallation.svg
subtitle: On Installation Trigger
- name: Shopify
id: 0679a48c-e0f9-455a-91f2-48a739bac9d7
connector: shopify
icon: https://cdn.runalloy.com/icons/shopify.png
subtitle: Gets a list of all Products
credentials:
- PA_Sn1sp8Of8p5JICNiJ
- shopify
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
integrationId:
type: string
example: 63ea758e82c3074141968bb9
app:
type: string
example: Magento
installed:
type: boolean
example: false
default: true
icon:
type: string
example: https://cdn.runalloy.com/icons/magento.png
workflows:
type: array
items:
type: object
properties:
workflowId:
type: string
example: 63ea75a2fcf2e2c72e805ddc
name:
type: string
example: Magento Order Sync
installed:
type: boolean
example: true
default: true
version:
type: integer
example: 1
default: 0
installedVersion:
type: integer
example: 1
default: 0
active:
type: boolean
example: true
default: true
blocks:
type: array
items:
type: object
properties:
name:
type: string
example: Custom Event
id:
type: string
example: bc9202b2-8e7e-47d4-9416-5ba6b319fa2a
type:
type: string
example: customEvent
icon:
type: string
example: https://cdn.runalloy.com/icons/app-event.svg
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
security: []
tags:
- Integrations
/integrations/{integrationId}:
get:
summary: Retrieve a single integration
description: Finds a specific integration for a user
operationId: get-an-integration
parameters:
- name: Authorization
in: header
required: true
schema:
type: string
default: bearer YOUR_API_KEY
- $ref: '#/components/parameters/xApiVersion'
- name: integrationId
in: path
description: This API parameter allows you to filter results based on the integrationId or the integrationName (also referred to as 'app'). The integration name (app) is a custom name that you have set for your integration. When using the integration name (app), provide the name of the integration you want to filter for (e.g. 'shopify order sync' or 'magento product creation'). You can obtain the integration name (app) from the List Integrations endpoint under the 'app' parameter, or by checking your UI. Either integrationId or integrationName must be provided but it cannot be both.
schema:
type: string
required: true
- name: userId
in: query
description: 'The Id used to identify the user. Note: you can also use the Embedded user''s `username` in this field.'
required: true
schema:
type: string
x-code-samples:
- lang: cURL
source: "curl -X GET \"https://production.runalloy.com/integrations/{integrationId}?userId={{userId}}\" \\\n -H \"Authorization: bearer YOUR_API_KEY\" \\\n -H \"x-api-version: 2025-09\"\n"
- lang: Python
source: "import requests\n\nurl = \"https://production.runalloy.com/integrations/{integrationId}\"\nparams = {\"userId\": \"{{userId}}\"}\nheaders = {\n \"Authorization\": \"bearer YOUR_API_KEY\",\n \"x-api-version\": \"2025-09\"\n}\n\nresponse = requests.get(url, params=params, headers=headers)\nprint(response.json())\n"
- lang: JavaScript
source: "const userId = \"{{userId}}\";\nconst integrationId = \"{integrationId}\";\nconst url = `https://production.runalloy.com/integrations/${integrationId}?userId=${userId}`;\n\nfetch(url, {\n method: \"GET\",\n headers: {\n \"Authorization\": \"bearer YOUR_API_KEY\",\n \"x-api-version\": \"2025-09\"\n }\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error(\"Error:\", error));\n"
- lang: PHP
source: "<?php\n$userId = \"{{userId}}\";\n$integrationId = \"{integrationId}\";\n$url = \"https://production.runalloy.com/integrations/{$integrationId}?userId=\" . urlencode($userId);\n\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n \"Authorization: bearer YOUR_API_KEY\",\n \"x-api-version: 2025-09\"\n]);\n\n$response = curl_exec($ch);\ncurl_close($ch);\n$data = json_decode($response, true);\nprint_r($data);\n?>\n"
- lang: Go
source: "package main\n\nimport (\n \"encoding/json\"\n \"fmt\"\n \"io\"\n \"net/http\"\n \"net/url\"\n)\n\nfunc main() {\n userId := \"{{userId}}\"\n integrationId := \"{integrationId}\"\n baseURL := \"https://production.runalloy.com/integrations/\" + integrationId\n params := url.Values{}\n params.Add(\"userId\", userId)\n fullURL := baseURL + \"?\" + params.Encode()\n\n req, _ := http.NewRequest(\"GET\", fullURL, nil)\n req.Header.Set(\"Authorization\", \"bearer YOUR_API_KEY\")\n req.Header.Set(\"x-api-version\", \"2025-09\")\n\n client := &http.Client{}\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n\n body, _ := io.ReadAll(resp.Body)\n var data map[string]interface{}\n json.Unmarshal(body, &data)\n fmt.Println(data)\n}\n"
- lang: Java
source: "import java.net.HttpURLConnection;\nimport java.net.URL;\nimport java.io.BufferedReader;\nimport java.io.InputStreamReader;\nimport com.google.gson.Gson;\nimport java.util.Map;\n\npublic class Example {\n public static void main(String[] args) throws Exception {\n String userId = \"{{userId}}\";\n String integrationId = \"{integrationId}\";\n String baseUrl = \"https://production.runalloy.com/integrations/\" + integrationId;\n String urlString = baseUrl + \"?userId=\" + java.net.URLEncoder.encode(userId, \"UTF-8\");\n \n URL url = new URL(urlString);\n HttpURLConnection conn = (HttpURLConnection) url.openConnection();\n conn.setRequestMethod(\"GET\");\n conn.setRequestProperty(\"Authorization\", \"bearer YOUR_API_KEY\");\n conn.setRequestProperty(\"x-api-version\", \"2025-09\");\n \n BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));\n String inputLine;\n StringBuilder response = new StringBuilder();\n while ((inputLine = in.readLine()) != null) {\n response.append(inputLine);\n }\n in.close();\n \n Gson gson = new Gson();\n Map<String, Object> data = gson.fromJson(response.toString(), Map.class);\n System.out.println(data);\n }\n}\n"
- lang: Ruby
source: 'require ''net/http''
require ''json''
require ''uri''
userId = "{{userId}}"
integrationId = "{integrationId}"
base_url = "https://production.runalloy.com/integrations/#{integrationId}"
uri = URI(base_url)
params = { userId: userId }
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request[''Authorization''] = ''bearer YOUR_API_KEY''
request[''x-api-version''] = ''2025-09''
response = http.request(request)
data = JSON.parse(response.body)
puts data
'
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
data:
integrationId: 66326843cc9cdb107221f222
app: Shopify
installed: false
icon: https://cdn.runalloy.com/icons/shopify.png
workflows:
- workflowId: 66326849cc9cdb107221f342
name: 'Untitled Workflow #346'
installed: false
active: false
version: 1
connectors:
- name: On Installation Trigger
id: 4762a899-8f38-44d9-a091-f4b6eaba386e
connector: onInstallationTrigger
icon: https://cdn.runalloy.com/icons/OnIntegrationInstallation.svg
subtitle: On Installation Trigger
- name: Shopify
id: 0679a48c-e0f9-455a-91f2-48a739bac9d7
connector: shopify
icon: https://cdn.runalloy.com/icons/shopify.png
subtitle: Gets a list of all Products
- name: Shopify
id: 24ed5879-4aa9-4a2c-b8dc-afe6413c1ca7
connector: shopify
icon: https://cdn.runalloy.com/icons/shopify.png
subtitle: Shopify
credentials:
- shopify
schema:
type: object
properties:
data:
type: object
properties:
integrationId:
type: string
example: 63ea758e82c3074141968bb9
app:
type: string
example: Magento
installed:
type: boolean
example: false
default: true
icon:
type: string
example: https://cdn.runalloy.com/icons/magento.png
workflows:
type: array
items:
type: object
properties:
workflowId:
type: string
example: 63ea75a2fcf2e2c72e805ddc
name:
type: string
example: Magento Order Sync
installed:
type: boolean
example: true
default: true
version:
type: integer
example: 1
default: 0
installedVersion:
type: integer
example: 1
default: 0
active:
type: boolean
example: true
default: true
blocks:
type: array
items:
type: object
properties:
name:
type: string
example: Custom Event
id:
type: string
example: bc9202b2-8e7e-47d4-9416-5ba6b319fa2a
type:
type: string
example: customEvent
icon:
type: string
example: https://cdn.runalloy.com/icons/app-event.svg
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
security: []
tags:
- Integrations
/integrations/all:
get:
summary: Get All Integrations
description: Retrieves all integrations available in the Alloy Embedded account.
operationId: getAllIntegrations
parameters:
- name: Authorization
in: header
required: true
schema:
type: string
default: bearer YOUR_API_KEY
- $ref: '#/components/parameters/xApiVersion'
responses:
'200':
description: Successful response with a list of integrations.
content:
application/json:
examples:
Result:
value:
data:
- integrationId: 67120234ea0bb132f61455d3
description: ''
primaryConnector: Variable Selector
icon: https://cdn.runalloy.com/icons/shopify.png
workflows:
- workflowId: 673f2573ef641065fce767a7
name: 'Untitled Workflow #6'
version: 1
connectors:
- name: On Installation Trigger
id: c911ec0a-0016-40c0-9c04-b46c8e9e2751
connector: onInstallationTrigger
icon: https://cdn.runalloy.com/icons/OnIntegrationInstallation.svg
subtitle: On Installation Trigger
- name: Shopify
id: de156f05-db36-439a-a237-5c6d9f6b1515
connector: shopify
icon: https://cdn.runalloy.com/icons/shopify.png
subtitle: Gets a list of all Abandoned Checkouts
credentials:
- shopify
deprecated: false
security: []
tags:
- Integrations
components:
parameters:
xApiVersion:
name: x-api-version
in: header
required: true
description: The version of the API to use. The current API version is **2025-09**.
schema:
type: string
default: 2025-09
securitySchemes:
sec0:
type: apiKey
in: header
name: Authorization
x-bearer-format: bearer
x-readme:
headers: []
explorer-enabled: true
proxy-enabled: true
x-readme-fauxas: true
x-provenance:
method: harvested
publisher: Alloy Automation
source: https://docs.runalloy.com/openapi/2025-09/embedded/embedded.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)