{
  "openapi": "3.0.1",
  "info": {
    "title": "s44234214",
    "description": null,
    "version": "0.0",
    "x-build-id": "BuoATepAd2RXCqVz4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/the_eldric-arbon~s44234214/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-the_eldric-arbon-s44234214",
        "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/the_eldric-arbon~s44234214/runs": {
      "post": {
        "operationId": "runs-sync-the_eldric-arbon-s44234214",
        "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/the_eldric-arbon~s44234214/run-sync": {
      "post": {
        "operationId": "run-sync-the_eldric-arbon-s44234214",
        "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": [
          "targetUrl"
        ],
        "properties": {
          "authorizationKey": {
            "title": "Authorization Key",
            "type": "string",
            "description": "Required authorization key to run this actor. Contact the administrator for access."
          },
          "targetUrl": {
            "title": "Target URL",
            "type": "string",
            "description": "The URL to stress test (e.g., http://staging.example.com). MUST be your own infrastructure or explicitly authorized."
          },
          "testDuration": {
            "title": "Test Duration (seconds)",
            "minimum": 10,
            "type": "integer",
            "description": "How long to run the test in seconds. No maximum limit. Default: 300 seconds (5 minutes). Examples: 3600 (1 hour), 86400 (24 hours), 604800 (1 week)",
            "default": 300
          },
          "concurrentConnections": {
            "title": "Concurrent Connections",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Number of simultaneous slow connections to establish. Default: 50.",
            "default": 50
          },
          "rampUpDuration": {
            "title": "Ramp-Up Duration (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "The time over which to gradually increase concurrent connections to the target. Set to 0 to start all connections immediately. Default: 60 seconds.",
            "default": 60
          },
          "headerSendInterval": {
            "title": "Keepalive Interval (seconds)",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "How often to send a keepalive header on each open connection. Each header resets the server's read timeout, keeping the connection alive without completing the request. Default: 15 seconds. This is overridden if 'Optimize Keep-Alive Interval' is enabled.",
            "default": 15
          },
          "optimizeKeepaliveInterval": {
            "title": "Optimize Keep-Alive Interval",
            "type": "boolean",
            "description": "Run a quick pre-test to determine the server's connection timeout and dynamically set the optimal keep-alive interval. This overrides 'Keepalive Interval (seconds)' if enabled. Default: false.",
            "default": false
          },
          "attackMode": {
            "title": "Attack Mode",
            "enum": [
              "hybrid",
              "slowloris",
              "rudy"
            ],
            "type": "string",
            "description": "slowloris: keeps request headers incomplete (classic). rudy: completes headers then drips POST body — bypasses mod_reqtimeout header limits. hybrid: half workers each mode (recommended).",
            "default": "hybrid"
          },
          "useHttps": {
            "title": "Use HTTPS",
            "type": "boolean",
            "description": "Whether to use TLS/SSL encryption for connections. Default: true.",
            "default": true
          },
          "randomizeUserAgents": {
            "title": "Randomize User-Agents",
            "type": "boolean",
            "description": "Send random User-Agent headers to simulate diverse clients. Default: false.",
            "default": false
          },
          "socks5Proxy": {
            "title": "SOCKS5 Proxy (optional)",
            "type": "string",
            "description": "Optional SOCKS5 proxy to route connections through (e.g., proxy.example.com:1080). Useful for testing through different network paths."
          },
          "customProxyList": {
            "title": "Custom Proxy List",
            "type": "string",
            "description": "One proxy per line in user:pass@host:port format. Each connection picks a random proxy from this list. Takes priority over Proxy configuration below."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy settings. Enable to route connections through Apify residential or datacenter proxies."
          },
          "mullvadEnabled": {
            "title": "Enable Mullvad (first hop)",
            "type": "boolean",
            "description": "Before the test starts, the actor registers multiple WireGuard keys with your Mullvad account(s), picks random active relays, and launches local userspace WireGuard-to-SOCKS5 sidecars (wireproxy) — no elevated container permissions needed. All connections then rotate through these relays before any HTTP proxy. Requires Mullvad Account Number(s) below. Default: false.",
            "default": false
          },
          "mullvadAccounts": {
            "title": "Mullvad Accounts (multiple)",
            "type": "array",
            "description": "A list of Mullvad account numbers. The actor will attempt to register WireGuard devices for each account. If one account hits its device limit, it will try the next. Each account can specify its own number of devices.",
            "items": {
              "type": "object",
              "properties": {
                "accountNumber": {
                  "title": "Account Number",
                  "description": "Your Mullvad account number.",
                  "type": "string",
                  "editor": "textfield"
                },
                "numDevices": {
                  "title": "Number of Devices for this Account",
                  "description": "How many separate WireGuard device registrations to create for this account (each gets a random relay). Mullvad account limit: 5 devices max.",
                  "type": "integer",
                  "default": 5,
                  "minimum": 1,
                  "maximum": 5
                }
              }
            },
            "default": []
          },
          "antiAiAnalysis": {
            "title": "Anti-Fingerprint Headers",
            "type": "boolean",
            "description": "Randomize header order, casing, and inject jittered decoy headers (Accept-Language, Accept-Encoding, X-Request-ID, etc.) so requests are harder to cluster by fingerprint. Default: true.",
            "default": true
          },
          "mixHttpPort80": {
            "title": "Mix in Port 80 (HTTP fallback)",
            "type": "boolean",
            "description": "For HTTPS targets on port 443, randomly send half the connections to port 80 instead of using TLS. Only enable if port 80 serves the same application — otherwise these connections are wasted (e.g. a 301 redirect closes them immediately). Default: false.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}