{
  "openapi": "3.0.1",
  "info": {
    "title": "Apifyactors",
    "version": "0.0",
    "x-build-id": "03xz8BJKemuVN34TP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deliberate_offspring~apifyactors/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deliberate_offspring-apifyactors",
        "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/deliberate_offspring~apifyactors/runs": {
      "post": {
        "operationId": "runs-sync-deliberate_offspring-apifyactors",
        "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/deliberate_offspring~apifyactors/run-sync": {
      "post": {
        "operationId": "run-sync-deliberate_offspring-apifyactors",
        "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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Target URLs (Destination Websites)",
            "type": "array",
            "description": "The web pages you want to visit and drive traffic to. In SERP mode, you can also specify a custom search query per URL (e.g. {\"url\": \"https://...\", \"serpQuery\": \"dog breeds chart\"}).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "trafficSource": {
            "title": "Traffic Source Mode",
            "enum": [
              "referrer",
              "serp_google",
              "backlink",
              "direct"
            ],
            "type": "string",
            "description": "Choose how to drive traffic:\n• Simulated Referral (Recommended & 100% Reliable): Navigates directly to your target URLs with authentic HTTP Referer headers (Google Organic Search, Bing, Social, Reddit, Medium). Classified as Organic Search in GA4 and ad networks.\n• Google SERP: Attempts live Google search on google.com and clicks the organic result (requires clean residential proxies; falls back fast to direct visit with Google referrer if Google drops connection).\n• Backlink Traffic: Navigates to a physical source page (e.g. Medium, Reddit, LinkedIn) and clicks your link.\n• Direct Traffic: Clean direct visit without any referrer header.",
            "default": "referrer"
          },
          "referrerSource": {
            "title": "Referrer Preset / Source",
            "enum": [
              "preset_search",
              "preset_social",
              "preset_blogs",
              "custom"
            ],
            "type": "string",
            "description": "Only used when Traffic Source is 'Simulated Referral Traffic'. Choose a pool of high-authority referrers to rotate, or choose 'Custom' to enter specific URLs.",
            "default": "preset_search"
          },
          "customReferrers": {
            "title": "Custom Referrer URL(s) (Optional)",
            "type": "string",
            "description": "Enter one or more custom referrer URLs (comma or newline separated). E.g. your Medium post: https://medium.com/@username/post-slug. When specified, sessions will simulate arriving from these pages without ever hitting their servers.",
            "default": ""
          },
          "serpCustomQuery": {
            "title": "SERP Global Custom Search Query (Optional)",
            "type": "string",
            "description": "Only used in Google SERP mode when a URL does not have its own specific query. Leave blank to automatically search 'site:{targetUrl}'. Or enter custom keywords (e.g. 'Dog Breeds Chart' or 'site:dailydogguide.com').",
            "default": ""
          },
          "serpQueryList": {
            "title": "Per-URL Search Queries (One per line - Optional)",
            "type": "string",
            "description": "Enter individual Google search queries for your URLs (one per line). Line 1 applies to URL 1, Line 2 to URL 2, etc.\nAlternatively, format each line as: URL | Query (e.g. https://site.com/puppy | 'Puppy Training Schedule' site:site.com).",
            "default": ""
          },
          "serpFallbackToDirect": {
            "title": "Fallback to Direct on SERP Block / Failure",
            "type": "boolean",
            "description": "If disabled (recommended for pure organic SERP traffic packages), sessions that hit Google CAPTCHAs or fail to find the organic link will be retried with fresh proxies or failed, ensuring you deliver only 100% genuine Google SERP clicks. If enabled, it falls back to a direct visit with a Google referrer header.",
            "default": false
          },
          "serpMaxRetries": {
            "title": "Max SERP Retries (per session)",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry a Google SERP session on CAPTCHA or timeout before marking it as failed. Separate from 'Max Retries' (network errors). Default: 3. Increase for stubborn proxies; lower to save proxy bandwidth on difficult IPs.",
            "default": 3
          },
          "backlinkUrl": {
            "title": "Backlink Source Page URL (Optional)",
            "type": "string",
            "description": "Only used when Traffic Source is 'Backlink Traffic'. Enter the URL of the external page (e.g. Medium, Reddit, LinkedIn, forum post) where your link is published. The Actor will open this page first and click the link to reach your Target URL.",
            "default": ""
          },
          "backlinkAnchorText": {
            "title": "Link Anchor Text (Optional)",
            "type": "string",
            "description": "The visible text of your link on the backlink page (e.g. 'Read More' or 'Dog Breeds Chart'). If left empty, the Actor automatically finds and clicks any link pointing to your Target URL.",
            "default": ""
          },
          "deviceType": {
            "title": "Device & Browser Profile",
            "enum": [
              "random",
              "desktop-random",
              "mobile-random",
              "desktop-chrome",
              "desktop-firefox",
              "desktop-safari",
              "desktop-edge",
              "mobile-android",
              "mobile-ios"
            ],
            "type": "string",
            "description": "Choose the browser and device profile to emulate. Matches viewport, touch events, platform headers, and user-agent strings.",
            "default": "random"
          },
          "customUserAgent": {
            "title": "Custom User-Agent Override (Optional)",
            "type": "string",
            "description": "Leave empty to use the realistic device profiles above. Or paste an exact custom User-Agent string to override.",
            "default": ""
          },
          "dwellTimeMinSeconds": {
            "title": "Landing Page Min Dwell Time (seconds)",
            "minimum": 3,
            "maximum": 600,
            "type": "integer",
            "description": "Minimum seconds to spend interacting and reading the landing page.",
            "default": 15
          },
          "dwellTimeMaxSeconds": {
            "title": "Landing Page Max Dwell Time (seconds)",
            "minimum": 5,
            "maximum": 600,
            "type": "integer",
            "description": "Maximum seconds to spend on the landing page. A random duration between min and max is chosen per session for organic variance.",
            "default": 35
          },
          "scrollBehavior": {
            "title": "Scroll & User Activity Pattern",
            "enum": [
              "human-random",
              "slow-linear",
              "none"
            ],
            "type": "string",
            "description": "Human-like scroll pauses, reverses slightly (reading behavior), and moves the mouse cursor randomly.",
            "default": "human-random"
          },
          "enableInternalNavigation": {
            "title": "Navigate Internal Pages (Deep Browsing)",
            "type": "boolean",
            "description": "After landing on the target page, should the browser discover and click internal links to simulate multi-page visitor sessions?",
            "default": true
          },
          "maxInternalPages": {
            "title": "Max Internal Pages to Visit",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many internal pages deep to explore per session (e.g. 1-3). Increases session duration and reduces bounce rate in analytics.",
            "default": 2
          },
          "internalPageDwellMinSeconds": {
            "title": "Internal Page Min Dwell (seconds)",
            "minimum": 3,
            "maximum": 300,
            "type": "integer",
            "description": "Minimum dwell time spent reading each visited internal page.",
            "default": 10
          },
          "internalPageDwellMaxSeconds": {
            "title": "Internal Page Max Dwell (seconds)",
            "minimum": 5,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum dwell time spent on each internal page.",
            "default": 25
          },
          "totalVisits": {
            "title": "Total Target Visits (Package Volume)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Total number of visits to deliver across all target URLs (e.g. 500, 1000, 5000). The Actor distributes visits evenly and interleaved across your URLs. If set, this overrides 'Repeat Visits (per URL)'."
          },
          "repeatVisits": {
            "title": "Repeat Visits (per URL)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Number of browser sessions per URL. Only used if 'Total Target Visits' is not set.",
            "default": 1
          },
          "maxConcurrentSessions": {
            "title": "Max Concurrent Sessions",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Number of browser sessions running in parallel (Default: 1, Max: 5). SERP mode automatically caps at 2-3 to protect against proxy bans and container memory limits.",
            "default": 1
          },
          "navigationTimeoutSeconds": {
            "title": "Navigation Timeout (seconds)",
            "minimum": 10,
            "maximum": 180,
            "type": "integer",
            "description": "Maximum time for each page to load before timing out.",
            "default": 60
          },
          "waitAfterNavigationSeconds": {
            "title": "Extra Wait for Ad & Analytics Scripts (seconds)",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Additional wait after page load for analytics and ad scripts to inject their content.",
            "default": 5
          },
          "maxRunDurationSeconds": {
            "title": "Max Total Actor Runtime (seconds)",
            "minimum": 60,
            "maximum": 86400,
            "type": "integer",
            "description": "Hard limit for the entire Actor run. Increase for large traffic orders (e.g. 3600 for 1h, 86400 for 24h). Remaining sessions are skipped if reached.",
            "default": 3600
          },
          "maxRetries": {
            "title": "Max Retries",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "Times to retry on transient network errors.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Supports Apify Datacenter/Residential proxies or your own Custom Proxies (e.g. Bright Data, Smartproxy, Webshare, Oxylabs).\n• For 'Simulated Referral Traffic', datacenter proxies or no proxy work 100% reliably.\n• For live Google SERP, clean dedicated/private residential proxies are recommended to prevent Google dropping the connection.",
            "default": {}
          },
          "captureScreenshots": {
            "title": "Capture Screenshots",
            "type": "boolean",
            "description": "Save JPEG screenshots before and after scrolling, plus internal pages, in Key-Value Store.",
            "default": true
          },
          "captureConsoleErrors": {
            "title": "Capture Console Errors",
            "type": "boolean",
            "description": "Record browser JS console errors during each session.",
            "default": true
          },
          "captureNetworkFailures": {
            "title": "Capture Network Failures",
            "type": "boolean",
            "description": "Record failed network requests (blocked scripts, DNS errors, etc.).",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}