---
title: Maia API Integration on Truto
slug: maia
category: iPaaS
canonical: "https://truto.one/integrations/detail/maia/"
---

# Maia API Integration on Truto



**Category:** iPaaS  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 113 tools for Maia that AI agents can call directly.

- **list_all_maia_agents** — List all Maia runners (agents), including summary details for each. Returns: agentId, agentStatus, agentType, cloudProvider, connected, deployment, description, name, pausedUntil, enableAutoUpdates, restrictedAccess, versionDetails. Max 100 per page.
- **create_a_maia_agent** — Create a new Maia runner (agent) with the specified configuration. Returns: agentId, agentStatus, agentType, cloudProvider, connected, deployment, description, enableAutoUpdates, name, pausedUntil, versionDetails, and 1 more. Required: name, agentType, cloudProvider, deployment. An agentType of 'streaming' cannot have enableAutoUpdates set to true.
- **get_single_maia_agent_by_id** — Get details for a specific Maia runner (agent) by id. Returns: agentId, agentStatus, agentType, cloudProvider, connected, deployment, description, enableAutoUpdates, name, pausedUntil, restrictedAccess, versionDetails. Required: id.
- **update_a_maia_agent_by_id** — Update a Runner in Maia. Returns an empty 202 response on success. All body fields are optional: name, description, enableAutoUpdates, restrictedAccess, trackName (CURRENT or STABLE). Snowflake runners cannot be updated and enableAutoUpdates cannot be set for them. Required: id.
- **delete_a_maia_agent_by_id** — Delete a Runner in Maia by id. Returns an empty 202 response on success. Only runners with a STOPPED, PENDING or UNKNOWN status can be deleted; UNKNOWN-status runners have up to a one-hour delay before deletion succeeds. Required: id.
- **list_all_maia_agents_releases** — List runner version track history entries in Maia. Returns a paginated list with: trackName, version, supportLevel, releasedAt. Filterable by track, support level, version, or release date range. Max 100 per page.
- **get_single_maia_agent_allowlist_by_id** — Get the allow list of projects a Maia runner is restricted to, by runner id. Returns a map of project IDs to entries with their allowed environments; an empty map means the runner can be assigned to no project while restrictedAccess is true. Required: id.
- **maia_agent_allowlists_bulk_update** — Replace a Maia runner's entire allow list with the supplied projects and environments, overwriting any previously set values; send an empty projects object to clear the list. Returns an empty 202 response on success. Required: agent_id, projects.
- **maia_agent_allowlists_bulk_add** — Add projects and/or environments to a Maia runner's allow list without removing existing entries. Returns an empty 202 response on success. Required: agent_id, projects.
- **maia_agent_allowlists_bulk_delete** — Remove a project, or a single environment within a project, from a Maia runner's allow list. Omitting environmentName removes the entire project and its environments. Returns an empty 202 response on success. Required: agent_id, projectId.
- **create_a_maia_agent_command** — Trigger a Runner command in Maia — RESTART restarts the runner, PAUSE sets it to 'Paused', and RESUME un-pauses it. Returns an empty 202 response on success. Required: agent_id, command.
- **list_all_maia_agent_credentials** — Get the client credentials for a Maia Runner agent. Returns the AgentCredentials record with clientId (the Runner's Client ID) and clientSecret (the Runner's Client secret). Required: agent_id. Returns 400 for wrong request parameters, 403 when access is forbidden, and 404 when the runner does not exist.
- **create_a_maia_agent_credential** — Refresh the client credentials of a Maia Runner agent by POSTing a SECRET_REFRESH action. Returns the refreshed AgentCredentials record with clientId (the Runner's Client ID) and clientSecret (the Runner's Client secret). Required: agent_id, action. Returns 400 for wrong request parameters, 403 when access is forbidden, and 404 when the runner…
- **list_all_maia_agents_tasks** — List AI agent tasks in Maia, optionally filtered by project, branch, status, or creation time. Returns tasks with taskId, status, agentName, mode, description, createdAt, and modifiedAt, plus the total count.
- **create_a_maia_agents_task** — Create a Maia AI agent task and start its async execution. Returns: agentName, createdAt, status, taskId. Required: message, agentConfig.
- **get_single_maia_agents_task_by_id** — Get a single Maia AI agent task by id, including its current status and pending decisions. Returns: agentConfig, createdAt, description, grantedPermissions, modifiedAt, pendingDecisions, status, taskId. Required: id.
- **delete_a_maia_agents_task_by_id** — Delete an AI agent task in Maia by id. The task must not be in RUNNING status. Returns an empty 204 response on success. Required: id.
- **maia_agents_tasks_stop** — Stop a running AI agent task in Maia; the task finishes its current work before stopping. Returns an empty 204 response on success. Only tasks in a running state can be stopped; poll the task status until it reaches STOPPED before further operations. Required: task_id.
- **maia_agents_tasks_bulk_update** — Replace the full set of granted tool permissions for a Maia AI agent task; pass an empty grantedPermissions list to clear all permissions. Returns: grantedPermissions, taskId. Required: task_id, grantedPermissions.
- **create_a_maia_task_decision** — Submit approval or question-answer decisions for a Maia AI agent task that is awaiting human input. Returns the processing result including pendingDecisions. Required: task_id, decisions.
- **list_all_maia_connections_schemas** — Get the Maia connection schema describing the connection properties and vault secret format required to create a connection. Returns: authProvider, authType, connectionPropertiesFields, platformConnectionType, vaultSecretFormat. Required: authProvider, authType, platformConnectionType.
- **list_all_maia_consumptions** — Get a breakdown of credit consumption in Maia for flat-rated products, grouped by calendar day (UTC) and by consumption type. Returns: consumedBefore, consumedFrom, consumption. Required: consumedFrom, consumedBefore. Data refreshes every three hours.
- **list_all_maia_consumption_etl_users** — Get a breakdown of maia credit consumption for ETL Users over a period. Returns: chargedUsers, consumedBefore, consumedFrom, credits. Required: consumedFrom, consumedBefore.
- **list_all_maia_custom_connectors** — List the custom connector profiles configured for your Maia account, which can be used to create resources where required.
- **list_all_maia_flex_connectors** — List Maia flex connector profiles that can be used to create resources where required. Returns: name, icon, logo, endpoints, deleted, deletedTime, lastModified.
- **list_all_maia_scim_groups** — Search Maia SCIM Groups with filtering, sorting, and pagination. Returns each matching group's id and its schema-specific attributes. Max 100 per page.
- **create_a_maia_scim_group** — Create a new SCIM Group in Maia for directory-integration user/group permission management. Returns: accountId, accountName, displayName, environment, externalId, id, members, meta, projectId, projectName, role, schemas. Required: meta.
- **get_single_maia_scim_group_by_id** — Get a single SCIM Group in Maia by id. Returns: accountId, accountName, displayName, environment, externalId, id, members, meta, projectId, projectName, role, schemas. Required: id.
- **update_a_maia_scim_group_by_id** — Update a SCIM Group in Maia by id. Returns: accountId, accountName, displayName, environment, externalId, id, members, meta, projectId, projectName, role, schemas. Required: id, meta.
- **delete_a_maia_scim_group_by_id** — Delete a Maia SCIM Group by its unique id. Returns an empty 204 response on success. Required: id.
- **maia_scim_groups_partial_update** — Update a SCIM group in Maia by sending a SCIM patch Operations array. Returns the updated group including id, displayName, members, role, accountId, and schemas. Required: group_id.
- **list_all_maia_scim_resource_types** — List all SCIM resource types Maia supports for directory-integration user and group permission management. Returns resource type records with id and their SCIM-defined attributes.
- **list_all_maia_scim_schemas** — List all supported SCIM schemas in Maia's directory integration. Returns each schema definition's id plus its schema-specific attributes; the attribute fields are not enumerated in the API reference and vary per SCIM schema.
- **list_all_maia_scim_service_provider_configs** — Get the SCIM Service Provider Configuration in Maia, describing the SCIM service provider's supported features and configuration. Returns the Service Provider Configuration object with SCIM-defined fields; the published spec models the response as an open object without an enumerated field list.
- **list_all_maia_scim_users** — Search SCIM users in Maia with filtering and sorting. Returns: id, attributes. Max 100 per page.
- **create_a_maia_scim_user** — Create a new SCIM User in Maia to manage directory-based permissions. Returns the created user with id, userName, displayName, emails, active, and meta. Requires a SCIM user payload (meta required). Required: meta.
- **get_single_maia_scim_user_by_id** — Get a SCIM User by id in Maia. Returns the user including id, userName, displayName, emails, active, and meta. Required: id.
- **update_a_maia_scim_user_by_id** — Update a SCIM User by id in Maia. Returns the updated user with id, userName, displayName, emails, active, and meta. Required: id, meta.
- **delete_a_maia_scim_user_by_id** — Delete a SCIM user in Maia by id. Returns an empty 204 response on success. Required: id.
- **maia_scim_users_partial_update** — Patch a SCIM user in Maia's directory integration by applying SCIM PatchOp Operations to update user attributes. Returns the updated user object with id, userName, displayName, active, emails, groups, and meta. Required: user_id.
- **list_all_maia_events** — Query Maia audit events within a time range. Returns each event's eventId, eventName, eventType, actorEmail, and eventTimestamp. Required: from, to.
- **list_all_maia_lineage_events** — List OpenLineage lineage events in chronological order within a date range. Returns: id, event. Max 100 per page (default 100). Required: generatedFrom, generatedBefore.
- **list_all_maia_pipeline_executions** — List summarised pipeline executions in Maia, ordered by most recent start time. Returns: environmentName, finishedAt, message, pipelineExecutionId, pipelineName, pipelineType, projectId, scheduleId, startedAt, status, trigger, user. Max 100 per page.
- **create_a_maia_project_pipeline_execution** — Execute a published pipeline in a Maia project. Runs asynchronously and returns pipelineExecutionId for tracking the run. Only one execution per executionTag may run at a time (409 Conflict otherwise). Required: project_id, environmentName, pipelineName. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
- **get_single_maia_project_pipeline_execution_by_id** — Get the details of a pipeline execution in a Maia project by id, including its current status, trigger, timings, and result message. Returns: environmentName, finishedAt, message, pipelineExecutionId, pipelineName, pipelineType, projectId, scheduleId, startedAt, status, trigger, user. Required: id, project_id.
- **update_a_maia_project_pipeline_execution_by_id** — Cancel a running pipeline execution in a Maia project by id, optionally forcing hard termination. Returns pipelineExecutionId on success. Required: id, project_id, forceUpdate, status.
- **get_single_maia_pipeline_execution_status_by_id** — Get the current status of a pipeline execution in Maia. Returns: status. Required: id, project_id.
- **list_all_maia_pipeline_execution_steps** — List the step statuses of a pipeline execution in Maia. Returns each step's id, name, childPipeline, and result. Max 100 per page. Required: project_id, pipeline_execution_id.
- **list_all_maia_pipeline_execution_tasks** — List the tasks of a maia pipeline execution as a flat, paged list covering the root execution and every child execution beneath it. Returns: pipeline, task. Max 100 per page. Required: project_id, pipeline_execution_id.
- **list_all_maia_projects** — List all projects in Maia. Returns: description, id, name. Max 100 records per page.
- **create_a_maia_project** — Create a new project in Maia with a chosen warehouse and runner deployment type. Returns: projectId. Requires name, warehouse, and agentDeploymentType. Required: agentDeploymentType, name, warehouse.
- **delete_a_maia_project_by_id** — Delete a project in maia by its UUID id. Returns an empty 204 response on success. Required: id.
- **list_all_maia_project_artifacts** — List Maia artifacts for a project environment. Returns: branch, commitHash, createdAt, deployedAt, enabled, provider, versionName, ignoredResources. Max 100 records per page. Required: project_id, environmentName.
- **create_a_maia_project_artifact** — Create a Maia artifact by uploading a project's Foundation asset files as multipart parts named by their full relative paths. Returns: ignoredResources, versionName. Only text files are supported. Required: project_id, projectId.
- **maia_project_artifacts_bulk_update** — Enable or disable a Maia artifact version in an environment. Returns: enabled, versionName. Required: project_id, projectId, environmentName, versionName.
- **list_all_maia_artifacts_details** — Get a Maia shared pipeline artifact's metadata and the shared pipelines within a specific version. Returns artifactDetails (sharedPipelineIdPrefix, versionName, createdAt, enabled, commitHash, branch, provider) and sharedPipelines (sharedPipelineId, sourcePipeline, description). If versionName is omitted, the latest version is returned. Required: sharedPipelineIdPrefix.
- **get_single_maia_artifacts_detail_by_id** — Get a Maia project artifact's version details and its packaged asset list by id. Returns the artifact's details (versionName, enabled, createdAt, deployedAt, commitHash, branch, provider) and its assets (name, contentType, contentHash, contentSize, description). Required: id, environmentName.
- **create_a_maia_artifacts_promotion** — Promote a Maia artifact from one environment to another within a project. Returns: environmentName, versionName. Fails if the artifact version has already been promoted to the target environment. Required: project_id, projectId, sourceEnvironmentName, targetEnvironmentName, versionName.
- **list_all_maia_project_connections** — List project connections in a Maia project, optionally filtered by auth provider or connection names. Returns: authProvider, authType, connectionDetails, createdBy, createdDate, name, platformConnectionType, projectId. Required: project_id.
- **create_a_maia_project_connection** — Create a new project connection in a Maia project. Returns: authProvider, authType, connectionDetails, createdBy, createdDate, name, platformConnectionType, projectId. Required: project_id, authType, name, platformConnectionType.
- **maia_project_connections_bulk_update** — Update an existing project connection by name in a Maia project. Performs a full replacement — omitted fields are unset. Returns: authProvider, authType, connectionDetails, createdBy, createdDate, name, platformConnectionType, projectId. Required: project_id, connectionName, authType, platformConnectionType.
- **maia_project_connections_bulk_delete** — Delete a Maia project connection by name. Returns an empty 204 response on success. Required: project_id, connectionName.
- **list_all_maia_connections_environment_overrides** — List Maia project connection overrides that apply in a specific environment. Returns: authProvider, authType, connectionOverrides, createdBy, createdDate, name, platformConnectionType, projectId. Max 100 per page. Required: project_id, environmentName.
- **create_a_maia_connections_environment_override** — Create an environment-specific override for an existing Maia project connection. Returns: authProvider, authType, connectionOverrides, createdBy, and 4 more. Requires project_id, environmentName, connectionName, authType. Returns 409 if the override already exists — use update. Required: project_id, authType, connectionName, environmentName.
- **maia_connections_environment_overrides_bulk_update** — Update an existing environment connection override for a Maia project. Returns: authProvider, authType, connectionOverrides, createdBy, createdDate, and 3 more. Requires project_id, environmentName, connectionName, authType. Returns 404 if the override does not exist — use create. Required: project_id, authType, connectionName, environmentName.
- **maia_connections_environment_overrides_bulk_delete** — Delete environment connection overrides for a Maia project environment by connection names. Returns an empty 204 response on success. Too many connection names may exceed URL length limits. Required: project_id, environmentName, connectionNames.
- **create_a_maia_connections_test** — Test a Maia connection by dispatching a connectivity check against a specific environment; the platform resolves the connection credentials (project-level merged with any environment override) and sends the test to the runner. Returns the test outcome — SUCCESS when the connection is valid, or FAILURE when it is not, together with the reason the….…. Required: project_id, environmentName, connectionName.
- **create_a_maia_project_data_platform_connection** — Create a default data warehouse connection for a Maia project. Supported providers: Snowflake, Redshift, BigQuery, and Databricks. Returns an empty 201 response on success. Required: project_id, authProvider, authType, name, platformConnectionType.
- **list_all_maia_project_environments** — List all environments for a Maia project. Returns: defaultAgentId, defaultAgentName, name. Required: project_id.
- **create_a_maia_project_environment** — Create a new environment in a Maia project, including its default agent, default connections, and per-connection property overrides. Returns an empty response on success — 201 when the environment has been created, 200 when the environment configuration is unchanged since the last update. Requires project_id and a request body with at least name.…. Required: project_id, connectionOverrides, defaultAgentId, defaultConnections, defaultUserAccessLevel, name.
- **delete_a_maia_project_environment_by_id** — Delete a Maia project environment by its name. Returns an empty 204 response on success. Required: id, project_id.
- **list_all_maia_project_published_pipelines** — List all published pipelines in a Maia project. Returns pipeline summary records: name and publishedTime. Required: project_id, environmentName. Page and size are supported for pagination (max size 1000).
- **create_a_maia_project_repository** — Associate a Git repository with a Maia project that has no repository set yet. Returns an empty JSON object on success. Required: project_id, provider, providerParameters, repositoryName.
- **maia_project_repositories_bulk_update** — Update provider parameters, such as a missing Azure DevOps tenantId, on the repository already associated with a Maia project. Returns an empty JSON object on success. GitLab and Bitbucket have no updatable parameters — use the repository token endpoint instead. Required: project_id, provider.
- **create_a_maia_repositories_token** — Rotate the Git provider personal access token for the repository associated with a maia project; the new token is stored in the customer vault. Returns an empty 204 response on success. Required: project_id.
- **list_all_maia_project_repository_migrations** — List repository migrations that have run for a Maia project, newest first, with details of both the source and target repositories. Returns: completedAt, detail, migrationId, mode, sourceCloneUrl, sourceEnterpriseOauthId, sourceName, sourceProvider, startedAt, status, targetCloneUrl, and 3 more. Max 100 per page. Required: project_id.
- **create_a_maia_project_repository_migration** — Start an asynchronous migration of a Git repository into a Maia project's working tree. Returns: migrationId. Runs in the background — poll the status endpoint to track progress; only one migration can run per project at a time. Required: project_id, mode, targetCloneUrl, targetName, targetProvider.
- **get_single_maia_project_repository_migration_by_id** — Get the current status of a repository migration in a Maia project. Returns: detail, migrationId, status. Required: id, project_id.
- **create_a_maia_project_review** — Review the pipelines of a Maia project against configured pipeline quality rules. Returns: excludedFiles, results, reviewStatus. Required: project_id, branchName, commitId, dataWarehouseType.
- **list_all_maia_project_schedules** — List all schedules for a Maia project. Returns each schedule's scheduleId, name, cronExpression, nextRunAt, pipelineName, environmentName, and scheduleEnabled. Max 100 records per page. Required: project_id.
- **create_a_maia_project_schedule** — Create a new schedule for a Maia project, pipeline and environment. Returns the created schedule's scheduleId. Requires project_id, pipeline, and schedule. Required: project_id, pipeline, schedule. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
- **get_single_maia_project_schedule_by_id** — Get a Maia schedule's summary by id within a project. Returns: allowConcurrentExecutions, cronExpression, cronTimezone, effectiveFrom, environmentName, gridVariables, intervalExpression, lastRunAt, name, nextRunAt, pipelineName, runnerId, scalarVariables, scheduleEnabled, scheduleId, versionName. Required: id, project_id.
- **delete_a_maia_project_schedule_by_id** — Delete a schedule in Maia by id within a project. Returns an empty 204 response on success. Required: id, project_id.
- **update_a_maia_project_schedule_by_id** — Update a Maia schedule by id — partial updates are accepted and omitted fields are left unchanged. Returns the updated schedule's scheduleId, name, cronExpression, nextRunAt, pipelineName, and scheduleEnabled. Required: id, project_id. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
- **list_all_maia_project_secret_references** — List all secret references in a Maia project. Returns: description, name, provider, secretKey, secretName, type, vaultName, vaultType, secretReferenceType. Only PASSWORD types are returned unless secretReferenceTypes is specified. Required: project_id.
- **create_a_maia_project_secret_reference** — Create a secret reference in a Maia project for an AWS, Azure, or Matillion-hosted Runner vault. Returns the created reference with agentId, agentType, description, secretReferenceType, and the vault-specific fields for its type. Required: project_id, secret_reference_name, agentType, secretReferenceType.
- **delete_a_maia_project_secret_reference_by_id** — Delete a secret reference from a Maia project. Returns an empty 204 response on success. Required: id, project_id.
- **list_all_maia_project_streaming_pipelines** — List streaming pipeline definitions in a Maia project. Returns: advancedProperties, agentId, name, projectId, streamingPipelineId, streamingSource, streamingTarget. Max 100 records per page. Required: project_id.
- **create_a_maia_project_streaming_pipeline** — Create a streaming pipeline definition in a Maia project. Returns the created definition including streamingPipelineId, name, agentId, streamingSource, and streamingTarget. Required: project_id, projectId, agentId, name, streamingSource, streamingTarget.
- **get_single_maia_project_streaming_pipeline_by_id** — Get a streaming pipeline definition by id in a Maia project. Returns: advancedProperties, agentId, name, projectId, streamingPipelineId, streamingSource, streamingTarget. Required: id, project_id, projectId, streamingPipelineId.
- **update_a_maia_project_streaming_pipeline_by_id** — Update a streaming pipeline definition by id in a Maia project. Returns the updated definition including streamingPipelineId, name, agentId, and 2 more fields. Requires id, project_id, name, agentId, streamingSource, and streamingTarget. Required: id, project_id, agentId, name, streamingSource, streamingTarget.
- **delete_a_maia_project_streaming_pipeline_by_id** — Delete a streaming pipeline definition in a maia account and project. Returns an empty 204 response on success. Required: id, project_id.
- **create_a_maia_streaming_pipeline_command** — Execute a streaming pipeline command in maia, sending a start or stop request to the streaming runner. Returns an empty 202 response on success. A 409 conflict is returned if the command clashes with the pipeline's current status (e.g. starting an already-running pipeline). Required: project_id, streaming_pipeline_id, projectId, streamingPipelineId, command.
- **get_single_maia_streaming_pipeline_status_by_id** — Get a streaming pipeline's status in Maia. Sends a request to the streaming runner and returns the pipeline's current status, message, startedAt, and finishedAt. Required: id, project_id, projectId, streamingPipelineId.
- **create_a_maia_project_test_execution** — Create test executions for a Maia project. Returns: testExecutionId. Required: project_id, environmentName, scope. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
- **get_single_maia_project_test_execution_by_id** — Get the status of an executed test in a Maia project. Returns the execution status payload including results, page, size, total, pipelineName, environmentName, and executionTag. Required: id, project_id.
- **update_a_maia_project_test_execution_by_id** — Cancel a test execution in a Maia project, optionally forcing termination. Returns: testExecutionId. Required: id, project_id, forceUpdate, status.
- **list_all_maia_test_executions** — List Maia test executions ordered by start time, most recent first. Returns: environmentName, finishedAt, message, projectId, scheduleId, startedAt, status, testExecutionId, testName, trigger, user. Max 100 per page.
- **list_all_maia_project_variables** — List all project variables for a Maia project. Returns: behaviour, description, id, name, supportsDoubleResolution, type, value. Required: project_id.
- **create_a_maia_project_variable** — Create a new project variable in a Maia project. Returns: id, name, value. Required: project_id, behaviour, name, type.
- **maia_project_variables_bulk_update** — Update a project variable with the provided properties in maia. Returns an empty 204 response on success. Requires project_id and variable_name; the body must include type and behaviour even when unchanged, and may also set description, value, and supportsDoubleResolution. Required: project_id, variable_name, behaviour, type.
- **maia_project_variables_bulk_delete** — Delete a project variable by name in maia. Returns an empty 204 response on success. Requires project_id and variable_name. Required: project_id, variable_name.
- **list_all_maia_variable_environment_overrides** — List environment-level overrides for a project variable in Maia. Returns the variable (id, name, type) and its per-environment overrides (environmentName, value). Required: project_id, variable_name.
- **create_a_maia_variable_environment_override** — Create or update environment-level overrides for a project variable in Maia. Returns: failedOverrides, successfulOverrides, type, variableName, overrides, variable. Required: project_id, variable_name, overrides.
- **maia_variable_environment_overrides_bulk_delete** — Delete a Maia project variable's environment-level override for a specific environment. Returns an empty 204 response on success. Required: project_id, variable_name, environment_name.
- **create_a_maia_secret_secret_value** — Create a new secret value for a maia agent; the value is encrypted in transit with the Runner's certificate, then decrypted by the Runner and stored in the customer vault. Returns: resolver_ref, vaultSecretName. Secret names must be unique within the target vault location. Required: agent_id, secret.
- **list_all_maia_shared_pipelines** — List published shared pipelines in Maia, paginated across all namespaces the account can access. Returns: name, publishedTime. Max 100 records per page.
- **list_all_maia_shared_pipelines_artifacts** — List published shared pipeline artifacts in Maia. Returns: branch, commitHash, createdAt, enabled, provider, sharedPipelineIdPrefix, versionName, ignoredResources, pipelineName, environmentName. Filter by sharedPipelineIdPrefix, sharedPipelineId, versionName, or enabledOnly; supports sorting.
- **create_a_maia_shared_pipelines_artifact** — Publish a shared pipeline artifact to Maia as a multipart upload for a pipeline group and version. Returns: ignoredResources, versionName, pipelineName, environmentName.
- **maia_shared_pipelines_artifacts_bulk_update** — Enable or disable a specific version of a shared pipeline artifact in Maia. Returns: enabled, versionName, pipelineName, environmentName. Requires enabled, sharedPipelineIdPrefix, and versionName. Required: enabled, sharedPipelineIdPrefix, versionName.
- **list_all_maia_agents_task_messages** — List the events exchanged with a Maia AI agent task in chronological order to follow the agent's reasoning and collect its output. Returns: data, groupId, timestamp. Required: task_id. Max 1000 per page.
- **create_a_maia_agents_task_message** — Send a follow-up message to a Maia AI agent task, resuming agent execution. Returns: taskId. Required: task_id, message.
- **list_all_maia_project_artifact_details** — Get artifact details for a Maia project by version name. Returns: assets, details, page, results, size, total. Required: project_id, environmentName.

