{
  "x402Version": 2,
  "name": "CrowdPull public-data API",
  "description": "Pay per capped CrowdPull public-data job with x402 on Base USDC.",
  "openapi": "https://crowdpull.click/openapi.json",
  "service": {
    "name": "CrowdPull",
    "url": "https://crowdpull.click/",
    "directory": "https://crowdpull.click/api/directory",
    "llmsTxt": "https://crowdpull.click/llms.txt",
    "mcpServerCard": "https://crowdpull.click/.well-known/mcp/server-card.json"
  },
  "settlement": {
    "network": "eip155:8453",
    "asset": "USDC",
    "assetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
    "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906"
  },
  "endpoints": [
    {
      "resource": "https://crowdpull.click/api/actors/list",
      "type": "http",
      "x402Version": 2,
      "serviceName": "CrowdPull source catalog",
      "description": "Search CrowdPull's public-data catalog and get the supported paid API routes for agent calls.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "5000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string"
                  },
                  "count": {
                    "type": "integer"
                  },
                  "results": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "paidApi": {
                    "type": "object"
                  }
                },
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/actors/list",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "properties": {
                      "query": {
                        "type": "string",
                        "description": "Search text such as Facebook Marketplace, OfferUp, AliExpress reviews, furniture, local deals, or product reviews."
                      },
                      "family": {
                        "type": "string",
                        "description": "Optional CrowdPull family slug such as marketplace-listings, facebook-data, or ecommerce-products-reviews."
                      },
                      "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "default": 10
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string"
                      },
                      "count": {
                        "type": "integer"
                      },
                      "results": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      },
                      "paidApi": {
                        "type": "object"
                      }
                    },
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Search CrowdPull's public-data catalog and get the supported paid API routes for agent calls.",
        "serviceName": "CrowdPull source catalog",
        "kind": "catalog",
        "price": {
          "mode": "fixed",
          "currency": "USD",
          "amount": "0.005"
        },
        "tags": [],
        "input": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "Search text such as Facebook Marketplace, OfferUp, AliExpress reviews, furniture, local deals, or product reviews."
            },
            "family": {
              "type": "string",
              "description": "Optional CrowdPull family slug such as marketplace-listings, facebook-data, or ecommerce-products-reviews."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 10
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/marketplace-leads",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Marketplace Lead Bundle",
      "description": "Run a multi-source marketplace lead search, normalize listing fields, deduplicate by source URL/listing ID/title/price/location, and rank useful leads.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "marketplace leads",
        "resale sourcing",
        "classifieds",
        "dedupe",
        "lead scoring"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "190000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/marketplace-leads",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Marketplace Lead Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "facebook-marketplace-scraper",
                                "offerup-scraper",
                                "craigslist-scraper",
                                "mercari-listings-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Run a multi-source marketplace lead search, normalize listing fields, deduplicate by source URL/listing ID/title/price/location, and rank useful leads.",
        "serviceName": "Marketplace Lead Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.19",
          "max": "2.99"
        },
        "tags": [
          "marketplace leads",
          "resale sourcing",
          "classifieds",
          "dedupe",
          "lead scoring"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Marketplace Lead Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "facebook-marketplace-scraper",
                      "offerup-scraper",
                      "craigslist-scraper",
                      "mercari-listings-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/rental-comps",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Rental Comps Bundle",
      "description": "Run a rental and property comp search across public listing sources, keep source URLs attached, and return normalized price, beds, baths, location, and comp rows.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "rental comps",
        "housing",
        "property listings",
        "rent analysis"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "290000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/rental-comps",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Rental Comps Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "zillow-listings-scraper",
                                "apartments-com-rentals-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Run a rental and property comp search across public listing sources, keep source URLs attached, and return normalized price, beds, baths, location, and comp rows.",
        "serviceName": "Rental Comps Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.29",
          "max": "3.49"
        },
        "tags": [
          "rental comps",
          "housing",
          "property listings",
          "rent analysis"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Rental Comps Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "zillow-listings-scraper",
                      "apartments-com-rentals-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/review-complaints",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Review Complaint Mining Bundle",
      "description": "Collect public product and review rows, keep product IDs/source URLs attached, and rank likely complaints, sentiment clues, and recurring product issues.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "review mining",
        "complaints",
        "product research",
        "sentiment"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "190000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/review-complaints",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Review Complaint Mining Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "aliexpress-reviews-scraper",
                                "target-products-scraper",
                                "flipkart-products-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Collect public product and review rows, keep product IDs/source URLs attached, and rank likely complaints, sentiment clues, and recurring product issues.",
        "serviceName": "Review Complaint Mining Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.19",
          "max": "2.49"
        },
        "tags": [
          "review mining",
          "complaints",
          "product research",
          "sentiment"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Review Complaint Mining Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "aliexpress-reviews-scraper",
                      "target-products-scraper",
                      "flipkart-products-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/hiring-signals",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Hiring Signal Bundle",
      "description": "Find public hiring signals by role, market, and remote filter, then return normalized job, company, salary, location, and apply/source URL fields.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "jobs",
        "hiring signals",
        "sales triggers",
        "labor market"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "190000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/hiring-signals",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Hiring Signal Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "crowdpull-ziprecruiter-jobs-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Find public hiring signals by role, market, and remote filter, then return normalized job, company, salary, location, and apply/source URL fields.",
        "serviceName": "Hiring Signal Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.19",
          "max": "1.99"
        },
        "tags": [
          "jobs",
          "hiring signals",
          "sales triggers",
          "labor market"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Hiring Signal Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "crowdpull-ziprecruiter-jobs-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/instant/marketplace-leads",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Instant Marketplace Leads",
      "description": "Return cached marketplace lead results immediately when available; optionally start a paid live refresh through the Marketplace Lead Bundle on cache miss.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "instant results",
        "cached marketplace leads",
        "fast agent lookup"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "10000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/instant/marketplace-leads",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "string"
                          },
                          "searchQuery": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string"
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "maxAgeMinutes": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1440,
                            "default": 240
                          },
                          "refreshLive": {
                            "type": "boolean",
                            "default": true
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Return cached marketplace lead results immediately when available; optionally start a paid live refresh through the Marketplace Lead Bundle on cache miss.",
        "serviceName": "Instant Marketplace Leads",
        "kind": "instant-cache",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.01",
          "max": "1.99"
        },
        "tags": [
          "instant results",
          "cached marketplace leads",
          "fast agent lookup"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "properties": {
                "query": {
                  "type": "string"
                },
                "searchQuery": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "maxAgeMinutes": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1440,
                  "default": 240
                },
                "refreshLive": {
                  "type": "boolean",
                  "default": true
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/monitors/watchlist",
      "type": "http",
      "x402Version": 2,
      "serviceName": "CrowdPull Watchlist",
      "description": "Create a portable paid watchlist token for repeated marketplace, rental, review, or hiring checks. Agents can store the token and pay for refresh runs.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "watchlist",
        "monitoring",
        "only new results",
        "recurring revenue"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "290000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/monitors/watchlist",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "properties": {
                          "workflow": {
                            "type": "string",
                            "enum": [
                              "marketplace-leads",
                              "rental-comps",
                              "review-complaints",
                              "hiring-signals"
                            ],
                            "default": "marketplace-leads"
                          },
                          "query": {
                            "type": "string"
                          },
                          "searchQuery": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string"
                          },
                          "cadence": {
                            "type": "string",
                            "enum": [
                              "manual",
                              "hourly",
                              "daily",
                              "weekly"
                            ],
                            "default": "manual"
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "webhookUrl": {
                            "type": "string",
                            "description": "Optional customer-owned webhook for future managed-monitor delivery."
                          },
                          "runInitial": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Create a portable paid watchlist token for repeated marketplace, rental, review, or hiring checks. Agents can store the token and pay for refresh runs.",
        "serviceName": "CrowdPull Watchlist",
        "kind": "monitor",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.29",
          "max": "2.99"
        },
        "tags": [
          "watchlist",
          "monitoring",
          "only new results",
          "recurring revenue"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "properties": {
                "workflow": {
                  "type": "string",
                  "enum": [
                    "marketplace-leads",
                    "rental-comps",
                    "review-complaints",
                    "hiring-signals"
                  ],
                  "default": "marketplace-leads"
                },
                "query": {
                  "type": "string"
                },
                "searchQuery": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                },
                "cadence": {
                  "type": "string",
                  "enum": [
                    "manual",
                    "hourly",
                    "daily",
                    "weekly"
                  ],
                  "default": "manual"
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "webhookUrl": {
                  "type": "string",
                  "description": "Optional customer-owned webhook for future managed-monitor delivery."
                },
                "runInitial": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/enrich/rows",
      "type": "http",
      "x402Version": 2,
      "serviceName": "CrowdPull Row Enrichment",
      "description": "Normalize, deduplicate, score, and lightly classify supplied public-data rows so agents can buy the value-add without rerunning a source scrape.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "dedupe",
        "lead scoring",
        "sentiment",
        "row normalization",
        "upsell"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/enrich/rows",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "properties": {
                      "rows": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
                      },
                      "input": {
                        "type": "object",
                        "properties": {
                          "rows": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "marketplace",
                              "rentals",
                              "reviews",
                              "jobs",
                              "auto"
                            ],
                            "default": "auto"
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 100
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "additionalProperties": true
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Normalize, deduplicate, score, and lightly classify supplied public-data rows so agents can buy the value-add without rerunning a source scrape.",
        "serviceName": "CrowdPull Row Enrichment",
        "kind": "enrichment",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "0.99"
        },
        "tags": [
          "dedupe",
          "lead scoring",
          "sentiment",
          "row normalization",
          "upsell"
        ],
        "input": {
          "type": "object",
          "properties": {
            "rows": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
            },
            "input": {
              "type": "object",
              "properties": {
                "rows": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "marketplace",
                    "rentals",
                    "reviews",
                    "jobs",
                    "auto"
                  ],
                  "default": "auto"
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500,
                  "default": 100
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "output": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-marketplace-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Marketplace Scraper",
      "description": "Start a capped CrowdPull Facebook Marketplace run for public local listings. Good for quick lead checks by city, keyword, price range, and optional detail fetch.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "marketplace",
        "local listings",
        "resale"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-marketplace-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Marketplace Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "marketplaceUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Facebook Marketplace city, category, or search URLs."
                          },
                          "radiusKm": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 65
                          },
                          "minPrice": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Minimum price in local currency cents."
                          },
                          "maxPrice": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Maximum price in local currency cents."
                          },
                          "untilDate": {
                            "type": "string",
                            "description": "Only keep listings on or after this YYYY-MM-DD date."
                          },
                          "strictFiltering": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Marketplace run for public local listings. Good for quick lead checks by city, keyword, price range, and optional detail fetch.",
        "serviceName": "Facebook Marketplace Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.02",
          "max": "1.00"
        },
        "tags": [
          "facebook",
          "marketplace",
          "local listings",
          "resale"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Marketplace Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "marketplaceUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Facebook Marketplace city, category, or search URLs."
                },
                "radiusKm": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500,
                  "default": 65
                },
                "minPrice": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Minimum price in local currency cents."
                },
                "maxPrice": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Maximum price in local currency cents."
                },
                "untilDate": {
                  "type": "string",
                  "description": "Only keep listings on or after this YYYY-MM-DD date."
                },
                "strictFiltering": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/offerup-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "OfferUp Scraper",
      "description": "Start a capped CrowdPull OfferUp run for public local listings. Good for quick resale, free-stuff, furniture, equipment, and price-monitoring checks.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "offerup",
        "marketplace",
        "local listings",
        "resale"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/offerup-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "OfferUp Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          },
                          "radiusMiles": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 30
                          },
                          "minPrice": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "maxPrice": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "condition": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "NEW",
                                "OPEN_BOX",
                                "REFURBISHED",
                                "USED",
                                "BROKEN",
                                "OTHER"
                              ]
                            }
                          },
                          "sortBy": {
                            "type": "string",
                            "enum": [
                              "-posted",
                              "distance",
                              "price",
                              "-price"
                            ],
                            "default": "-posted"
                          },
                          "delivery": {
                            "type": "string",
                            "enum": [
                              "p",
                              "s",
                              "p_s"
                            ],
                            "default": "p_s"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull OfferUp run for public local listings. Good for quick resale, free-stuff, furniture, equipment, and price-monitoring checks.",
        "serviceName": "OfferUp Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.02",
          "max": "1.00"
        },
        "tags": [
          "offerup",
          "marketplace",
          "local listings",
          "resale"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "OfferUp Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                },
                "radiusMiles": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500,
                  "default": 30
                },
                "minPrice": {
                  "type": "integer",
                  "minimum": 0
                },
                "maxPrice": {
                  "type": "integer",
                  "minimum": 0
                },
                "condition": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "NEW",
                      "OPEN_BOX",
                      "REFURBISHED",
                      "USED",
                      "BROKEN",
                      "OTHER"
                    ]
                  }
                },
                "sortBy": {
                  "type": "string",
                  "enum": [
                    "-posted",
                    "distance",
                    "price",
                    "-price"
                  ],
                  "default": "-posted"
                },
                "delivery": {
                  "type": "string",
                  "enum": [
                    "p",
                    "s",
                    "p_s"
                  ],
                  "default": "p_s"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/craigslist-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Craigslist Classifieds Scraper",
      "description": "Start a capped CrowdPull Craigslist run for public classifieds across for-sale, housing, cars, jobs, gigs, services, community, and events.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "craigslist",
        "classifieds",
        "local listings",
        "lead generation"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/craigslist-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Craigslist Classifieds Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "city": {
                            "type": "string",
                            "description": "Craigslist city or region slug, for example detroit."
                          },
                          "category": {
                            "type": "string",
                            "description": "Craigslist category slug such as sss, apa, cta, or jjg."
                          },
                          "postalCode": {
                            "type": "string"
                          },
                          "searchDistance": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500
                          },
                          "maxResultsPerSearch": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Craigslist run for public classifieds across for-sale, housing, cars, jobs, gigs, services, community, and events.",
        "serviceName": "Craigslist Classifieds Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.25"
        },
        "tags": [
          "craigslist",
          "classifieds",
          "local listings",
          "lead generation"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Craigslist Classifieds Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "city": {
                  "type": "string",
                  "description": "Craigslist city or region slug, for example detroit."
                },
                "category": {
                  "type": "string",
                  "description": "Craigslist category slug such as sss, apa, cta, or jjg."
                },
                "postalCode": {
                  "type": "string"
                },
                "searchDistance": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500
                },
                "maxResultsPerSearch": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/mercari-listings-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Mercari Listings Scraper",
      "description": "Start a capped CrowdPull Mercari run for public search, item, and seller inventory data with source URLs and listing diagnostics.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "mercari",
        "marketplace",
        "seller inventory",
        "resale"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/mercari-listings-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Mercari Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "queries": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "priceMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "priceMax": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "status": {
                            "type": "string",
                            "description": "Listing status filter when supported, for example on_sale."
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 2
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Mercari run for public search, item, and seller inventory data with source URLs and listing diagnostics.",
        "serviceName": "Mercari Listings Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.00"
        },
        "tags": [
          "mercari",
          "marketplace",
          "seller inventory",
          "resale"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Mercari Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "queries": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "priceMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "priceMax": {
                  "type": "integer",
                  "minimum": 0
                },
                "status": {
                  "type": "string",
                  "description": "Listing status filter when supported, for example on_sale."
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10,
                  "default": 2
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/zillow-listings-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Zillow Listings Scraper",
      "description": "Start a capped CrowdPull Zillow run for public property search, URL, and lookup workflows with price and property filters.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "zillow",
        "real estate",
        "property listings",
        "housing"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/zillow-listings-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Zillow Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "search",
                              "url",
                              "lookup"
                            ],
                            "default": "search"
                          },
                          "listingType": {
                            "type": "string",
                            "description": "for_sale, for_rent, sold, or another source-supported listing type."
                          },
                          "priceMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "priceMax": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "bedsMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "bathsMin": {
                            "type": "integer",
                            "minimum": 0
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Zillow run for public property search, URL, and lookup workflows with price and property filters.",
        "serviceName": "Zillow Listings Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.50"
        },
        "tags": [
          "zillow",
          "real estate",
          "property listings",
          "housing"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Zillow Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "search",
                    "url",
                    "lookup"
                  ],
                  "default": "search"
                },
                "listingType": {
                  "type": "string",
                  "description": "for_sale, for_rent, sold, or another source-supported listing type."
                },
                "priceMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "priceMax": {
                  "type": "integer",
                  "minimum": 0
                },
                "bedsMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "bathsMin": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/apartments-com-rentals-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Apartments.com Rentals Scraper",
      "description": "Start a capped CrowdPull Apartments.com run for public rental listings by city, price, bedrooms, pet filters, and property type.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "apartments",
        "rentals",
        "housing",
        "rent comps"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/apartments-com-rentals-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Apartments.com Rentals Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "scope": {
                            "type": "string",
                            "description": "Search scope such as city, state, neighborhood, or url when supported."
                          },
                          "bedrooms": {
                            "type": "string"
                          },
                          "maxRent": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "minRent": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "petFriendly": {
                            "type": "boolean"
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 3
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Apartments.com run for public rental listings by city, price, bedrooms, pet filters, and property type.",
        "serviceName": "Apartments.com Rentals Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "apartments",
          "rentals",
          "housing",
          "rent comps"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Apartments.com Rentals Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "scope": {
                  "type": "string",
                  "description": "Search scope such as city, state, neighborhood, or url when supported."
                },
                "bedrooms": {
                  "type": "string"
                },
                "maxRent": {
                  "type": "integer",
                  "minimum": 0
                },
                "minRent": {
                  "type": "integer",
                  "minimum": 0
                },
                "petFriendly": {
                  "type": "boolean"
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10,
                  "default": 3
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/aliexpress-reviews-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "AliExpress Reviews Scraper",
      "description": "Start a capped CrowdPull AliExpress Reviews run for public product reviews. Good for supplier checks, complaint mining, and review datasets.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "aliexpress",
        "reviews",
        "product research",
        "sentiment"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/aliexpress-reviews-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "AliExpress Reviews Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "productIds": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": "string"
                            },
                            "description": "AliExpress product URLs or numeric product IDs."
                          },
                          "productId": {
                            "type": "string"
                          },
                          "productUrl": {
                            "type": "string"
                          },
                          "maxReviewsPerProduct": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 50
                          },
                          "starFilter": {
                            "type": "string",
                            "enum": [
                              "all_star",
                              "5",
                              "4",
                              "3",
                              "2",
                              "1"
                            ],
                            "default": "all_star"
                          },
                          "sortBy": {
                            "type": "string",
                            "enum": [
                              "default",
                              "latest"
                            ],
                            "default": "default"
                          },
                          "includeImages": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeProductStats": {
                            "type": "boolean",
                            "default": true
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull AliExpress Reviews run for public product reviews. Good for supplier checks, complaint mining, and review datasets.",
        "serviceName": "AliExpress Reviews Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.02",
          "max": "0.75"
        },
        "tags": [
          "aliexpress",
          "reviews",
          "product research",
          "sentiment"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "AliExpress Reviews Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "productIds": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "description": "AliExpress product URLs or numeric product IDs."
                },
                "productId": {
                  "type": "string"
                },
                "productUrl": {
                  "type": "string"
                },
                "maxReviewsPerProduct": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 50
                },
                "starFilter": {
                  "type": "string",
                  "enum": [
                    "all_star",
                    "5",
                    "4",
                    "3",
                    "2",
                    "1"
                  ],
                  "default": "all_star"
                },
                "sortBy": {
                  "type": "string",
                  "enum": [
                    "default",
                    "latest"
                  ],
                  "default": "default"
                },
                "includeImages": {
                  "type": "boolean",
                  "default": false
                },
                "includeProductStats": {
                  "type": "boolean",
                  "default": true
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/target-products-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Target Products Scraper",
      "description": "Start a capped CrowdPull Target run for public product search, category, product URL, price, rating, UPC, DPCI, and review sample data.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "target",
        "retail",
        "prices",
        "product data"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/target-products-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Target Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "productIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "tcins": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "storeId": {
                            "type": "string"
                          },
                          "zipCode": {
                            "type": "string"
                          },
                          "includeReviews": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Target run for public product search, category, product URL, price, rating, UPC, DPCI, and review sample data.",
        "serviceName": "Target Products Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.00"
        },
        "tags": [
          "target",
          "retail",
          "prices",
          "product data"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Target Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "productIds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "tcins": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "storeId": {
                  "type": "string"
                },
                "zipCode": {
                  "type": "string"
                },
                "includeReviews": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/flipkart-products-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Flipkart Products Scraper",
      "description": "Start a capped CrowdPull Flipkart run for public product listings from search, category, and product pages with optional detail and review enrichment.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "flipkart",
        "ecommerce",
        "prices",
        "product data"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/flipkart-products-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Flipkart Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10
                          },
                          "includeReviews": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Flipkart run for public product listings from search, category, and product pages with optional detail and review enrichment.",
        "serviceName": "Flipkart Products Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.00"
        },
        "tags": [
          "flipkart",
          "ecommerce",
          "prices",
          "product data"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Flipkart Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10
                },
                "includeReviews": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/goodrx-drug-prices-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "GoodRx Drug Prices Scraper",
      "description": "Start a capped CrowdPull GoodRx run for public prescription price comparisons by drug, ZIP code, pharmacy, quantity, and delivery mode.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "goodrx",
        "drug prices",
        "pharmacy",
        "healthcare"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/goodrx-drug-prices-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "GoodRx Drug Prices Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "drugNames": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "drugName": {
                            "type": "string"
                          },
                          "zips": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "zip": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "integer",
                            "minimum": 1
                          },
                          "deliveryType": {
                            "type": "string",
                            "enum": [
                              "pickup",
                              "mail",
                              "all"
                            ]
                          },
                          "includeCoupons": {
                            "type": "boolean",
                            "default": true
                          },
                          "maxOffersPerDrugZip": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 50
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull GoodRx run for public prescription price comparisons by drug, ZIP code, pharmacy, quantity, and delivery mode.",
        "serviceName": "GoodRx Drug Prices Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "goodrx",
          "drug prices",
          "pharmacy",
          "healthcare"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "GoodRx Drug Prices Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "drugNames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "drugName": {
                  "type": "string"
                },
                "zips": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "zip": {
                  "type": "string"
                },
                "quantity": {
                  "type": "integer",
                  "minimum": 1
                },
                "deliveryType": {
                  "type": "string",
                  "enum": [
                    "pickup",
                    "mail",
                    "all"
                  ]
                },
                "includeCoupons": {
                  "type": "boolean",
                  "default": true
                },
                "maxOffersPerDrugZip": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 50
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/crowdpull-ziprecruiter-jobs-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "ZipRecruiter Jobs Scraper",
      "description": "Start a capped CrowdPull ZipRecruiter run for public job listings by keyword, location, remote filter, salary fields, and apply links.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "jobs",
        "ziprecruiter",
        "hiring",
        "labor market"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/crowdpull-ziprecruiter-jobs-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "ZipRecruiter Jobs Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "remote": {
                            "type": "boolean"
                          },
                          "salaryMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull ZipRecruiter run for public job listings by keyword, location, remote filter, salary fields, and apply links.",
        "serviceName": "ZipRecruiter Jobs Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "jobs",
          "ziprecruiter",
          "hiring",
          "labor market"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "ZipRecruiter Jobs Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "remote": {
                  "type": "boolean"
                },
                "salaryMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-comment-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Comment Scraper",
      "description": "Start a capped CrowdPull Facebook Comment run for public comments and replies from supported public Facebook posts.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "comments",
        "social listening",
        "sentiment"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-comment-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Comment Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "postUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxComments": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "includeReplies": {
                            "type": "boolean",
                            "default": true
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Comment run for public comments and replies from supported public Facebook posts.",
        "serviceName": "Facebook Comment Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "comments",
          "social listening",
          "sentiment"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Comment Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "postUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxComments": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "includeReplies": {
                  "type": "boolean",
                  "default": true
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-group-posts-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Group Posts Scraper",
      "description": "Start a capped CrowdPull Facebook Group Posts run for posts from supported public Facebook group pages.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "groups",
        "posts",
        "social listening"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-group-posts-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Group Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "groupUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "sinceDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Group Posts run for posts from supported public Facebook group pages.",
        "serviceName": "Facebook Group Posts Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "groups",
          "posts",
          "social listening"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Group Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "groupUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "sinceDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-page-posts-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Page Posts Scraper",
      "description": "Start a capped CrowdPull Facebook Page Posts run for public page and profile posts with date filtering and source URLs.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "pages",
        "posts",
        "brand monitoring"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-page-posts-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Page Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "pageUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "sinceDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Page Posts run for public page and profile posts with date filtering and source URLs.",
        "serviceName": "Facebook Page Posts Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "pages",
          "posts",
          "brand monitoring"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Page Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "pageUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "sinceDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-profile-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Profile Scraper",
      "description": "Start a capped CrowdPull Facebook Profile run for public profile posts, reactions, images, and source URLs where publicly visible.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "profiles",
        "public posts",
        "social research"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-profile-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Profile Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "profileUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "sinceDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Profile run for public profile posts, reactions, images, and source URLs where publicly visible.",
        "serviceName": "Facebook Profile Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "profiles",
          "public posts",
          "social research"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Profile Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "profileUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "sinceDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/instagram-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Instagram Scraper",
      "description": "Start a capped CrowdPull Instagram run for public profiles, posts, reels, comments, hashtags, places, and tagged-mention workflows where supported.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "instagram",
        "social listening",
        "creators",
        "hashtags"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/instagram-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Instagram Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "usernames": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "hashtags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "places": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Instagram run for public profiles, posts, reels, comments, hashtags, places, and tagged-mention workflows where supported.",
        "serviceName": "Instagram Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.50"
        },
        "tags": [
          "instagram",
          "social listening",
          "creators",
          "hashtags"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Instagram Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "usernames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "hashtags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "places": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/youtube-scraper-intelligence/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "YouTube Scraper Intelligence",
      "description": "Start a capped CrowdPull YouTube run for public videos, Shorts, streams, channels, playlists, search results, subtitles, comments, and transcript records.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "youtube",
        "transcripts",
        "comments",
        "video intelligence"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/youtube-scraper-intelligence/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "YouTube Scraper Intelligence input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "videoUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "channelUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "playlistUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "includeSubtitles": {
                            "type": "boolean",
                            "default": true
                          },
                          "includeComments": {
                            "type": "boolean",
                            "default": false
                          },
                          "maxVideos": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull YouTube run for public videos, Shorts, streams, channels, playlists, search results, subtitles, comments, and transcript records.",
        "serviceName": "YouTube Scraper Intelligence",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.50"
        },
        "tags": [
          "youtube",
          "transcripts",
          "comments",
          "video intelligence"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "YouTube Scraper Intelligence input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "videoUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "channelUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "playlistUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "includeSubtitles": {
                  "type": "boolean",
                  "default": true
                },
                "includeComments": {
                  "type": "boolean",
                  "default": false
                },
                "maxVideos": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/osha-violations-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "OSHA Violations Scraper",
      "description": "Start a capped CrowdPull OSHA run for public violation records used in compliance, account scoring, and risk research workflows.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "osha",
        "public records",
        "compliance",
        "risk"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/osha-violations-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "OSHA Violations Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "establishmentName": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string"
                          },
                          "fromDate": {
                            "type": "string"
                          },
                          "toDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull OSHA run for public violation records used in compliance, account scoring, and risk research workflows.",
        "serviceName": "OSHA Violations Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "osha",
          "public records",
          "compliance",
          "risk"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "OSHA Violations Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "establishmentName": {
                  "type": "string"
                },
                "state": {
                  "type": "string"
                },
                "fromDate": {
                  "type": "string"
                },
                "toDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    }
  ],
  "resources": [
    {
      "resource": "https://crowdpull.click/api/actors/list",
      "type": "http",
      "x402Version": 2,
      "serviceName": "CrowdPull source catalog",
      "description": "Search CrowdPull's public-data catalog and get the supported paid API routes for agent calls.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "5000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string"
                  },
                  "count": {
                    "type": "integer"
                  },
                  "results": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "paidApi": {
                    "type": "object"
                  }
                },
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/actors/list",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "properties": {
                      "query": {
                        "type": "string",
                        "description": "Search text such as Facebook Marketplace, OfferUp, AliExpress reviews, furniture, local deals, or product reviews."
                      },
                      "family": {
                        "type": "string",
                        "description": "Optional CrowdPull family slug such as marketplace-listings, facebook-data, or ecommerce-products-reviews."
                      },
                      "limit": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "default": 10
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string"
                      },
                      "count": {
                        "type": "integer"
                      },
                      "results": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      },
                      "paidApi": {
                        "type": "object"
                      }
                    },
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Search CrowdPull's public-data catalog and get the supported paid API routes for agent calls.",
        "serviceName": "CrowdPull source catalog",
        "kind": "catalog",
        "price": {
          "mode": "fixed",
          "currency": "USD",
          "amount": "0.005"
        },
        "tags": [],
        "input": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "Search text such as Facebook Marketplace, OfferUp, AliExpress reviews, furniture, local deals, or product reviews."
            },
            "family": {
              "type": "string",
              "description": "Optional CrowdPull family slug such as marketplace-listings, facebook-data, or ecommerce-products-reviews."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 10
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/marketplace-leads",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Marketplace Lead Bundle",
      "description": "Run a multi-source marketplace lead search, normalize listing fields, deduplicate by source URL/listing ID/title/price/location, and rank useful leads.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "marketplace leads",
        "resale sourcing",
        "classifieds",
        "dedupe",
        "lead scoring"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "190000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/marketplace-leads",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Marketplace Lead Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "facebook-marketplace-scraper",
                                "offerup-scraper",
                                "craigslist-scraper",
                                "mercari-listings-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Run a multi-source marketplace lead search, normalize listing fields, deduplicate by source URL/listing ID/title/price/location, and rank useful leads.",
        "serviceName": "Marketplace Lead Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.19",
          "max": "2.99"
        },
        "tags": [
          "marketplace leads",
          "resale sourcing",
          "classifieds",
          "dedupe",
          "lead scoring"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Marketplace Lead Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "facebook-marketplace-scraper",
                      "offerup-scraper",
                      "craigslist-scraper",
                      "mercari-listings-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/rental-comps",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Rental Comps Bundle",
      "description": "Run a rental and property comp search across public listing sources, keep source URLs attached, and return normalized price, beds, baths, location, and comp rows.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "rental comps",
        "housing",
        "property listings",
        "rent analysis"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "290000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/rental-comps",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Rental Comps Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "zillow-listings-scraper",
                                "apartments-com-rentals-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Run a rental and property comp search across public listing sources, keep source URLs attached, and return normalized price, beds, baths, location, and comp rows.",
        "serviceName": "Rental Comps Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.29",
          "max": "3.49"
        },
        "tags": [
          "rental comps",
          "housing",
          "property listings",
          "rent analysis"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Rental Comps Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "zillow-listings-scraper",
                      "apartments-com-rentals-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/review-complaints",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Review Complaint Mining Bundle",
      "description": "Collect public product and review rows, keep product IDs/source URLs attached, and rank likely complaints, sentiment clues, and recurring product issues.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "review mining",
        "complaints",
        "product research",
        "sentiment"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "190000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/review-complaints",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Review Complaint Mining Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "aliexpress-reviews-scraper",
                                "target-products-scraper",
                                "flipkart-products-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Collect public product and review rows, keep product IDs/source URLs attached, and rank likely complaints, sentiment clues, and recurring product issues.",
        "serviceName": "Review Complaint Mining Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.19",
          "max": "2.49"
        },
        "tags": [
          "review mining",
          "complaints",
          "product research",
          "sentiment"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Review Complaint Mining Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "aliexpress-reviews-scraper",
                      "target-products-scraper",
                      "flipkart-products-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/workflows/hiring-signals",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Hiring Signal Bundle",
      "description": "Find public hiring signals by role, market, and remote filter, then return normalized job, company, salary, location, and apply/source URL fields.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "jobs",
        "hiring signals",
        "sales triggers",
        "labor market"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "190000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "workflow": {
                    "type": "string"
                  },
                  "jobs": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "token",
                  "workflow",
                  "jobs"
                ],
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/workflows/hiring-signals",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Hiring Signal Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Main search term, keyword, product, role, company, or item."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Alias for query."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, market, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxPerSource": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "crowdpull-ziprecruiter-jobs-scraper"
                              ]
                            },
                            "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeEnrichment": {
                            "type": "boolean",
                            "default": true
                          },
                          "filters": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "sourceInputs": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "Optional per-source input overrides keyed by source name."
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "workflow": {
                        "type": "string"
                      },
                      "jobs": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    },
                    "required": [
                      "token",
                      "workflow",
                      "jobs"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Find public hiring signals by role, market, and remote filter, then return normalized job, company, salary, location, and apply/source URL fields.",
        "serviceName": "Hiring Signal Bundle",
        "kind": "workflow",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.19",
          "max": "1.99"
        },
        "tags": [
          "jobs",
          "hiring signals",
          "sales triggers",
          "labor market"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Hiring Signal Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
              "properties": {
                "query": {
                  "type": "string",
                  "description": "Main search term, keyword, product, role, company, or item."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Alias for query."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, market, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxPerSource": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "crowdpull-ziprecruiter-jobs-scraper"
                    ]
                  },
                  "description": "Optional subset of sources to run. Omit to use the workflow defaults."
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "includeEnrichment": {
                  "type": "boolean",
                  "default": true
                },
                "filters": {
                  "type": "object",
                  "additionalProperties": true
                },
                "sourceInputs": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Optional per-source input overrides keyed by source name."
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "properties": {
            "token": {
              "type": "string"
            },
            "workflow": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "required": [
            "token",
            "workflow",
            "jobs"
          ],
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/instant/marketplace-leads",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Instant Marketplace Leads",
      "description": "Return cached marketplace lead results immediately when available; optionally start a paid live refresh through the Marketplace Lead Bundle on cache miss.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "instant results",
        "cached marketplace leads",
        "fast agent lookup"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "10000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/instant/marketplace-leads",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "string"
                          },
                          "searchQuery": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string"
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "maxAgeMinutes": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1440,
                            "default": 240
                          },
                          "refreshLive": {
                            "type": "boolean",
                            "default": true
                          },
                          "sources": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Return cached marketplace lead results immediately when available; optionally start a paid live refresh through the Marketplace Lead Bundle on cache miss.",
        "serviceName": "Instant Marketplace Leads",
        "kind": "instant-cache",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.01",
          "max": "1.99"
        },
        "tags": [
          "instant results",
          "cached marketplace leads",
          "fast agent lookup"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "properties": {
                "query": {
                  "type": "string"
                },
                "searchQuery": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "maxAgeMinutes": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1440,
                  "default": 240
                },
                "refreshLive": {
                  "type": "boolean",
                  "default": true
                },
                "sources": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/monitors/watchlist",
      "type": "http",
      "x402Version": 2,
      "serviceName": "CrowdPull Watchlist",
      "description": "Create a portable paid watchlist token for repeated marketplace, rental, review, or hiring checks. Agents can store the token and pay for refresh runs.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "watchlist",
        "monitoring",
        "only new results",
        "recurring revenue"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "290000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/monitors/watchlist",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "properties": {
                          "workflow": {
                            "type": "string",
                            "enum": [
                              "marketplace-leads",
                              "rental-comps",
                              "review-complaints",
                              "hiring-signals"
                            ],
                            "default": "marketplace-leads"
                          },
                          "query": {
                            "type": "string"
                          },
                          "searchQuery": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string"
                          },
                          "cadence": {
                            "type": "string",
                            "enum": [
                              "manual",
                              "hourly",
                              "daily",
                              "weekly"
                            ],
                            "default": "manual"
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                          },
                          "webhookUrl": {
                            "type": "string",
                            "description": "Optional customer-owned webhook for future managed-monitor delivery."
                          },
                          "runInitial": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Create a portable paid watchlist token for repeated marketplace, rental, review, or hiring checks. Agents can store the token and pay for refresh runs.",
        "serviceName": "CrowdPull Watchlist",
        "kind": "monitor",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.29",
          "max": "2.99"
        },
        "tags": [
          "watchlist",
          "monitoring",
          "only new results",
          "recurring revenue"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "properties": {
                "workflow": {
                  "type": "string",
                  "enum": [
                    "marketplace-leads",
                    "rental-comps",
                    "review-complaints",
                    "hiring-signals"
                  ],
                  "default": "marketplace-leads"
                },
                "query": {
                  "type": "string"
                },
                "searchQuery": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                },
                "cadence": {
                  "type": "string",
                  "enum": [
                    "manual",
                    "hourly",
                    "daily",
                    "weekly"
                  ],
                  "default": "manual"
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 25
                },
                "webhookUrl": {
                  "type": "string",
                  "description": "Optional customer-owned webhook for future managed-monitor delivery."
                },
                "runInitial": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/enrich/rows",
      "type": "http",
      "x402Version": 2,
      "serviceName": "CrowdPull Row Enrichment",
      "description": "Normalize, deduplicate, score, and lightly classify supplied public-data rows so agents can buy the value-add without rerunning a source scrape.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "dedupe",
        "lead scoring",
        "sentiment",
        "row normalization",
        "upsell"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "routeTemplate": "/api/enrich/rows",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "properties": {
                      "rows": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
                      },
                      "input": {
                        "type": "object",
                        "properties": {
                          "rows": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "marketplace",
                              "rentals",
                              "reviews",
                              "jobs",
                              "auto"
                            ],
                            "default": "auto"
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 100
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "additionalProperties": true
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Normalize, deduplicate, score, and lightly classify supplied public-data rows so agents can buy the value-add without rerunning a source scrape.",
        "serviceName": "CrowdPull Row Enrichment",
        "kind": "enrichment",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "0.99"
        },
        "tags": [
          "dedupe",
          "lead scoring",
          "sentiment",
          "row normalization",
          "upsell"
        ],
        "input": {
          "type": "object",
          "properties": {
            "rows": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
            },
            "input": {
              "type": "object",
              "properties": {
                "rows": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "description": "Rows from CrowdPull or another source. Each row can include source URL, title, price, location, text, rating, company, or other fields."
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "marketplace",
                    "rentals",
                    "reviews",
                    "jobs",
                    "auto"
                  ],
                  "default": "auto"
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500,
                  "default": 100
                }
              },
              "additionalProperties": true
            }
          },
          "additionalProperties": true
        },
        "output": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-marketplace-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Marketplace Scraper",
      "description": "Start a capped CrowdPull Facebook Marketplace run for public local listings. Good for quick lead checks by city, keyword, price range, and optional detail fetch.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "marketplace",
        "local listings",
        "resale"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-marketplace-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Marketplace Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "marketplaceUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Facebook Marketplace city, category, or search URLs."
                          },
                          "radiusKm": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 65
                          },
                          "minPrice": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Minimum price in local currency cents."
                          },
                          "maxPrice": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Maximum price in local currency cents."
                          },
                          "untilDate": {
                            "type": "string",
                            "description": "Only keep listings on or after this YYYY-MM-DD date."
                          },
                          "strictFiltering": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Marketplace run for public local listings. Good for quick lead checks by city, keyword, price range, and optional detail fetch.",
        "serviceName": "Facebook Marketplace Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.02",
          "max": "1.00"
        },
        "tags": [
          "facebook",
          "marketplace",
          "local listings",
          "resale"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Marketplace Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "marketplaceUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Facebook Marketplace city, category, or search URLs."
                },
                "radiusKm": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500,
                  "default": 65
                },
                "minPrice": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Minimum price in local currency cents."
                },
                "maxPrice": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Maximum price in local currency cents."
                },
                "untilDate": {
                  "type": "string",
                  "description": "Only keep listings on or after this YYYY-MM-DD date."
                },
                "strictFiltering": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/offerup-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "OfferUp Scraper",
      "description": "Start a capped CrowdPull OfferUp run for public local listings. Good for quick resale, free-stuff, furniture, equipment, and price-monitoring checks.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "offerup",
        "marketplace",
        "local listings",
        "resale"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/offerup-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "OfferUp Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "latitude": {
                            "type": "number"
                          },
                          "longitude": {
                            "type": "number"
                          },
                          "radiusMiles": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 30
                          },
                          "minPrice": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "maxPrice": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "condition": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "NEW",
                                "OPEN_BOX",
                                "REFURBISHED",
                                "USED",
                                "BROKEN",
                                "OTHER"
                              ]
                            }
                          },
                          "sortBy": {
                            "type": "string",
                            "enum": [
                              "-posted",
                              "distance",
                              "price",
                              "-price"
                            ],
                            "default": "-posted"
                          },
                          "delivery": {
                            "type": "string",
                            "enum": [
                              "p",
                              "s",
                              "p_s"
                            ],
                            "default": "p_s"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull OfferUp run for public local listings. Good for quick resale, free-stuff, furniture, equipment, and price-monitoring checks.",
        "serviceName": "OfferUp Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.02",
          "max": "1.00"
        },
        "tags": [
          "offerup",
          "marketplace",
          "local listings",
          "resale"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "OfferUp Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                },
                "radiusMiles": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500,
                  "default": 30
                },
                "minPrice": {
                  "type": "integer",
                  "minimum": 0
                },
                "maxPrice": {
                  "type": "integer",
                  "minimum": 0
                },
                "condition": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "NEW",
                      "OPEN_BOX",
                      "REFURBISHED",
                      "USED",
                      "BROKEN",
                      "OTHER"
                    ]
                  }
                },
                "sortBy": {
                  "type": "string",
                  "enum": [
                    "-posted",
                    "distance",
                    "price",
                    "-price"
                  ],
                  "default": "-posted"
                },
                "delivery": {
                  "type": "string",
                  "enum": [
                    "p",
                    "s",
                    "p_s"
                  ],
                  "default": "p_s"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/craigslist-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Craigslist Classifieds Scraper",
      "description": "Start a capped CrowdPull Craigslist run for public classifieds across for-sale, housing, cars, jobs, gigs, services, community, and events.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "craigslist",
        "classifieds",
        "local listings",
        "lead generation"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/craigslist-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Craigslist Classifieds Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "city": {
                            "type": "string",
                            "description": "Craigslist city or region slug, for example detroit."
                          },
                          "category": {
                            "type": "string",
                            "description": "Craigslist category slug such as sss, apa, cta, or jjg."
                          },
                          "postalCode": {
                            "type": "string"
                          },
                          "searchDistance": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 500
                          },
                          "maxResultsPerSearch": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Craigslist run for public classifieds across for-sale, housing, cars, jobs, gigs, services, community, and events.",
        "serviceName": "Craigslist Classifieds Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.25"
        },
        "tags": [
          "craigslist",
          "classifieds",
          "local listings",
          "lead generation"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Craigslist Classifieds Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "city": {
                  "type": "string",
                  "description": "Craigslist city or region slug, for example detroit."
                },
                "category": {
                  "type": "string",
                  "description": "Craigslist category slug such as sss, apa, cta, or jjg."
                },
                "postalCode": {
                  "type": "string"
                },
                "searchDistance": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500
                },
                "maxResultsPerSearch": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/mercari-listings-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Mercari Listings Scraper",
      "description": "Start a capped CrowdPull Mercari run for public search, item, and seller inventory data with source URLs and listing diagnostics.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "mercari",
        "marketplace",
        "seller inventory",
        "resale"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/mercari-listings-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Mercari Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "queries": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "priceMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "priceMax": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "status": {
                            "type": "string",
                            "description": "Listing status filter when supported, for example on_sale."
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 2
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Mercari run for public search, item, and seller inventory data with source URLs and listing diagnostics.",
        "serviceName": "Mercari Listings Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.00"
        },
        "tags": [
          "mercari",
          "marketplace",
          "seller inventory",
          "resale"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Mercari Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "queries": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "priceMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "priceMax": {
                  "type": "integer",
                  "minimum": 0
                },
                "status": {
                  "type": "string",
                  "description": "Listing status filter when supported, for example on_sale."
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10,
                  "default": 2
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/zillow-listings-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Zillow Listings Scraper",
      "description": "Start a capped CrowdPull Zillow run for public property search, URL, and lookup workflows with price and property filters.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "zillow",
        "real estate",
        "property listings",
        "housing"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/zillow-listings-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Zillow Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "search",
                              "url",
                              "lookup"
                            ],
                            "default": "search"
                          },
                          "listingType": {
                            "type": "string",
                            "description": "for_sale, for_rent, sold, or another source-supported listing type."
                          },
                          "priceMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "priceMax": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "bedsMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "bathsMin": {
                            "type": "integer",
                            "minimum": 0
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Zillow run for public property search, URL, and lookup workflows with price and property filters.",
        "serviceName": "Zillow Listings Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.50"
        },
        "tags": [
          "zillow",
          "real estate",
          "property listings",
          "housing"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Zillow Listings Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "search",
                    "url",
                    "lookup"
                  ],
                  "default": "search"
                },
                "listingType": {
                  "type": "string",
                  "description": "for_sale, for_rent, sold, or another source-supported listing type."
                },
                "priceMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "priceMax": {
                  "type": "integer",
                  "minimum": 0
                },
                "bedsMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "bathsMin": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/apartments-com-rentals-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Apartments.com Rentals Scraper",
      "description": "Start a capped CrowdPull Apartments.com run for public rental listings by city, price, bedrooms, pet filters, and property type.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "apartments",
        "rentals",
        "housing",
        "rent comps"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/apartments-com-rentals-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Apartments.com Rentals Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "scope": {
                            "type": "string",
                            "description": "Search scope such as city, state, neighborhood, or url when supported."
                          },
                          "bedrooms": {
                            "type": "string"
                          },
                          "maxRent": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "minRent": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "petFriendly": {
                            "type": "boolean"
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 3
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Apartments.com run for public rental listings by city, price, bedrooms, pet filters, and property type.",
        "serviceName": "Apartments.com Rentals Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "apartments",
          "rentals",
          "housing",
          "rent comps"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Apartments.com Rentals Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "scope": {
                  "type": "string",
                  "description": "Search scope such as city, state, neighborhood, or url when supported."
                },
                "bedrooms": {
                  "type": "string"
                },
                "maxRent": {
                  "type": "integer",
                  "minimum": 0
                },
                "minRent": {
                  "type": "integer",
                  "minimum": 0
                },
                "petFriendly": {
                  "type": "boolean"
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10,
                  "default": 3
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/aliexpress-reviews-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "AliExpress Reviews Scraper",
      "description": "Start a capped CrowdPull AliExpress Reviews run for public product reviews. Good for supplier checks, complaint mining, and review datasets.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "aliexpress",
        "reviews",
        "product research",
        "sentiment"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "20000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/aliexpress-reviews-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "AliExpress Reviews Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "productIds": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": "string"
                            },
                            "description": "AliExpress product URLs or numeric product IDs."
                          },
                          "productId": {
                            "type": "string"
                          },
                          "productUrl": {
                            "type": "string"
                          },
                          "maxReviewsPerProduct": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 50
                          },
                          "starFilter": {
                            "type": "string",
                            "enum": [
                              "all_star",
                              "5",
                              "4",
                              "3",
                              "2",
                              "1"
                            ],
                            "default": "all_star"
                          },
                          "sortBy": {
                            "type": "string",
                            "enum": [
                              "default",
                              "latest"
                            ],
                            "default": "default"
                          },
                          "includeImages": {
                            "type": "boolean",
                            "default": false
                          },
                          "includeProductStats": {
                            "type": "boolean",
                            "default": true
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull AliExpress Reviews run for public product reviews. Good for supplier checks, complaint mining, and review datasets.",
        "serviceName": "AliExpress Reviews Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.02",
          "max": "0.75"
        },
        "tags": [
          "aliexpress",
          "reviews",
          "product research",
          "sentiment"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "AliExpress Reviews Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "productIds": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "description": "AliExpress product URLs or numeric product IDs."
                },
                "productId": {
                  "type": "string"
                },
                "productUrl": {
                  "type": "string"
                },
                "maxReviewsPerProduct": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100,
                  "default": 50
                },
                "starFilter": {
                  "type": "string",
                  "enum": [
                    "all_star",
                    "5",
                    "4",
                    "3",
                    "2",
                    "1"
                  ],
                  "default": "all_star"
                },
                "sortBy": {
                  "type": "string",
                  "enum": [
                    "default",
                    "latest"
                  ],
                  "default": "default"
                },
                "includeImages": {
                  "type": "boolean",
                  "default": false
                },
                "includeProductStats": {
                  "type": "boolean",
                  "default": true
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/target-products-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Target Products Scraper",
      "description": "Start a capped CrowdPull Target run for public product search, category, product URL, price, rating, UPC, DPCI, and review sample data.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "target",
        "retail",
        "prices",
        "product data"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/target-products-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Target Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "productIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "tcins": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "storeId": {
                            "type": "string"
                          },
                          "zipCode": {
                            "type": "string"
                          },
                          "includeReviews": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Target run for public product search, category, product URL, price, rating, UPC, DPCI, and review sample data.",
        "serviceName": "Target Products Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.00"
        },
        "tags": [
          "target",
          "retail",
          "prices",
          "product data"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Target Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "productIds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "tcins": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "storeId": {
                  "type": "string"
                },
                "zipCode": {
                  "type": "string"
                },
                "includeReviews": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/flipkart-products-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Flipkart Products Scraper",
      "description": "Start a capped CrowdPull Flipkart run for public product listings from search, category, and product pages with optional detail and review enrichment.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "flipkart",
        "ecommerce",
        "prices",
        "product data"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "30000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/flipkart-products-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Flipkart Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10
                          },
                          "includeReviews": {
                            "type": "boolean",
                            "default": false
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Flipkart run for public product listings from search, category, and product pages with optional detail and review enrichment.",
        "serviceName": "Flipkart Products Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.03",
          "max": "1.00"
        },
        "tags": [
          "flipkart",
          "ecommerce",
          "prices",
          "product data"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Flipkart Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10
                },
                "includeReviews": {
                  "type": "boolean",
                  "default": false
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/goodrx-drug-prices-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "GoodRx Drug Prices Scraper",
      "description": "Start a capped CrowdPull GoodRx run for public prescription price comparisons by drug, ZIP code, pharmacy, quantity, and delivery mode.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "goodrx",
        "drug prices",
        "pharmacy",
        "healthcare"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/goodrx-drug-prices-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "GoodRx Drug Prices Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "drugNames": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "drugName": {
                            "type": "string"
                          },
                          "zips": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "zip": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "integer",
                            "minimum": 1
                          },
                          "deliveryType": {
                            "type": "string",
                            "enum": [
                              "pickup",
                              "mail",
                              "all"
                            ]
                          },
                          "includeCoupons": {
                            "type": "boolean",
                            "default": true
                          },
                          "maxOffersPerDrugZip": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 50
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull GoodRx run for public prescription price comparisons by drug, ZIP code, pharmacy, quantity, and delivery mode.",
        "serviceName": "GoodRx Drug Prices Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "goodrx",
          "drug prices",
          "pharmacy",
          "healthcare"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "GoodRx Drug Prices Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "drugNames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "drugName": {
                  "type": "string"
                },
                "zips": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "zip": {
                  "type": "string"
                },
                "quantity": {
                  "type": "integer",
                  "minimum": 1
                },
                "deliveryType": {
                  "type": "string",
                  "enum": [
                    "pickup",
                    "mail",
                    "all"
                  ]
                },
                "includeCoupons": {
                  "type": "boolean",
                  "default": true
                },
                "maxOffersPerDrugZip": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 50
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/crowdpull-ziprecruiter-jobs-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "ZipRecruiter Jobs Scraper",
      "description": "Start a capped CrowdPull ZipRecruiter run for public job listings by keyword, location, remote filter, salary fields, and apply links.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "jobs",
        "ziprecruiter",
        "hiring",
        "labor market"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/crowdpull-ziprecruiter-jobs-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "ZipRecruiter Jobs Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "remote": {
                            "type": "boolean"
                          },
                          "salaryMin": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "maxPages": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull ZipRecruiter run for public job listings by keyword, location, remote filter, salary fields, and apply links.",
        "serviceName": "ZipRecruiter Jobs Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "jobs",
          "ziprecruiter",
          "hiring",
          "labor market"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "ZipRecruiter Jobs Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "remote": {
                  "type": "boolean"
                },
                "salaryMin": {
                  "type": "integer",
                  "minimum": 0
                },
                "maxPages": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-comment-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Comment Scraper",
      "description": "Start a capped CrowdPull Facebook Comment run for public comments and replies from supported public Facebook posts.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "comments",
        "social listening",
        "sentiment"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-comment-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Comment Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "postUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxComments": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "includeReplies": {
                            "type": "boolean",
                            "default": true
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Comment run for public comments and replies from supported public Facebook posts.",
        "serviceName": "Facebook Comment Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "comments",
          "social listening",
          "sentiment"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Comment Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "postUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxComments": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "includeReplies": {
                  "type": "boolean",
                  "default": true
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-group-posts-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Group Posts Scraper",
      "description": "Start a capped CrowdPull Facebook Group Posts run for posts from supported public Facebook group pages.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "groups",
        "posts",
        "social listening"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-group-posts-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Group Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "groupUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "sinceDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Group Posts run for posts from supported public Facebook group pages.",
        "serviceName": "Facebook Group Posts Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "groups",
          "posts",
          "social listening"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Group Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "groupUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "sinceDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-page-posts-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Page Posts Scraper",
      "description": "Start a capped CrowdPull Facebook Page Posts run for public page and profile posts with date filtering and source URLs.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "pages",
        "posts",
        "brand monitoring"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-page-posts-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Page Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "pageUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "sinceDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Page Posts run for public page and profile posts with date filtering and source URLs.",
        "serviceName": "Facebook Page Posts Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "pages",
          "posts",
          "brand monitoring"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Page Posts Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "pageUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "sinceDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/facebook-profile-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Facebook Profile Scraper",
      "description": "Start a capped CrowdPull Facebook Profile run for public profile posts, reactions, images, and source URLs where publicly visible.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "facebook",
        "profiles",
        "public posts",
        "social research"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "40000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/facebook-profile-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Facebook Profile Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "profileUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          },
                          "sinceDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Facebook Profile run for public profile posts, reactions, images, and source URLs where publicly visible.",
        "serviceName": "Facebook Profile Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.04",
          "max": "1.25"
        },
        "tags": [
          "facebook",
          "profiles",
          "public posts",
          "social research"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Facebook Profile Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "profileUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                },
                "sinceDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/instagram-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "Instagram Scraper",
      "description": "Start a capped CrowdPull Instagram run for public profiles, posts, reels, comments, hashtags, places, and tagged-mention workflows where supported.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "instagram",
        "social listening",
        "creators",
        "hashtags"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/instagram-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "Instagram Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "usernames": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "hashtags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "places": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "maxPosts": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull Instagram run for public profiles, posts, reels, comments, hashtags, places, and tagged-mention workflows where supported.",
        "serviceName": "Instagram Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.50"
        },
        "tags": [
          "instagram",
          "social listening",
          "creators",
          "hashtags"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "Instagram Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "usernames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "hashtags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "places": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "maxPosts": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/youtube-scraper-intelligence/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "YouTube Scraper Intelligence",
      "description": "Start a capped CrowdPull YouTube run for public videos, Shorts, streams, channels, playlists, search results, subtitles, comments, and transcript records.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "youtube",
        "transcripts",
        "comments",
        "video intelligence"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/youtube-scraper-intelligence/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "YouTube Scraper Intelligence input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "videoUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "channelUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "playlistUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "includeSubtitles": {
                            "type": "boolean",
                            "default": true
                          },
                          "includeComments": {
                            "type": "boolean",
                            "default": false
                          },
                          "maxVideos": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull YouTube run for public videos, Shorts, streams, channels, playlists, search results, subtitles, comments, and transcript records.",
        "serviceName": "YouTube Scraper Intelligence",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.50"
        },
        "tags": [
          "youtube",
          "transcripts",
          "comments",
          "video intelligence"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "YouTube Scraper Intelligence input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "videoUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "channelUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "playlistUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "includeSubtitles": {
                  "type": "boolean",
                  "default": true
                },
                "includeComments": {
                  "type": "boolean",
                  "default": false
                },
                "maxVideos": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    },
    {
      "resource": "https://crowdpull.click/api/actors/osha-violations-scraper/call",
      "type": "http",
      "x402Version": 2,
      "serviceName": "OSHA Violations Scraper",
      "description": "Start a capped CrowdPull OSHA run for public violation records used in compliance, account scoring, and risk research workflows.",
      "tags": [
        "crowdpull",
        "public-data",
        "x402",
        "osha",
        "public records",
        "compliance",
        "risk"
      ],
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "50000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x95E548cC2000D8674B3A79F9EbeEc30f8fb7A906",
          "maxTimeoutSeconds": 300,
          "extra": {
            "name": "USD Coin",
            "version": "2"
          }
        }
      ],
      "extensions": {
        "bazaar": {
          "info": {
            "input": {
              "type": "http",
              "method": "POST",
              "bodyType": "json",
              "body": {}
            },
            "output": {
              "type": "json",
              "example": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "job": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "resultSetId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "status"
                    ],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "token",
                  "job"
                ],
                "additionalProperties": false
              }
            }
          },
          "routeTemplate": "/api/actors/osha-violations-scraper/call",
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "input": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "http"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "bodyType": {
                    "type": "string",
                    "enum": [
                      "json"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "required": [
                      "input"
                    ],
                    "properties": {
                      "input": {
                        "type": "object",
                        "description": "OSHA Violations Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
                        "required": [],
                        "properties": {
                          "startUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public source URLs to collect from."
                          },
                          "urls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Public URLs accepted by the selected source."
                          },
                          "url": {
                            "type": "string",
                            "description": "Single public URL accepted by the selected source."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "searchQuery": {
                            "type": "string",
                            "description": "Search query or keyword."
                          },
                          "location": {
                            "type": "string",
                            "description": "City, ZIP, state, neighborhood, or source-supported location."
                          },
                          "maxItems": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxResults": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "maxListings": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 250,
                            "default": 25
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "default": false
                          },
                          "establishmentName": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string"
                          },
                          "fromDate": {
                            "type": "string"
                          },
                          "toDate": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      },
                      "options": {
                        "type": "object",
                        "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
                        "properties": {
                          "build": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "memory": {
                            "type": "integer",
                            "minimum": 128,
                            "maximum": 8192
                          },
                          "waitForFinishSeconds": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 10
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "type",
                  "method",
                  "bodyType",
                  "body"
                ],
                "additionalProperties": false
              },
              "output": {
                "type": "object",
                "properties": {
                  "example": {
                    "type": "object",
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "job": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "resultSetId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "required": [
                      "token",
                      "job"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "example"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "input",
              "output"
            ],
            "additionalProperties": false
          }
        }
      },
      "metadata": {
        "description": "Start a capped CrowdPull OSHA run for public violation records used in compliance, account scoring, and risk research workflows.",
        "serviceName": "OSHA Violations Scraper",
        "kind": "source-call",
        "price": {
          "mode": "dynamic",
          "currency": "USD",
          "min": "0.05",
          "max": "1.25"
        },
        "tags": [
          "osha",
          "public records",
          "compliance",
          "risk"
        ],
        "input": {
          "type": "object",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "description": "OSHA Violations Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
              "required": [],
              "properties": {
                "startUrls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public source URLs to collect from."
                },
                "urls": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Public URLs accepted by the selected source."
                },
                "url": {
                  "type": "string",
                  "description": "Single public URL accepted by the selected source."
                },
                "query": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "searchQuery": {
                  "type": "string",
                  "description": "Search query or keyword."
                },
                "location": {
                  "type": "string",
                  "description": "City, ZIP, state, neighborhood, or source-supported location."
                },
                "maxItems": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxResults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "maxListings": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 250,
                  "default": 25
                },
                "includeDetails": {
                  "type": "boolean",
                  "default": false
                },
                "establishmentName": {
                  "type": "string"
                },
                "state": {
                  "type": "string"
                },
                "fromDate": {
                  "type": "string"
                },
                "toDate": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            },
            "options": {
              "type": "object",
              "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
              "properties": {
                "build": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "memory": {
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 8192
                },
                "waitForFinishSeconds": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 10
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "output": {
          "$ref": "#/components/schemas/CrowdPullJob"
        }
      },
      "configured": true
    }
  ],
  "seeAlso": [
    "https://crowdpull.click/api/directory",
    "https://crowdpull.click/openapi.json",
    "https://crowdpull.click/llms.txt",
    "https://crowdpull.click/.well-known/mcp/server-card.json"
  ]
}