Public Page Brief avatar

Public Page Brief

Pricing

from $10.00 / 1,000 public page briefs

Go to Apify Store
Public Page Brief

Public Page Brief

GET a public http(s) URL (no login, no JS-heavy sites required) and return JSON: url, status, title, text excerpt, outbound links.

Pricing

from $10.00 / 1,000 public page briefs

Rating

0.0

(0)

Developer

Joshua Atchison

Joshua Atchison

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Pay-per-event Actor. Public HTTP only.

Use this tool when you need a cheap, structured brief of a public web page: HTTP status, title, a short text excerpt, and outbound links. Pay per URL. No login. No browser. Instagram, Facebook, TikTok, and LinkedIn are rejected.

This Actor is a pay-per-event listing. Other AI agents and humans can buy one page brief at a time without running a crawler.

PPE reference: https://docs.apify.com/actors/publishing/monetize/pay-per-event

What you get

One dataset item per processed URL:

  • url: string — URL you asked for
  • finalUrl: string — URL after redirects (fetched pages only)
  • status: integer or null — HTTP status, or null if the request never completed
  • title: string or null — page title
  • textExcerpt: string or null — visible text, truncated (default 2000 characters)
  • outboundLinks: string array — unique absolute http(s) links from the page (max 50)
  • ok: boolean — true when HTTP status is 2xx or 3xx
  • error: string or null — 404, BLOCKED_HOST, INVALID_URL, TIMEOUT, FETCH_FAILED, or other HTTP code
  • errorMessage: string or null — short explanation

Input

Field urls: list of public http/https URLs. Field url: optional single URL if urls is empty. Field excerptMaxChars: 200-8000, default 2000.

Example:

{ "urls": ["https://example.com/"], "excerptMaxChars": 2000 }

Pricing (pay-per-event)

You pay for events, not for a rental. Platform compute for the first 5 seconds of each run is covered when apify-actor-start is enabled.

  • page_brief (primary): once per URL that was actually fetched, including HTTP 404. $0.01
  • apify-actor-start: automatically when the run starts. Do not charge this from code. $0.00005 (Apify default)
  • apify-default-dataset-item: automatically on each default-dataset item. $0.00 (event kept; page_brief is the bill)

Not billed as page_brief: non-http(s) URLs, and Instagram / Facebook / TikTok / LinkedIn hosts. Those are rejected before fetch and returned as error items (INVALID_URL / BLOCKED_HOST).

Example: one run, three public pages = 1 start + 3 page_brief approx $0.03005.

Set a run budget of at least $0.02 so one start + one brief fits.

Limits

  • No login and no credentialed sessions
  • No JavaScript rendering. JS-heavy apps return whatever the raw HTML contains
  • No Instagram, Facebook, TikTok, or LinkedIn
  • No non-http(s) schemes
  • No crawling beyond the URLs you pass (outbound links are listed, not followed)

Memory

Default and min: 256 MB. Max: 1024 MB. HTTP-only. Extra RAM only raises platform cost.

How it works

  1. Read urls / url from input
  2. Reject blocked hosts and non-http(s) URLs without fetching
  3. GET each remaining URL with HTTPX (follow redirects, 20s timeout, 1 MB cap)
  4. Parse HTML with Beautiful Soup (lxml)
  5. Push one dataset item. Charge page_brief for fetched URLs (including 404)

Example output

{
"url": "https://example.com/",
"finalUrl": "https://example.com/",
"status": 200,
"title": "Example Domain",
"textExcerpt": "Example Domain This domain is for use in illustrative examples",
"outboundLinks": ["https://www.iana.org/domains/example"],
"ok": true,
"error": null,
"errorMessage": null
}

Local development (no Apify cloud)

pip install -r requirements.txt
ACTOR_TEST_PAY_PER_EVENT=true python main.py

Do not upload this Actor until the owner approves the SKU.

Owner

Joshua Atchison, joshuaatchison.atchison@gmail.com