stableapify.dev
Search Apify Store actors, start actor runs, and fetch results over x402 and MPP.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.01 USDC on Base to 0x23d9…c8411. The signed payment is good for 5 minutes.
- Paid to
- 0x23d9…c8411
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 10000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x23d931f95831cee50b5f5edf4d0e88270f6c8411",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {},
"type": "http",
"method": "POST",
"bodyType": "json"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"type": "object",
"required": [
"distance",
"publishedAt",
"saveOnlyUniqueItems",
"enrichCompanyData"
],
"properties": {
"jobType": {
"type": "array",
"items": {
"enum": [
"full-time",
"part-time",
"contract",
"temporary",
"internship"
],
"type": "string"
},
"description": "Filter by job type (Full-time, Part-time, Contract, etc.). Multiple selections allowed. JSON field name: `jobType`"
},
"keyword": {
"type": "object",
"description": "Keyword to search for. (e.g., Software Engineer). JSON field name: `keywords`",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"distance": {
"enum": [
"5",
"10",
"15",
"25",
"50",
""
],
"type": "string",
"default": "",
"description": "Search radius from the location in miles. Leave empty for default. JSON field name: `distance`"
},
"location": {
"type": "string",
"description": "Location to search in. JSON field name: `location`"
},
"maxItems": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 150,
"description": "Maximum number of job listings to scrape. Leave empty for no limit. Note: Minimum is 150 results when using pay-per-result billing. JSON field name: `maxItems`"
},
"workType": {
"type": "array",
"items": {
"enum": [
"on-site",
"remote",
"hybrid"
],
"type": "string"
},
"description": "Filter by work location type (On-site, Remote, Hybrid). Multiple selections allowed. JSON field name: `workType`"
},
"startUrls": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"method": {
"type": "string"
},
"headers": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"payload": {
"type": "string"
},
"userData": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
},
"description": "One or more URLs of the pages where the crawler will start. Note that the Actor will additionally crawl job page data."
},
"salaryBase": {
"enum": [
"40000",
"60000",
"80000",
"100000",
"120000",
""
],
"type": "string",
"description": "Filter by minimum salary. Only one value allowed. JSON field name: `salaryBase`"
},
"publishedAt": {
"enum": [
"",
"r86400",
"r604800",
"r2592000"
],
"type": "string",
"default": "",
"description": "How old publications should be in Days. Default is ANY. JSON field name: `publishedAt``"
},
"resumeKeywords": {
"type": "object",
"description": "⚠️ **This is NOT a search filter** — it does not change which jobs LinkedIn returns to you. This is a **profile matching tool** for smarter job hunting. Paste the skills from your resume/CV here, and the scraper will automatically score every job description against your profile. Instead of reading through dozens of postings, you instantly see which jobs you're actually qualified for — and can skip the rest entirely. Each entry has a required `keyword` and an optional `aliases` array for abbreviations or alternate names (e.g. `JavaScript` → `JS`, `Kubernetes` → `K8s`). **Format:** `[{\"keyword\": \"JavaScript\", \"aliases\": [\"JS\"]}, {\"keyword\": \"Python\"}]` When provided, each job in the output will include three extra fields: - `matchedKeywords` — which of your skills were found in the job description - `unmatchedKeywords` — which of your skills were NOT found - `keywordMatchScorePercentage` — percentage of your skills found (0–100). Example: 3 out of 5 matched = **60** 🤖 **Let an AI extract skills from your resume automatically (outputs JSON ready to paste here):** - [Open ChatGPT with prompt](https://chatgpt.com/?q=Extract+skills+and+keywords+from+my+CV+for+job+matching.+Add+common+abbreviations+as+aliases.+Output+ONLY+a+raw+JSON+array+with+no+explanation+or+markdown%2C+using+this+format%3A+%5B%7B%22keyword%22%3A%22JavaScript%22%2C%22aliases%22%3A%5B%22JS%22%5D%7D%2C%7B%22keyword%22%3A%22Python%22%7D%5D.+I+will+paste+my+CV+after+this+message.) *(no login needed)* - [Open Claude with prompt](https://claude.ai/new?q=Extract+skills+and+keywords+from+my+CV+for+job+matching.+Add+common+abbreviations+as+aliases.+Output+ONLY+a+raw+JSON+array+with+no+explanation+or+markdown%2C+using+this+format%3A+%5B%7B%22keyword%22%3A%22JavaScript%22%2C%22aliases%22%3A%5B%22JS%22%5D%7D%2C%7B%22keyword%22%3A%22Python%22%7D%5D.+I+will+paste+my+CV+after+this+message.) *(login required)*",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"experienceLevel": {
"type": "array",
"items": {
"enum": [
"internship",
"entry-level",
"associate",
"mid-senior",
"director"
],
"type": "string"
},
"description": "Filter by experience level. Multiple selections allowed. JSON field name: `experienceLevel`"
},
"enrichCompanyData": {
"type": "boolean",
"default": false,
"description": "When disabled, the scraper runs significantly faster by skipping additional company page requests. When enabled, the scraper fetches extra company details including: company description, full address (street, city, region, postal code, country), employee count, and company website. Default is disabled for optimal performance. JSON field name: `enrichCompanyData`"
},
"saveOnlyUniqueItems": {
"type": "boolean",
"default": false,
"description": "If enabled, only unique items will be saved. Default is false. JSON field name: `saveOnlyUniqueItems`"
}
},
"description": "Normalized actor input. See field descriptions for the simplified shape; native Apify input also accepted (passed through).",
"additionalProperties": {}
},
"options": {
"type": "object",
"properties": {
"build": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"memory": {
"type": "integer",
"maximum": 32768,
"minimum": 128
},
"maxItems": {
"type": "integer",
"maximum": 100000,
"minimum": 1
}
},
"description": "Optional Apify run options.",
"additionalProperties": false
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-06-21 05:30Z
- Last indexed by Roundhouse
- 2026-07-21 05:10Z
- Last enriched (probe, favicon, geo)
- 2026-09-21 11:15Z
- x402 version
- 2
- Max timeout
- 300s
- Liveness probe
- HTTP 405
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service stableapify.dev and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=stableapify.dev' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://stableapify.dev/api/actors/cheap_scraper/linkedin-job-scraper/call, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402, or use an organization key from https://roundhouseai.io/dashboard/team. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.