{
  "openapi": "3.0.1",
  "info": {
    "title": "SEMrush Content Gap Analysis - Find Missing Keywords",
    "description": "Find content gaps with live SEMrush data. No key needed: built-in access returns up to 10 gap keywords per run, and your own Semrush API key unlocks up to 500. See keywords competitors rank for that you don't, and where you rank lower.\nMissing Keywords\nWeak Keywords\nUntapped Keywords",
    "version": "1.3",
    "x-build-id": "bh2Ink3aWe0lIxxXa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alizarin_refrigerator-owner~semrush-content-gap-analysis---find-missing-keywords/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alizarin_refrigerator-owner-semrush-content-gap-analysis---find-missing-keywords",
        "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/alizarin_refrigerator-owner~semrush-content-gap-analysis---find-missing-keywords/runs": {
      "post": {
        "operationId": "runs-sync-alizarin_refrigerator-owner-semrush-content-gap-analysis---find-missing-keywords",
        "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/alizarin_refrigerator-owner~semrush-content-gap-analysis---find-missing-keywords/run-sync": {
      "post": {
        "operationId": "run-sync-alizarin_refrigerator-owner-semrush-content-gap-analysis---find-missing-keywords",
        "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": {
          "semrushApiKey": {
            "title": "SEMrush API Key",
            "type": "string",
            "description": "Optional. Your own SEMrush API key (SEMrush -> My Profile -> API). Leave empty to use the actor's built-in access, billed per event, which returns up to 10 gap keywords per run. Add your own Semrush API key for up to 500 keywords."
          },
          "yourDomain": {
            "title": "Your Domain",
            "type": "string",
            "description": "Your domain to analyze gaps for (e.g., apify.com)"
          },
          "competitors": {
            "title": "Competitor Domains",
            "type": "array",
            "description": "Competitor domains to compare against (up to 4)",
            "items": {
              "type": "string"
            }
          },
          "database": {
            "title": "Database",
            "enum": [
              "us",
              "uk",
              "ca",
              "au",
              "de",
              "fr",
              "es",
              "it",
              "br",
              "mx",
              "ru",
              "pl",
              "nl",
              "be",
              "se",
              "no",
              "dk",
              "fi",
              "ie",
              "at",
              "ch",
              "pt",
              "gr",
              "tr",
              "il",
              "ae",
              "za",
              "in",
              "jp",
              "kr"
            ],
            "type": "string",
            "description": "SEMrush database/country to use for data",
            "default": "us"
          },
          "gapType": {
            "title": "Gap Type",
            "enum": [
              "missing",
              "weak",
              "untapped",
              "all"
            ],
            "type": "string",
            "description": "Type of content gap to find",
            "default": "missing"
          },
          "keywordLimit": {
            "title": "Keyword Limit",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Max gap keywords to return. Up to 500 with your own Semrush API key; runs on the actor's built-in access return up to 10.",
            "default": 100
          },
          "minVolume": {
            "title": "Minimum Search Volume",
            "minimum": 0,
            "type": "integer",
            "description": "Filter keywords below this monthly volume",
            "default": 100
          },
          "maxDifficulty": {
            "title": "Maximum Keyword Difficulty",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Filter keywords above this difficulty (0-100)",
            "default": 70
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional webhook URL to send results (Zapier, Make, n8n, or custom)"
          },
          "webhookPlatform": {
            "title": "Webhook Platform",
            "enum": [
              "zapier",
              "make",
              "n8n",
              "custom"
            ],
            "type": "string",
            "description": "Select your webhook platform for optimized payload formatting",
            "default": "custom"
          },
          "demoMode": {
            "title": "Demo Mode",
            "type": "boolean",
            "description": "Return sample data without using SEMrush API (for testing)",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}