For the complete documentation index, see llms.txt. This page is also available as Markdown.

Apps

This set of endpoints control the connectors that are installed in your Appmixer tenant. You can also publish new and uninstall existing connectors.

Get Apps

GET https://api.YOUR_TENANT.appmixer.cloud/apps

Returns all applications available to the authenticated user. An "app" is either a module (e.g. appmixer.google.gmail) or a service that does not declare any modules (e.g. appmixer.calendly). When a service contains at least one module, the modules are returned as the apps and the service itself is omitted. The result is keyed by the app name and respects the user's ACL (private apps the user cannot see are filtered out). curl "https://api.appmixer.com/apps" -H "Authorization: Bearer [ACCESS_TOKEN]"

Query Parameters

Name
Type
Description

ignoreACL

boolean

Admin only. When true, returns every app regardless of ACL. Non-admin users receive a 400 error.

{
    "appmixer.asana": {
        "name": "appmixer.asana",
        "label": "Asana",
        "category": "applications",
        "description": "Asana is a collaborative information manager for workspace. It helps you organize people and tasks effectively.",
        "icon": "data:image/png;base64,iVBORw0KGgoA....kJggg=="
    },
    "appmixer.calendly": {
        "name": "appmixer.calendly",
        "label": "Calendly",
        "category": "applications",
        "description": "Calendly helps you schedule meetings without the back-and-forth emails. It does not work with the free Basic account. It works with Premium or Pro account.",
        "icon": "data:image/png;base64,iVBORw0KGgoA....kJggg=="
    },
    "appmixer.clearbit": {
        "name": "appmixer.clearbit",
        "label": "Clearbit",
        "category": "applications",
        "description": "Clearbit is a data API that lets you enrich your person and company records with social, demographic, and firmographic data.",
        "icon": "data:image/png;base64,iVBORw0KGgoA....kSuQmCC"
    },
    "appmixer.dropbox": {
        "name": "appmixer.dropbox",
        "label": "Dropbox",
        "category": "applications",
        "description": "Dropbox is a home for all your photos, documents, videos, and other files. Dropbox lets you access your stuff from anywhere and makes it easy to share with others.",
        "icon": "data:image/svg+xml;base64,PHN2Z....3N2Zz4="
    },
    "appmixer.evernote": {
        "name": "appmixer.evernote",
        "label": "Evernote",
        "category": "applications",
        "description": "Evernote is a powerful note taking application that makes it easy to capture ideas, images, contacts, and anything else you need to remember. Bring your life's work together in one digital workspace, available on all major mobile platforms and devices.",
        "icon": "data:image/png;base64,iVBORw0KGgoA....kSuQmCC"
    }
}

Get Bundles

GET https://api.YOUR_TENANT.appmixer.cloud/bundles

Returns the installed bundle versions. Each connector is packaged as a bundle (defined by its bundle.json); this endpoint reports the currently installed version of every bundle, keyed by the bundle name. It is useful for checking which connector versions are deployed in your tenant. curl "https://api.appmixer.com/bundles" -H "Authorization: Bearer [ACCESS_TOKEN]"

Get App Components

GET https://api.YOUR_TENANT.appmixer.cloud/apps/components

Returns all components of a single app including their manifest files. curl "https://api.appmixer.com/apps/components?app=appmixer.dropbox" -H "Authorization: Bearer [ACCESS_TOKEN]"

Query Parameters

Name
Type
Description

app

string

Required. ID of an app as defined in service.json or module.json (e.g. appmixer.dropbox or appmixer.google.gmail).

Get All Components

GET https://api.YOUR_TENANT.appmixer.cloud/components

Get all available components (including custom ones) that the user is allowed to use. By default the endpoint returns the full manifest of every component. To retrieve only the list of component type names, set manifest=no. When full manifests are returned, the icon field is, by default, replaced by a URL pointing to the icon (instead of an inline base64 data URI) to keep the payload small — set compressIcons=false to keep the original inline icons. curl "https://api.appmixer.com/components" -H "Authorization: Bearer [ACCESS_TOKEN]" curl "https://api.appmixer.com/components?manifest=no" -H "Authorization: Bearer [ACCESS_TOKEN]"

Query Parameters

Name
Type
Description

manifest

string

When set to no, the endpoint returns only an array of component type names. Otherwise (default) it returns the full manifest of each component.

selector

string

Restrict the result to a subset of components. A [vendor].[service].[module].[component] selector (e.g. appmixer.google or appmixer.google.gmail).

selectors[]

string

Request multiple component patterns in a single call (OR logic). Example: ?selectors[]=appmixer.google.gmail&selectors[]=appmixer.slack.list.SendChannelMessage. Useful for progressively loading only the manifests a client needs. See also Get Flow Components to load the manifests used by a specific flow.

