> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tallyscrape.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Web scraping API with pay-per-use billing. Send a URL, get structured JSON.

## What is Tallyscrape?

Tallyscrape is a web scraping API built for SaaS products. You send a URL, we return
**structured JSON** (title, metadata, headings, links, images, text, and any fields you
target with CSS selectors). Every request is timed and billed **per use** — no monthly
subscription, you only pay for what you actually scrape.

<CardGroup cols={2}>
  <Card title="Structured JSON" icon="brackets-curly">
    Clean, predictable output. Extract exactly the fields you need with CSS selectors.
  </Card>

  <Card title="Pay-per-use" icon="coins">
    Prepaid credits, debited only on a real success. No subscription, no minimum commitment.
  </Card>

  <Card title="Static & JS engines" icon="bolt">
    Fast HTTP fetch, or a full headless browser (`js`) for pages that render client-side.
  </Card>

  <Card title="Proxy tiers" icon="globe">
    Route through `datacenter` or `residential` proxies — the server owns the credentials,
    you just pick a tier.
  </Card>
</CardGroup>

## Base URL

All API requests go to:

```
https://api.tallyscrape.com
```

## How it works

<Steps>
  <Step title="Get an API key">
    Create an account on the [dashboard](https://tallyscrape.com) and copy your API key
    (it starts with `spy_`). See [Authentication](/authentication).
  </Step>

  <Step title="Buy credits">
    Top up your prepaid balance. 1 € = 1000 credits. See [Credits](/credits).
  </Step>

  <Step title="Scrape">
    Send a `POST /scrape` request with your target URL. See the [Quickstart](/quickstart).
  </Step>
</Steps>

## Responsible scraping

Tallyscrape respects `robots.txt` by default, detects anti-bot pages (returned as
`blocked` without billing you), and does not solve CAPTCHAs. These guarantees are part of
the product — see [`respect_robots`](/endpoints/scrape) and [Errors](/errors).
