{
  "openapi": "3.0.1",
  "info": {
    "title": "Hire a Human for AI Agents",
    "description": "Your AI agent hires a real person on Apify — no extra marketplace. Open one task section, send the brief, and the run stays live until they finish. Start with Provide feedback: a human opens your URL and writes what works, what's confusing, and what to change.",
    "version": "1.0",
    "x-build-id": "jVQwFAXkZiqRrc440"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rainminer~human-tasks/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rainminer-human-tasks",
        "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/rainminer~human-tasks/runs": {
      "post": {
        "operationId": "runs-sync-rainminer-human-tasks",
        "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/rainminer~human-tasks/run-sync": {
      "post": {
        "operationId": "run-sync-rainminer-human-tasks",
        "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": {
          "provideFeedback": {
            "title": "Provide feedback",
            "type": "object",
            "description": "Fill this section to hire a human to review a public URL. You are charged one provide-feedback event only if they submit before the timeout.",
            "properties": {
              "url": {
                "title": "URL",
                "description": "Public page the person should open.",
                "type": "string",
                "editor": "textfield"
              },
              "instructions": {
                "title": "What to look for",
                "description": "Optional brief: pricing, CTA, mobile fold, trust, tone. Keep it short.",
                "type": "string",
                "editor": "textarea"
              }
            },
            "additionalProperties": false
          },
          "productQa": {
            "title": "QA a product",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "url": {
                "title": "Product or app URL",
                "description": "Optional public URL the human should walk through.",
                "type": "string",
                "editor": "textfield"
              },
              "journey": {
                "title": "Journey",
                "description": "The path to run (signup, checkout, onboarding, a specific flow).",
                "type": "string",
                "editor": "textarea"
              },
              "evidence": {
                "title": "Evidence to return",
                "description": "What to capture: screenshots, short video, repro steps, bugs found.",
                "type": "string",
                "editor": "textarea"
              }
            },
            "additionalProperties": false
          },
          "userTesting": {
            "title": "User testing",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "url": {
                "title": "URL",
                "description": "Public page or prototype the tester should use.",
                "type": "string",
                "editor": "textfield"
              },
              "scenario": {
                "title": "Scenario",
                "description": "What the person is trying to do, in one or two sentences.",
                "type": "string",
                "editor": "textarea"
              },
              "device": {
                "title": "Device",
                "description": "desktop, mobile, or both.",
                "type": "string",
                "editor": "textfield"
              }
            },
            "additionalProperties": false
          },
          "deskResearch": {
            "title": "Desk research",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "topic": {
                "title": "Topic",
                "description": "What to research (market, regulation, competitor, due diligence).",
                "type": "string",
                "editor": "textarea"
              },
              "sources": {
                "title": "Sources to prefer",
                "description": "Optional: sites, filings, or kinds of sources to use.",
                "type": "string",
                "editor": "textarea"
              },
              "deliverable": {
                "title": "Deliverable",
                "description": "What to return: short brief, table, cited notes.",
                "type": "string",
                "editor": "textarea"
              }
            },
            "additionalProperties": false
          },
          "expertCall": {
            "title": "Expert call",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "topic": {
                "title": "Topic",
                "description": "Domain and question for the expert.",
                "type": "string",
                "editor": "textarea"
              },
              "questions": {
                "title": "Questions",
                "description": "What the expert should cover on the call.",
                "type": "string",
                "editor": "textarea"
              },
              "durationMins": {
                "title": "Duration",
                "description": "Requested call length in minutes.",
                "type": "integer",
                "minimum": 15,
                "maximum": 120,
                "unit": "minutes"
              }
            },
            "additionalProperties": false
          },
          "siteVisit": {
            "title": "Site visit",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "location": {
                "title": "Location",
                "description": "Address, city, or place to visit.",
                "type": "string",
                "editor": "textfield"
              },
              "whatToCheck": {
                "title": "What to check",
                "description": "Stock, wait time, signage, staff, cleanliness, or a specific question.",
                "type": "string",
                "editor": "textarea"
              },
              "evidence": {
                "title": "Evidence to return",
                "description": "Notes, photos, short video — what counts as done.",
                "type": "string",
                "editor": "textarea"
              }
            },
            "additionalProperties": false
          },
          "ugcVideo": {
            "title": "UGC video",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "productUrl": {
                "title": "Product URL",
                "description": "Optional public product or landing page.",
                "type": "string",
                "editor": "textfield"
              },
              "product": {
                "title": "Product",
                "description": "What they are filming.",
                "type": "string",
                "editor": "textfield"
              },
              "angle": {
                "title": "Angle",
                "description": "Talking-head review, unboxing, demo, testimonial.",
                "type": "string",
                "editor": "textarea"
              },
              "lengthSecs": {
                "title": "Length",
                "description": "Target length in seconds.",
                "type": "integer",
                "minimum": 15,
                "maximum": 180,
                "unit": "seconds"
              }
            },
            "additionalProperties": false
          },
          "verifyBusiness": {
            "title": "Verify a business",
            "type": "object",
            "description": "Not available yet. If you send input here the run errors and you are not charged.",
            "properties": {
              "name": {
                "title": "Business name",
                "description": "Name on the door or listing.",
                "type": "string",
                "editor": "textfield"
              },
              "address": {
                "title": "Address",
                "description": "Street address to confirm.",
                "type": "string",
                "editor": "textfield"
              },
              "whatToConfirm": {
                "title": "What to confirm",
                "description": "Open hours, signage, that it exists, a photo of the storefront.",
                "type": "string",
                "editor": "textarea"
              }
            },
            "additionalProperties": false
          },
          "timeoutSecs": {
            "title": "How long to wait",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Seconds the run waits for a human. You are not charged the task event if they do not finish in time.",
            "default": 600
          },
          "notifyWebhookUrl": {
            "title": "Ping when a human is needed",
            "type": "string",
            "description": "Optional Slack, Discord, or generic incoming webhook. We post the live work link when the task is waiting. Leave empty to use the run log (or the Actor-level webhook)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}