Async Object-oriented Python SDK for the Pexels API.
Overview • Quick Start • Examples • Bugs and Feature Requests • PyPI
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:
httpxfor asynchronous APIpydanticfor models
Supported Python versions:
- 3.11
- 3.12
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.
pip install pypexelIt'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")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.
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())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())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.