Skip to main content

Async Object-oriented Python SDK for the Pexels API.

Project description

Async Object-oriented Python SDK for the Pexels API.

OverviewQuick StartExamplesBugs and Feature RequestsPyPI

GitHub release (latest SemVer) PyPI - Version GitHub issues Build Status Checked with mypy
PyPI - Downloads PyPI - Python Version codecov

Overview

This SDK is designed to interact with the Pexels API in a more object-oriented way. It provides asynchronous methods to interact with the API. The SDK is designed to be as simple as possible to use, while still providing a lot of flexibility and uses Pydantic models to validate the data.
Used dependencies:

  • httpx for asynchronous API
  • pydantic for models

Supported Python versions:

  • 3.11
  • 3.12

Quick Start

After installing the SDK, you can create a new instance of the API. When creating a new instance, you can either use environment variables or pass the credentials directly. It's strongly recommended to use environment variables to store the API credentials.

Installation

pip install pypexel

Create a new instance of the API

It's recommended to use an environment variable to store the API credentials:

import os

os.environ["PEXELS_API_KEY"] = "your-api-key"

To work asynchronously:

import pypexel as pex

# Using environment variables:
api = pex.AsyncApi.from_env()

# Or using the credentials directly:
api = pex.AsyncApi("your-api-key")

Examples

You'll find detailed docs with usage examples for both APIs and for used models in the corresponding package directories:

In this section, you'll find some examples of how to use the SDK. You can also check out the demo.py file in the root directory for more examples.

Search for photos

import asyncio
import os
import pypexel as pex

os.environ["PEXELS_API_KEY"] = "your-api-key"

api = pex.AsyncApi.from_env()

async def main():
    # Search for photos with the query "nature"
    photos = await api.photos.search("nature", limit=10)
    
    # Print the first photo's URL
    if photos:
        print(photos[0].src.original)
    else:
        print("No photos found.")

asyncio.run(main())

Search for videos

import asyncio
import os
import pypexel as pex

os.environ["PEXELS_API_KEY"] = "your-api-key"
api = pex.AsyncApi.from_env()

async def main():
    # Search for videos with the query "nature"
    videos = await api.videos.search("nature", limit=10)
    
    # Print the first video URL
    if videos:
        print(videos[0].video_files[0].link)
    else:
        print("No videos found.")

asyncio.run(main())

Bugs and Feature Requests

If you find a bug or have a feature request, please open an issue on the GitHub repository.
You're also welcome to contribute to the project by opening a pull request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypexel-0.0.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypexel-0.0.2-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file pypexel-0.0.2.tar.gz.

File metadata

  • Download URL: pypexel-0.0.2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pypexel-0.0.2.tar.gz
Algorithm Hash digest
SHA256 7b74b52b7475b30f532a9fb1a96117d03285f0f4c40b9451778ac0d143c39251
MD5 d44d8fe706c4d808e5dbdff6c4ad27f3
BLAKE2b-256 9e7ebfe32993a3e2931da7f43c1d9185fc6675de88bb4dcccaddaa4aa2afce0e

See more details on using hashes here.

File details

Details for the file pypexel-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pypexel-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pypexel-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cac89096b140a625d465ff541c771b2c88b2599373b3fc2e77b03319b218c477
MD5 c5b646e689e1cb42706231bf59a721bf
BLAKE2b-256 1fc92dd72303aaba67eb3df1e5de42b7eaec265d230aa5f09d3dbfab2f3e68aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page