Metadata-Version: 2.1
Name: zyte-api
Version: 0.6.0
Summary: Python interface to Zyte API
Home-page: https://github.com/zytedata/python-zyte-api
Author: Zyte Group Ltd
Author-email: opensource@zyte.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: aiohttp>=3.8.0
Requires-Dist: attrs
Requires-Dist: brotli
Requires-Dist: runstats
Requires-Dist: tenacity
Requires-Dist: tqdm
Requires-Dist: w3lib>=2.1.1

===============
python-zyte-api
===============

.. image:: https://img.shields.io/pypi/v/zyte-api.svg
   :target: https://pypi.python.org/pypi/zyte-api
   :alt: PyPI Version

.. image:: https://img.shields.io/pypi/pyversions/zyte-api.svg
   :target: https://pypi.python.org/pypi/zyte-api
   :alt: Supported Python Versions

.. image:: https://github.com/zytedata/python-zyte-api/actions/workflows/test.yml/badge.svg
   :target: https://github.com/zytedata/python-zyte-api/actions/workflows/test.yml
   :alt: Build Status

.. image:: https://codecov.io/github/zytedata/zyte-api/coverage.svg?branch=master
   :target: https://codecov.io/gh/zytedata/zyte-api
   :alt: Coverage report

.. description-start

Command-line client and Python client library for `Zyte API`_.

.. _Zyte API: https://docs.zyte.com/zyte-api/get-started.html

.. description-end

Installation
============

.. install-start

.. code-block:: shell

    pip install zyte-api

.. note:: Python 3.8+ is required.

.. install-end

Basic usage
===========

.. basic-start

Set your API key
----------------

.. key-get-start

After you `sign up for a Zyte API account
<https://app.zyte.com/account/signup/zyteapi>`_, copy `your API key
<https://app.zyte.com/o/zyte-api/api-access>`_.

.. key-get-end


Use the command-line client
---------------------------

Then you can use the zyte-api command-line client to send Zyte API requests.
First create a text file with a list of URLs:

.. code-block:: none

    https://books.toscrape.com
    https://quotes.toscrape.com

And then call ``zyte-api`` from your shell:

.. code-block:: shell

    zyte-api url-list.txt --api-key YOUR_API_KEY --output results.jsonl


Use the Python sync API
-----------------------

For very basic Python scripts, use the sync API:

.. code-block:: python

    from zyte_api import ZyteAPI

    client = ZyteAPI(api_key="YOUR_API_KEY")
    response = client.get({"url": "https://toscrape.com", "httpResponseBody": True})


Use the Python async API
------------------------

For asyncio code, use the async API:

.. code-block:: python

    import asyncio

    from zyte_api import AsyncZyteAPI


    async def main():
        client = AsyncZyteAPI(api_key="YOUR_API_KEY")
        response = await client.get(
            {"url": "https://toscrape.com", "httpResponseBody": True}
        )


    asyncio.run(main())

.. basic-end

Read the `documentation <https://python-zyte-api.readthedocs.io>`_  for more
information.

* Documentation: https://python-zyte-api.readthedocs.io
* Source code: https://github.com/zytedata/python-zyte-api
* Issue tracker: https://github.com/zytedata/python-zyte-api/issues
