{
  "openapi": "3.0.1",
  "info": {
    "title": "Design Rush Outreach Bot (Scraper + Automatic Message Sender)",
    "description": "Automates personalized outreach for design projects, enabling faster and smarter client connections.\nFrom prospect research to tailored messaging and response tracking, it streamlines your entire outreach workflow.\nBuilt to save time, improve engagement, and boost conversion rates effortlessly.",
    "version": "0.0",
    "x-build-id": "nAQFNopelU6KbqIPH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/techforce.global~design-rush--outreach-bot/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-techforce.global-design-rush--outreach-bot",
        "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/techforce.global~design-rush--outreach-bot/runs": {
      "post": {
        "operationId": "runs-sync-techforce.global-design-rush--outreach-bot",
        "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/techforce.global~design-rush--outreach-bot/run-sync": {
      "post": {
        "operationId": "run-sync-techforce.global-design-rush--outreach-bot",
        "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": {
          "category": {
            "title": "Agency Category",
            "enum": [
              "website-design-development",
              "software-development",
              "digital-marketing",
              "mobile-app-design-development",
              "search-engine-optimization",
              "ui-ux-design",
              "ecommerce",
              "logo-branding",
              "ai-companies",
              "web-development-companies"
            ],
            "type": "string",
            "description": "Which DesignRush category to scrape",
            "default": "website-design-development"
          },
          "filterName": {
            "title": "Filter by Agency Name",
            "type": "string",
            "description": "Case-insensitive partial match on agency name. Leave blank to include all. E.g. 'techforce' matches 'Techforce Global', 'TechForce Inc', etc.",
            "default": ""
          },
          "filterLocation": {
            "title": "Filter by Location",
            "type": "string",
            "description": "Case-insensitive partial match on agency location. Leave blank to include all. E.g. 'new york' matches 'New York, NY', 'New York City', etc.",
            "default": ""
          },
          "maxRecords": {
            "title": "Total records required",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Max agencies to collect after filtering (1 - 100)",
            "default": 10
          },
          "maxPages": {
            "title": "Max pages to scrape",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on listing pages to visit. Increase this when filtering by name/location so the scraper searches across more pages.",
            "default": 3
          },
          "scrapeProfiles": {
            "title": "Scrape Profile Pages",
            "type": "boolean",
            "description": "If enabled, visits each agency's profile page to collect reviews, services, team members and clients.",
            "default": true
          },
          "profileDelay": {
            "title": "Delay between profile visits (seconds)",
            "minimum": 0,
            "maximum": 60,
            "type": "number",
            "description": "How long to wait between agency profile pages. Only used when \"Scrape Profile Pages\" is on. Raise it to be gentler on DesignRush; lower it to finish faster.",
            "default": 2
          },
          "contactMode": {
            "title": "Contact Mode",
            "enum": [
              "payload",
              "submit",
              "none"
            ],
            "type": "string",
            "description": "payload = extract form data for n8n. submit = auto-submit via browser. none = skip contact.",
            "default": "none"
          },
          "contactName": {
            "title": "Your Name",
            "type": "string",
            "description": "Name to use in the contact form. If omitted, contact forms will be skipped.",
            "default": ""
          },
          "contactEmail": {
            "title": "Your Email",
            "type": "string",
            "description": "Email address to use in the contact form.",
            "default": ""
          },
          "contactCompany": {
            "title": "Your Company Name",
            "type": "string",
            "description": "Company name to use in the contact form.",
            "default": ""
          },
          "contactPhone": {
            "title": "Your Phone Number",
            "type": "string",
            "description": "Phone number to use in the contact form.",
            "default": ""
          },
          "contactWebsite": {
            "title": "Your Website",
            "type": "string",
            "description": "Website URL to include in the contact form (optional).",
            "default": ""
          },
          "contactMessage": {
            "title": "Contact Message",
            "type": "string",
            "description": "Message body to send to each agency.",
            "default": "Hi, I'd like to discuss a potential project with your team."
          },
          "sendCopy": {
            "title": "Send copy to my email",
            "type": "boolean",
            "description": "Check the 'send me a copy' box on the contact form.",
            "default": false
          },
          "newsletter": {
            "title": "Subscribe to the DesignRush newsletter",
            "type": "boolean",
            "description": "Ticks the newsletter opt-in box on the agency contact form. Only used when contact details are supplied and the contact mode is not \"none\".",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The proxy is only applied when \"Use Apify Proxy\" is enabled here; otherwise the browser uses a direct connection. Enable it if DesignRush starts serving empty pages or blocking the run.",
            "default": {
              "useApifyProxy": false
            }
          },
          "mcpConnector": {
            "title": "Deliver to (MCP connector)",
            "type": "string",
            "description": "Optionally deliver the scraped agencies into a connector you have authorized - Notion, Slack, Airtable, HubSpot, Google Sheets, Linear, Jira, GitHub, or any MCP-compatible connector. Leave empty to only save the results to the dataset."
          },
          "deliveryMode": {
            "title": "Delivery mode",
            "enum": [
              "perAgency",
              "chunked",
              "summary",
              "none"
            ],
            "type": "string",
            "description": "How to deliver to the connector: 'perAgency' (one call per agency - best for a CRM row/record/issue each), 'chunked' (split a long agency list across a few calls so services like Notion never time out), 'summary' (one call listing every agency), or 'none' (save to dataset only).",
            "default": "perAgency"
          },
          "mcpTool": {
            "title": "Connector tool name",
            "type": "string",
            "description": "Name of the tool to call on the connector (e.g. 'create_page' for Notion, 'send_message' for Slack, 'create_record' for Airtable, 'create_issue' for Jira/GitHub). If unsure, run once with a connector selected - the log lists the connector's available tools.",
            "default": ""
          },
          "mcpArguments": {
            "title": "Connector tool arguments",
            "type": "object",
            "description": "Arguments passed to the connector tool. String values support {placeholders}. In 'perAgency' mode: {name}, {website}, {profileLink}, {location}, {rating}, {hourlyRate}, {employees}, {slogan}, {description}, {services}, {clients}, {reviewCount}, {serviceCount}, {teamCount}, {clientCount}, {contactSubmitted}, {agency} (a formatted multi-line block) and {message} (the rendered template below). In 'summary'/'chunked' modes: {agencyCount}, {category}, {agencies} (all agencies formatted as a list, or one part of it in chunked mode), {part}/{partCount} (chunked mode only) and {message}. Example for Airtable: {\"fields\": {\"Agency\": \"{name}\", \"Website\": \"{website}\", \"Rating\": \"{rating}\"}}. Example for Slack: {\"channel\": \"#agency-leads\", \"text\": \"{message}\"}.",
            "default": {}
          },
          "mcpMessageTemplate": {
            "title": "Message template",
            "type": "string",
            "description": "Optional template rendered and exposed as the {message} placeholder in the tool arguments. Per-agency example: '{name} ({location}) - {rating}, {hourlyRate} - {website}'. Summary example: '{agencyCount} {category} agencies:\n\n{agencies}'.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}