---
title: "Website Scraper API"
url: "https://lookvalid.com/products/website-scraper.md"
canonical_url: "https://lookvalid.com/products/website-scraper"
last_updated: "2026-10-22"
type: "product"
summary: "Fetches a public web page and returns its title, metadata, readable text and links."
related: ["https://lookvalid.com/pricing.md", "https://lookvalid.com/docs/api/website-scraper.md"]
---

# Website Scraper API

Fetches a public web page and returns its title, metadata, readable text and links.

Fetches a public web page and returns its title, metadata, readable text and links.

## Facts

- Endpoint: `POST https://YOUR_API_HOST/v1/website-scraper`
- Price: 10 credits per successful scrape (errors, empty and blocked pages are free)
- Charged: Only when a lookup finds something
- Cache: repeating the same lookup within 7 days is free

## Example request

```sh
curl -X POST https://YOUR_API_HOST/v1/website-scraper \
  -H "Authorization: Bearer $LOOKVALID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","format":"markdown"}'
```

## Response

The `data` object has 14 named fields. Every response also lists the sources behind the result, the credits charged and whether it was served from your cache.

| Field | Type | Description |
| --- | --- | --- |
| `final_url` | string |  |
| `status` | integer |  |
| `title` | string or null |  |
| `description` | string or null |  |
| `canonical` | string or null |  |
| `language` | string or null |  |
| `headings` | array of object |  |
| `format` | "markdown" | "text" | "html" |  |
| `content` | string |  |
| `content_truncated` | boolean |  |
| `links` | object |  |
| `images` | integer |  |
| `word_count` | integer |  |
| `fetched_at` | string |  |

## Priced in credits

| Case | Charge |
| --- | --- |
| Found | 10 credits |
| Nothing found | 0 credits |
| Repeat inside 7 days | 0 credits |
| Errors and invalid requests | 0 credits |

## Questions

### How much does Website Scraper cost?

10 credits per successful scrape (errors, empty and blocked pages are free). Credits come out of the one balance shared by every LookValid product.

### Am I charged when nothing is found?

No. When the lookup runs and finds nothing, it returns found: false and costs 0 credits. An error costs nothing either.

### How long are results cached?

For 7 days, per account. Repeating the same lookup inside that window returns cache_hit: true and costs 0 credits.

### Which API key do I use?

The same key as every other product. Send it as a Bearer token in the Authorization header. Email hello@lookvalid.com and we set up your account and send the key.

## Related products

- [Domain Authority](https://lookvalid.com/products/domain-authority.md): A 0 to 100 authority score for a domain, with every input shown: its Common Crawl web graph harmonic centrality and PageRank positions and its Majestic Million rank and referring subnets.
- [Domain Age](https://lookvalid.com/products/domain-age.md): Registration, last update and expiry dates, registrar and age in days for a domain, from the registry's public RDAP service.
- [Website Contacts Scraper](https://lookvalid.com/products/website-contacts-scraper.md): Reads a domain's public pages and returns the email addresses, phone numbers and social profile links they publish.

Full request and response fields: [Website Scraper reference](https://lookvalid.com/docs/api/website-scraper.md).

## Related

- [Plans, trial and credit pricing](https://lookvalid.com/pricing.md)
- [Website Scraper reference](https://lookvalid.com/docs/api/website-scraper.md)
