Futurepedia Scraper: export AI tool data avatar

Futurepedia Scraper: export AI tool data

Pricing

from $4.00 / 1,000 ai tool results

Go to Apify Store
Futurepedia Scraper: export AI tool data

Futurepedia Scraper: export AI tool data

Turn public Futurepedia AI tool listings into JSON or CSV research exports: names, descriptions, categories, observed pricing and links with source dates. Try one record, inspect the output, then scale.

Pricing

from $4.00 / 1,000 ai tool results

Rating

0.0

(0)

Developer

Kris Jensen

Kris Jensen

Maintained by Community

Actor stats

2

Bookmarked

56

Total users

4

Monthly active users

3 days ago

Last modified

Share

Futurepedia Scraper: AI Tool Data Export

Stop copying AI-tool listings into a spreadsheet by hand. Export names, descriptions, categories, observed pricing and links from public Futurepedia listings into an Apify dataset, then download JSON or CSV for research and comparison workflows.

Each record includes a source URL and retrieval timestamp. When available, the listing's update date and outbound-link provenance help you inspect freshness and trace the result. Missing fields stay missing rather than being invented. Sitemap, category and specific-URL inputs are supported; source availability and optional-field completeness can vary.

This is a structured export, not a unified historical database or automatic change-alert service. Directory-listed prices are not verified current vendor offers, and a successful run does not guarantee complete directory coverage.

Unofficial, independent tool: This Actor is not affiliated with, endorsed by, or operated by Futurepedia. Users are responsible for reviewing and complying with Futurepedia's current terms, robots/access rules, intellectual-property rights, privacy requirements, and applicable laws before running or redistributing source data.

Try one record first, inspect the output and RUN_SUMMARY, then scale only if the fields fit your workflow. The saved input default remains five records; the explicit quick-start below uses one.

Quick Start

For the smallest first export, use:

{
"mode": "sitemap",
"maxTools": 1,
"delayMs": 1500,
"proxyConfig": {}
}

Before starting, check the current Store pricing. For this small test, set a maximum run charge of $0.10, memory to 1,024 MB and timeout to 90 seconds in run options. These are test settings, not the Actor's global defaults; no account upgrade is required by these instructions.

When the run finishes, open its dataset to review the records and export JSON or CSV. Check RUN_SUMMARY for delivered rows, degraded records, coverage limits and billing reconciliation before increasing the limit. JSON preserves nested arrays; CSV may need normalization for your spreadsheet. Optional fields may be missing; a successful run does not guarantee complete directory coverage or current vendor pricing.

Real Output Snapshot

This abbreviated record comes from our one-record verification on September 18, 2026, using build 1.3.1. It is an owner test, not customer output or a claim of current vendor pricing. The first sitemap result may change; the quick-start does not guarantee this particular tool. The test delivered one record with one matching billed result event, not proof of every mode or full-directory performance.

{
"recordId": "futurepedia:gencraft",
"name": "Gencraft",
"slug": "gencraft",
"url": "https://www.futurepedia.io/tool/gencraft",
"externalUrl": "https://gencraft.com/",
"externalUrlStatus": "direct",
"externalUrlSource": "listing_cta",
"canonicalDomain": "gencraft.com",
"descriptionStatus": "detailed",
"pricingModel": "Freemium",
"sourceUpdatedRaw": "09/16/2026",
"sourceUpdatedAt": "2026-09-16T00:00:00.000Z",
"categories": ["image generators", "design generators", "image editing"],
"scrapedAt": "2026-09-18T17:25:39.047Z"
}

Use recordId for source-scoped joins, url to trace the listing, and scrapedAt to distinguish retrieval time from the source's update date. Missing or unresolved external links remain explicit rather than being guessed.

Sitemap

Use mode: "sitemap" to discover public tool pages from Futurepedia's tool sitemap. maxTools: 0 removes the user row limit, but the Actor still enforces a 500-detail-request safety ceiling, bounded sitemap processing, and any Apify maximum run charge.

Category

Use mode: "category" with slugs such as marketing or seo; values are normalized to lowercase. Category discovery deduplicates overlapping categories and stops at the effective row limit or a finite request, page, item, error, repeated-content, or no-progress ceiling.

Specific tools

Use mode: "urls" with slugs such as chatgpt or canonical URLs such as https://www.futurepedia.io/tool/chatgpt. Inputs are normalized, query strings and fragments are removed, duplicates are collapsed, and non-Futurepedia hosts are rejected before crawling.

