# Zyte API usage documentation

## Initial setup

How would you prefer to use Zyte API?

> #### Scrapy
> 
> Use [scrapy-zyte-api](https://scrapy-zyte-api.readthedocs.io/en/latest/index.html) ([tutorial](../../web-scraping/tutorials/main/index.md#tutorial)).

> #### Python
> 
> Use [python-zyte-api](http://python-zyte-api.readthedocs.io/).

> #### HTTP clients
> 
> `POST` to `https://api.zyte.com/v1/extract` with your [Zyte API key](https://app.zyte.com/o/zyte-api/api-access) and [parameters](reference.md#zapi-reference):
> 
> ```shell
> curl \
>     --user YOUR_ZYTE_API_KEY: \
>     --header 'Content-Type: application/json' \
>     --data '{"url": "https://toscrape.com", "httpResponseBody": true}' \
>     --compressed \
>     https://api.zyte.com/v1/extract
> ```

> #### Proxy mode
> 
> Use `https://api.zyte.com:8011` as your [proxy endpoint](proxy-mode.md#zapi-proxy), with your [Zyte API key](https://app.zyte.com/o/zyte-api/api-access) and [proxy headers](proxy-mode.md#zapi-proxy-headers):
> 
> ```shell
> curl \
>     --proxy api.zyte.com:8011 \
>     --proxy-user YOUR_ZYTE_API_KEY: \
>     --compressed \
>     https://toscrape.com
> ```

> [!TIP]
> Learn about the [different features](proxy-mode.md#zapi-proxy-diff) of the
> [HTTP API](reference.md#zapi-reference) and the [proxy mode](proxy-mode.md#zapi-proxy)
> before you choose one.

> [!TIP]
> Got an SSL error? [Install our CA certificate](../../misc/ca.md#ca).

## Basic usage

What do you want to do with Zyte API?

> #### [HTTP requests](http.md)
> 
> Send low-level HTTP requests, with custom method, headers and body,
> opt-out redirection following, device emulation, and more.
> 
> [HTTP](http.md)

> #### [Browser automation](browser.md)
> 
> Get browser-rendered HTML, take screenshots, interact with pages,
> capture background requests, and more.
> 
> [Browser](browser.md)

> #### [Automatic extraction](extract/index.md)
> 
> Get structured data from single pages or entire websites, and
> enrich it with custom LLM prompts.
> 
> [Extraction](extract/index.md)

> #### [Search API](search/index.md)
> 
> Search Google with a typed interface and get back structured
> organic results — no URL construction needed.
> 
> [Search API](search/index.md)

### Additional features

Customize your Zyte API requests further to get what you want:

> #### [Geolocation](features.md#zapi-geolocation.md)
> 
> Choose a location of origin for your request.

> #### [IP type](features.md#zapi-ip-type.md)
> 
> Choose the type of IP address used by your request.

> #### [Cookies](features.md#zapi-cookies.md)
> 
> Get and set cookies to reproduce requests and maintain sessions.

> #### [Sessions](features.md#zapi-sessions.md)
> 
> Use the same IP address, cookie jar, network stack, etc. on multiple
> requests.

## Advanced topics

> #### [Proxy mode](proxy-mode.md)
> 
> Use Zyte API as a proxy.

> #### [Rate limits](rate-limit.md)
> 
> Requests-over-time and concurrency limits.

> #### [Optimization](optimize.md)
> 
> Make the most out of Zyte API.

> #### [Error handling](errors.md)
> 
> Error response handling.

> #### [API reference](reference.md)
> 
> Complete API reference documentation.

> #### Stats API
> 
> Check your Zyte API usage details.
> 
> stats
