{
  "openapi": "3.0.1",
  "info": {
    "title": "Clutch.co Agency API: B2B Company Data, Directory & Reviews",
    "description": "Company data API for Clutch.co, the B2B directory of agencies and service providers. Build a marketing agency database with ratings, pricing, service mix, team size, locations and every verified client review, returned as JSON plus LLM-ready markdown. Pay per row, MCP-ready for Claude and AI agents.",
    "version": "1.0",
    "x-build-id": "eA3ovyqTOaM4qZtI3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/johnvc~clutch-agency-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-johnvc-clutch-agency-api",
        "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/johnvc~clutch-agency-api/runs": {
      "post": {
        "operationId": "runs-sync-johnvc-clutch-agency-api",
        "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/johnvc~clutch-agency-api/run-sync": {
      "post": {
        "operationId": "run-sync-johnvc-clutch-agency-api",
        "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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "What do you want to collect?",
            "enum": [
              "directory",
              "profiles",
              "search"
            ],
            "type": "string",
            "description": "Directory mode walks a Clutch category or location page and returns one row per listed company. Profiles mode collects specific companies in full, with their client reviews. Search mode runs a keyword query and then collects the companies it finds.",
            "default": "directory"
          },
          "directoryUrls": {
            "title": "Directory URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Clutch category, location, or industry pages. Any Clutch directory path works, for example https://clutch.co/web-developers or https://clutch.co/us/agencies/digital-marketing/chicago. Each company row is charged once. Need larger batches? Contact us and we can raise this limit for your account.",
            "items": {
              "type": "string"
            }
          },
          "maxPagesPerDirectory": {
            "title": "Pages per directory",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many result pages to read per directory URL. Each page carries about 50 companies. Pages are fetched only up to this limit, so raising it is what increases both results and cost.",
            "default": 1
          },
          "profileUrls": {
            "title": "Company profile URLs",
            "maxItems": 500,
            "type": "array",
            "description": "Clutch company profiles to collect in full, for example https://clutch.co/profile/ignite-visibility. A bare slug such as ignite-visibility also works. Need larger batches? Contact us and we can raise this limit for your account.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords",
            "maxItems": 20,
            "type": "array",
            "description": "Free-text queries run against Clutch search, for example \"shopify development\" or \"healthcare branding\". Matching companies are then collected as full profiles.",
            "items": {
              "type": "string"
            }
          },
          "includeReviews": {
            "title": "Include client reviews",
            "type": "boolean",
            "description": "Return every verified client review for each company as its own row, with project size, project length, sub-ratings, reviewer role, and summaries. Applies to profile and search modes.",
            "default": true
          },
          "maxReviewsPerProfile": {
            "title": "Maximum reviews per company",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Upper bound on reviews collected per company. The first page of a profile already carries about 40 reviews at no extra cost; higher values page deeper and cost more.",
            "default": 100
          },
          "outputFormats": {
            "title": "Output formats",
            "uniqueItems": true,
            "type": "array",
            "description": "JSON gives structured fields. Markdown adds Clutch's own LLM-ready markdown for the page, which costs nothing extra and is ideal for RAG and AI agents. HTML adds the raw page source and costs one additional request per company.",
            "items": {
              "type": "string",
              "enum": [
                "json",
                "markdown",
                "html"
              ],
              "enumTitles": [
                "JSON (structured fields)",
                "Markdown (LLM-ready)",
                "Raw HTML (extra request)"
              ]
            },
            "default": [
              "json",
              "markdown"
            ]
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Overall cap on rows returned by this run, across listings, profiles, and reviews. Use it as a hard spend ceiling.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}