## How it works

1. **Link your customer's Maia account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Maia.** The Proxy API is a 1-to-1 mapping of the Maia API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed Maia pipeline triggers into your SaaS workflows** — Let your customers trigger Maia data pipelines directly from your product when a business event occurs — like a new customer segment, a closed deal, or a fresh data upload — without them switching tools or waiting on nightly cron jobs.
- **Build data observability and lineage on top of Maia** — Catalog, observability, and governance platforms can ingest Maia's OpenLineage events and pipeline execution metadata to render end-to-end data provenance graphs and auto-halt pipelines when downstream anomalies are detected.
- **Deliver human-in-the-loop ChatOps for Maia agents** — Collaboration and DataOps tools can surface paused Maia agent tasks that need human approval and send decisions back to Maia, so engineers resolve ambiguities without leaving your product.
- **Unify FinOps reporting across the data stack** — Cloud cost and FinOps platforms can pull Maia consumption data per user and per day, merge it with warehouse and cloud spend, and attribute pipeline costs to specific teams or integrations.
- **Automate identity and access governance for Maia** — IAM, HRIS, and compliance tools can provision and deprovision Maia users and groups via SCIM, enforcing least-privilege access and generating an auditable trail of changes.

## What you can build

- **On-demand pipeline execution with live status** — Trigger batch or streaming Maia pipelines from your UI and stream back real-time execution status, steps, and tasks so users see progress inline.
- **Lineage graph ingestion** — Continuously pull Maia lineage events to render column- and dataset-level lineage inside your catalog or observability product.
- **Agent task inbox with approval actions** — Surface pending Maia agent tasks and their messages in your product, letting users submit decisions or replies that unblock autonomous agents in real time.
- **CI/CD promotion workflows** — Orchestrate Maia artifact creation, variable overrides, and environment promotions from Staging to Production based on Git PR approvals or release events in your platform.
- **Consumption and chargeback dashboards** — Visualize Maia credit consumption by user, project, and day to power internal chargeback, budget alerts, and ROI reports.
- **SCIM-driven user and group lifecycle** — Provision, update, and deprovision Maia SCIM users and groups automatically as employees join, change roles, or leave.