compressIcons

boolean

Default true. When true, the icon field of each manifest is returned as a URL; set to false to return the original inline base64 icon.

ignoreACL

boolean

Admin only. When true, returns every component regardless of ACL. Non-admin users receive a 400 error.

Download a Component/Module/Service

GET https://api.YOUR_TENANT.appmixer.cloud/components/:selector

Download the source files of a component, module or an entire service as a zip archive (application/octet-stream). Compiled code and internal node_modules.zip files are excluded from the archive. The user must own the selected component(s). curl -XGET "https://api.appmixer.com/components/appmixer.myservice" -H "Authorization: Bearer [ACCESS_TOKEN]" -o appmixer.myservice.zip

Path Parameters

Name
Type
Description

selector

string

A selector identifying what to download. It can target a whole service (appmixer.myservice), a module (appmixer.myservice.mymodule), a single component (appmixer.myservice.mymodule.MyComponent) or even an individual file (appmixer.myservice.mymodule.MyComponent/MyComponent.js).

Publish A Component/Module/Service

POST https://api.YOUR_TENANT.appmixer.cloud/components

Publish a new component, new module or an entire service or update an existing component/module/service. The uploaded entity must be zipped and must have a proper directory/file structure inside (See Basic Component Structure for more details). Note that you can use the Appmixer CLI tool to pack your component/service/module to a zip archive (appmixer pack command). Alternatively, you can also use a regular zip command line utility but you should omit the node_modules/ directories before archiving and the root directory of the zip archive must match the vendor name. The directory hierarchy must have a well defined structure: [vendor]/[service]/[module]/[component]. The size limit of the zip archive is configured per tenant (10MB by default). Publishing a new component can take more time than a lifespan of a single HTTP request. Therefore, the result of the publishing HTTP call is a JSON object with ticket property. You can use the ticket to check for progress of the publish using the /components/uploader/:ticket endpoint. curl -XPOST "https://api.appmixer.com/components" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-type: application/octet-stream" --data-binary @appmixer.myservice.zip

Query Parameters

Name
Type
Description

compile

boolean

When true, the uploaded component code is compiled (minified) during publishing.

replaceAll

boolean

When true, existing files of the published service/module/component that are not present in the uploaded archive are removed (full replace).

Check for Publishing Progress

GET https://api.YOUR_TENANT.appmixer.cloud/components/uploader/:ticket

Check for progress of publishing a component. curl -XGET "https://api.appmixer.com/components/uploader/2e9dd726-2b7f-46f7-bea4-8db7f7175aa8" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-type: application/json"

Path Parameters

Name
Type
Description

ticket

string

Ticket that you got from the POST /component request.

Delete a Component/Module/Service

DELETE https://api.YOUR_TENANT.appmixer.cloud/components/:selector

Delete a component/module or an entire service. curl -XDELETE "https://api.appmixer.com/components/appmixer.myservice" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-type: application/json"

Path Parameters

Name
Type
Description

selector

string

A selector that uniquely identifies the service/module/component to delete. The selector is of the form [vendor].[service].[module].[component]. For example "appmixer.google.calendar.CreateEvent" (removes just one component) or "appmixer.google.calendar" (removes the calendar module) or "appmixer.google" (removes the entire Google service including all modules and components).

Query Parameters

Name
Type
Description

doNotRemoveCollections

boolean

When true, the database collections associated with the deleted component(s) are preserved instead of being dropped.

Call a Component Statically

POST https://api.YOUR_TENANT.appmixer.cloud/component/:vendor/:service/:module/:component

Execute a single component outside of a running flow ("static call"). This is the mechanism used internally to resolve dynamic dropdown options in the Inspector, and by the AI Agent to invoke its tools.

curl -XPOST "https://api.appmixer.com/component/appmixer/twilio/sms/ListFromNumbers?outPort=numbers" -H "Authorization: Bearer [ACCESS_TOKEN]" -H "Content-Type: application/json" -d '{ "componentId": "e25dc901-f92a-46a2-8d29-2573d4ad65e5" }'

Query Parameters

Name
Type
Description

outPort

string

The output port whose result should be returned.

Request Body

Name
Type
Description

componentId

string

ID of a component instance (used to resolve the connected account). Either componentId or callerId is required.

callerId

string

ID of the calling component instance.

properties

object

Component properties.

messages

object

Input messages keyed by input port.

log

boolean

When true, the call is recorded in the execution logs (marked with staticCall: true) and surfaces in the Logs API and the Insights UI — including component identity, input/output payloads, status, error detail and duration. Primarily used for AI Agent tools observability. Default false.

correlationId

string

Optional correlation ID stored in the log record when log is true, so tool-call records can be correlated with the agent's flow run.

Last updated

Was this helpful?