{
  "openapi": "3.0.1",
  "info": {
    "title": "Make.com Scenario Backup & GitOps - Blueprints",
    "description": "Back up every Make.com scenario blueprint on a schedule — plus connections, webhooks, data stores, data structures and custom variables. Get one row per resource showing what changed since the last run, a module-level diff, full JSON in a permanent store, and a commit pushed to your own Git repo.",
    "version": "1.0",
    "x-build-id": "8KGNESQG602zvr6Mo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mediocre_interest~make-scenario-backup/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mediocre_interest-make-scenario-backup",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/mediocre_interest~make-scenario-backup/runs": {
      "post": {
        "operationId": "runs-sync-mediocre_interest-make-scenario-backup",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/mediocre_interest~make-scenario-backup/run-sync": {
      "post": {
        "operationId": "run-sync-mediocre_interest-make-scenario-backup",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "blueprintJson": {
            "title": "Scenario blueprint",
            "type": "object",
            "description": "Paste one scenario blueprint, or a list of them, to back up without connecting an account. Works with the designer's Export Blueprint file, a template export, or an API blueprint response. Leave this and the API token as they are to try the Actor on the built-in sample."
          },
          "makeZone": {
            "title": "Make zone",
            "enum": [
              "eu1",
              "eu2",
              "us1",
              "us2",
              "eu1.make.celonis",
              "us1.make.celonis"
            ],
            "type": "string",
            "description": "The zone your Make account lives in. It is the first part of your Make URL - eu1.make.com is eu1. You can paste a Make page URL and the zone is read out of it.",
            "default": "eu1"
          },
          "makeApiToken": {
            "title": "Make API token",
            "type": "string",
            "description": "Create one in Make under Profile > API access > Add token. Ten read-only scopes cover a full backup: scenarios:read, organizations:read, teams:read, connections:read, datastores:read, udts:read, hooks:read, keys:read, organization-variables:read, team-variables:read. This Actor never asks for a write scope and never changes anything in your account."
          },
          "organizationIds": {
            "title": "Organization IDs",
            "type": "array",
            "description": "Back up this organization. Leave empty and the run backs up the first organization the token can see, and names any others in the run summary. Each run covers one organization, so an account with several is scheduled once per organization - that way each keeps its own separate history.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "teamIds": {
            "title": "Team IDs",
            "type": "array",
            "description": "Back up only these teams. Leave empty to back up every team, private spaces included.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "scenarioIds": {
            "title": "Scenario IDs",
            "type": "array",
            "description": "Back up only these scenarios. Leave empty to back up every scenario.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "include": {
            "title": "Resources",
            "type": "array",
            "description": "Which parts of the account to back up.",
            "items": {
              "type": "string",
              "enum": [
                "scenarios",
                "connections",
                "customVariables",
                "dataStores",
                "dataStructures",
                "hooks",
                "keys",
                "scenarioFolders"
              ],
              "enumTitles": [
                "Scenario blueprints",
                "Connections (names and types, never secrets)",
                "Custom variables (paid Make plans)",
                "Data stores (names and sizes)",
                "Data structures (full field schema)",
                "Webhooks",
                "Keys (names and types, never secrets)",
                "Scenario folders"
              ]
            },
            "default": [
              "scenarios",
              "connections",
              "customVariables",
              "dataStores",
              "dataStructures",
              "hooks",
              "keys",
              "scenarioFolders"
            ]
          },
          "backupStoreName": {
            "title": "Backup store name",
            "type": "string",
            "description": "Name of the key-value store holding your snapshots and version history. Use a different name for each Make account you back up.",
            "default": "make-scenario-backup"
          },
          "seedVersionHistory": {
            "title": "Seed past versions on the first run",
            "type": "boolean",
            "description": "Also store the older blueprint versions Make still has. Make keeps at most 60 days of versions, so this is a one-off chance to capture what exists before it is archived away. It makes the first run considerably longer.",
            "default": false
          },
          "maxVersionsPerScenario": {
            "title": "Past versions per scenario",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "How many older versions to store for each scenario when seeding is on. Make keeps at most 60 days of history, so higher values simply capture whatever is there.",
            "default": 10
          },
          "gitRemoteUrl": {
            "title": "Repository URL",
            "type": "string",
            "description": "HTTPS URL of the repository to commit backups to - for example https://github.com/you/make-backups. You can paste the repository page from your browser and the address is tidied up for you. GitHub, GitLab and GitLab subgroups all work, and an empty repository is fine: the first run initialises it and creates the branch. SSH remotes (git@...) are not supported. Leave empty to skip Git."
          },
          "gitToken": {
            "title": "Git access token",
            "type": "string",
            "description": "Token allowed to push to that repository. On GitHub, a fine-grained token with Contents: read and write, or a classic token with the \"repo\" scope. On GitLab, a personal, group or project access token with the \"write_repository\" scope. It is stored as a secret and never appears in the output."
          },
          "gitBranch": {
            "title": "Branch",
            "type": "string",
            "description": "Branch to commit to. It is created by the first run if the repository is new and empty.",
            "default": "main"
          },
          "gitPath": {
            "title": "Directory in the repository",
            "type": "string",
            "description": "Directory inside the repository the backup is written into, for example make/. Enter a single \"/\" to write to the repository root. Anything outside this directory is left alone, so an existing repository with a README or other files is safe.",
            "default": "make/"
          },
          "gitRedaction": {
            "title": "What to hide from the repository",
            "enum": [
              "standard",
              "strict"
            ],
            "type": "string",
            "description": "Standard always removes custom variable values and the names and email addresses of whoever edited a scenario. Strict also replaces anything in a scenario that looks like an API key or password, which is safer for a public repository but means the committed copy can no longer be restored as-is. The copy kept in your Apify key-value store is always complete.",
            "default": "standard"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}