{
"mode": "urls",
"toolUrls": ["chatgpt", "https://www.futurepedia.io/tool/namelix"],
"maxTools": 2
}

Output Contract

Each successful row includes stable identifiers, listing data, and selection provenance. This abbreviated, fictional example illustrates the shape; it is not a live scrape or a promise of field availability.

{
"recordId": "futurepedia:example-tool",
"name": "Example Tool",
"slug": "example-tool",
"url": "https://www.futurepedia.io/tool/example-tool",
"externalUrl": "https://example.com/",
"externalUrlStatus": "direct",
"externalUrlSource": "listing_cta",
"externalUrlSourceUrl": "https://example.com/?utm_source=futurepedia",
"canonicalDomain": "example.com",
"description": "Detailed listing description...",
"descriptionStatus": "detailed",
"sourceUpdatedRaw": "08/02/2026",
"sourceUpdatedAt": "2026-08-02T00:00:00.000Z",
"rating": 4.3,
"reviewCount": 9,
"features": ["A complete feature description is retained even when it is long."],
"socialLinks": { "x": "https://x.com/example" },
"badges": ["Verified"],
"verified": true,
"discoveredVia": "urls",
"matchedInputs": ["https://www.futurepedia.io/tool/example-tool"],
"sourceIndex": 0,
"scrapedAt": "2026-08-02T12:00:00.000Z"
}

Important field semantics:

FieldMeaning
recordIdStable source-scoped ID: futurepedia:<normalized-slug>
externalUrlValid direct destination from the structurally scoped exact-name listing CTA; affiliate CTA values remain null
externalUrlStatusdirect, unresolved_affiliate, missing, or invalid
externalUrlSourceUrlOriginal CTA href retained as evidence, including unresolved affiliate links
canonicalDomainNormalized hostname for usable externalUrl values
ratingListing aggregate rating, or null when absent; absence is never converted to zero
reviewCountListing review count, with 0 used only when the listing explicitly reports zero
sourceUpdatedRawSource date as displayed by Futurepedia
sourceUpdatedAtISO-normalized source date when parsing is valid
socialLinks.xBoth twitter.com and x.com listing links normalize to the x key
sourceIndexDeterministic zero-based discovery order used for dataset output

lastUpdated remains as a compatibility alias for sourceUpdatedRaw. ratingDistribution is intentionally not emitted because the previous implementation did not have reliable listing-scoped evidence for that field.

Missing Fields and Freshness

A delivered row needs an extracted name and a usable description, not every field. Summary-only descriptions and missing or unresolved outbound links can still produce successful rows. For example, this fictional abbreviated row is usable but degraded:

{
"recordId": "futurepedia:sparse",
"descriptionStatus": "summary",
"externalUrl": null,
"externalUrlStatus": "missing",
"pricingModel": null,
"pricingTiers": [],
"rating": null,
"reviewCount": null,
"sourceUpdatedRaw": null,
"sourceUpdatedAt": null,
"lastUpdated": null,
"scrapedAt": "2026-09-17T12:00:00.000Z"
}

null, empty arrays, and empty objects mean no corresponding evidence was extracted, not that a product has no price, features, or social accounts. verified: false means no recognized Verified badge was extracted, not an independent trust assessment. Pricing is listing text, not a verified current vendor quote or normalized price comparison.

scrapedAt is the run-start timestamp passed to every parsed row, not the exact time each page was fetched or the vendor last changed its product. sourceUpdatedAt is a parsed Futurepedia listing date, not an independent freshness check; it stays null when absent or unparseable. A new scrape timestamp does not make an old listing current.

Join snapshots on recordId, not sourceIndex (which can change with input/discovery order). IDs are slug-based: a source slug rename changes the ID, and no rename resolution is provided. Compare fields downstream while retaining their status and source dates; absence from a bounded export is not evidence that a tool was deleted.

URL Evidence

The Actor only considers a tool-listing CTA whose data-tool-name exactly matches the current listing name and whose structure is bound to the selected listing root. It does not fall back to the first CTA or accept same-name footer, promotion, duplicate-card, legal, or unrelated links. Sponsorship is read only from that same scoped CTA. Pricing, categories, features, dates, and subratings require explicit scoped tool-content evidence; page-wide navigation, footer, and promotion text are excluded.

Direct CTA URLs are cleaned of common tracking parameters. Known affiliate/tracker CTA values are classified immediately as unresolved_affiliate; neither the tracker nor any destination is contacted. externalUrl and canonicalDomain remain null, while the original CTA stays in externalUrlSourceUrl as listing metadata.