## FAQs

### What Maia resources can I access through Truto today?

Truto exposes Maia projects, pipeline executions and their steps/tasks, streaming pipelines, agents and agent tasks, task decisions and messages, artifacts and promotions, environments, schedules, variables and overrides, secret references, repositories, connections, lineage events, consumption data, and SCIM users and groups.

### Can I trigger and monitor Maia pipelines programmatically?

Yes. You can create pipeline executions on a project, fetch execution status, and list execution steps and tasks to monitor progress. Streaming pipelines are supported with dedicated commands and a status endpoint.

### How do I handle Maia's human-in-the-loop agent tasks?

You can list agent tasks, fetch a single task by ID to inspect pending decisions, read and post task messages, and submit a decision via the task decision endpoint to resume the agent — all through Truto.

### Does the integration support SCIM for user provisioning?

Yes. Maia's SCIM users, groups, resource types, schemas, and service provider configs are all accessible, including create, update, partial update, and delete operations for both users and groups.

### Can I promote artifacts between Maia environments?

Yes. You can list projects and environments, manage artifacts and their details, and trigger artifact promotions, along with managing environment-specific variable and connection overrides for CI/CD workflows.

### How does authentication work for end users connecting their Maia account?

Truto handles the Maia auth handshake, token storage, and refresh on your behalf. Your users connect their Maia account once through Truto's connect flow, and your app calls a single unified interface without managing credentials per customer.

### Can I track Maia consumption and events for FinOps or audit use cases?

Yes. You can list Maia consumption records and consumption ETL users for cost reporting, and list Maia events for audit and compliance trails.

## Related reading

- [Connect Maia to ChatGPT: Manage AI Runners and Data Pipelines](https://truto.one/blog/connect-maia-to-chatgpt-manage-ai-runners-and-data-pipelines/) — Learn how to connect Maia to ChatGPT using Truto's auto-generated MCP servers. Automate AI runners, execute data pipelines, and manage human-in-the-loop decisions.
- [Connect Maia to Claude: Automate Agent Tasks and Project Workflows](https://truto.one/blog/connect-maia-to-claude-automate-agent-tasks-and-project-workflows/) — Learn how to build a managed MCP server to connect Maia's AI agents, pipeline executions, and SCIM directory directly to Claude for automated workflows.
- [Connect Maia to AI Agents: Deploy Runners and Orchestrate Environments](https://truto.one/blog/connect-maia-to-ai-agents-deploy-runners-and-orchestrate-environments/) — Learn how to connect Maia to AI Agents using Truto's /tools endpoint. A step-by-step architecture guide for deploying runners and orchestrating pipelines.