Run Summary

After input validation, each run attempts to write RUN_SUMMARY to the default key-value store, outside the charged dataset. It includes actor/release/build/run/dataset identifiers where available, requested and discovered counts, detail-page attempted, delivered succeeded, and remaining failed counts, parsed/usable and degraded rows, discovery requests/pages/items/errors, repeated-content and no-progress counts, discovery/detail completeness and stop reasons, user/budget/safety skips, effective limits, defaultDatasetRows, its count source (dataset_info or push acknowledgements), charged-event reconciliation where PPE applies, runtime, and bounded failure details.

attempted counts detail requests actually started after known user, PPE, and safety caps. Selected candidates left unrequested by a detail request/error ceiling are counted in detailSkipped. succeeded equals rows confirmed written to the default dataset. failed is always attempted - succeeded, so succeeded + failed = attempted, including parse failures and rows not delivered after a partial dataset-write failure. Discovery failures are reported separately in discoveryFailed.

For sitemap/category modes, requested is the configured maxTools value (0 means no user row limit, not unbounded work). For URL mode, it is the number of supplied URL/slug entries before deduplication. budgetSkipped, userLimitSkipped, safetyLimitSkipped, and detailSkipped count only known candidates; source items or pages not fetched after a bounded stop are not guessed. discoveryComplete: false and the matching discoveryStopReason disclose partial source coverage.

Do not treat status: "succeeded" or top-level stopReason: "completed" as full-directory coverage. For example, a category run capped at one delivered row can report this abbreviated summary:

{
"status": "succeeded",
"stopReason": "completed",
"attempted": 1,
"succeeded": 1,
"failed": 0,
"discoveryComplete": false,
"discoveryStopReason": "result_limit",
"detailComplete": true,
"userLimitSkipped": 0
}

Here the selected detail work finished, but discovery stopped early; zero known skips does not mean no unseen tools remain. Inspect both completeness flags, their stop reasons, failures, and row counts. degradedRows counts parsed usable rows with a non-detailed description or non-direct external URL, not all missing fields, and may include rows not delivered after a write failure. Failed detail pages do not become diagnostic dataset rows. Neither complete discovery nor a successful run guarantees every field is present or the directory itself is exhaustive.

Charging Safety

The Actor makes one awaited Actor.pushData(row) call for each successful default-dataset row, in sourceIndex order. It does not make a second explicit result-event charge. Under Apify PPE, the configured synthetic apify-default-dataset-item event is associated with each pushed default-dataset row. The Actor records the charged-event delta where PPE exposes it and marks row/event reconciliation as matched or mismatched. A partial write preserves the exact count already delivered before the failure. The Actor calculates remaining event capacity before discovery, applies user/PPE/safety limits before detail requests, and applies the same effective cap again before output.

Check the current Actor Store pricing and your maximum run charge in Apify before starting. Preserved 2026-07-20 calibration runs measured platform usage of $0.002304 for 5 returned rows, $0.011842 for 50, and $0.102764 for 495 of 500 requested rows. Those historical platform-usage measurements are not buyer-price or future-cost guarantees.

Scheduling and Exports

Apify can run this Actor on a schedule and export each run's dataset as JSON, CSV, XML, or Excel. Each run has its own default dataset; scheduled runs do not automatically create a single accumulated history or calculate changes between snapshots.

First-party sitemap, category, and detail requests use fixed timeouts, streaming response-byte ceilings, zero automatic redirects, and zero retries. Detail work is sequential and capped at 500 requests and 50 errors; category discovery is separately capped at 100 requests, 100 total pages, 25 pages per input, 2,000 examined items, 20 errors, two no-progress pages, and one repeated-content page. Successful rows are still exported when other bounded requests fail, and the exact stop reason is available in RUN_SUMMARY.

The local parser acceptance corpus contains 20 separate, structurally varied HTML fixtures derived from retained sample values. Every fixture is labeled non-current; passing them is regression evidence, not proof of current Futurepedia markup, source permission, deployment approval, or future reliability.

Support

Use the Issues tab on this Actor page for reproducible problems. Include the Apify run ID, a redacted input, the expected result, the observed result, and the RUN_SUMMARY record when available. Never post API tokens, credentials, private data, or customer data. Source blocking, changed markup, and bounded partial coverage should be reported as source-health evidence rather than described as successful complete output.