Skip to main content

The Pexels API enables programmatic access to the full Pexels content library, including photos, videos

Project description

Pexels API Python

This Python API wrapper provides easy access to the Pexels API, allowing you to search and retrieve high-quality photos and videos for your projects.

Features

  • Search for photos and videos

  • Access curated and popular content

  • Retrieve specific photos and videos by ID

  • Explore featured collections

  • Manage your personal collections

Installation

bash

pip install pexels-apis

Usage

python

  • from pexels_apis import PexelsAPI
  • pexels = PexelsAPI("YOUR_API_KEY")
  • photos = pexels.search_photos({"query": "nature", "per_page": 10}) # Search for photos photos
  • curated_photos = pexels.get_curated_photos({"per_page": 15}) # Get curated photos
  • photo = pexels.get_photo(id=44315}) # Get photos by ID
  • videos = pexels.search_videos({"query": "ocean", "per_page": 5}) # Search for videos
  • popular_videos = pexels.get_popular_videos({"per_page": 20}) # Get popular videos
  • video = pexels.get_video(id=44315}) # Get vidoe by ID
  • collections = pexels.get_featured_collections({"per_page": 10}) # Get featured
  • my_collections = pexels.get_my_collections({"per_page": 10}) # Get featured

Available Methods

Photos


  • pexels.search_photos(params): Search for photos. Parameters in dict {} includes
    • query string | required The search query. Ocean, Tigers, Pears, etc.
    • orientation string | optional. Desired photo orientation. The current supported orientations are: landscape, portrait or square.
    • size string | optional. Minimum photo size. The current supported sizes are: large(24MP), medium(12MP) or small(4MP).
    • color string | optional. Desired photo color. Supported colors: red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white or any hexidecimal color code (eg. #ffffff).
    • locale string | optional. The locale of the search you are performing. The current supported locales are: 'en-US' 'pt-BR' 'es-ES' 'ca-ES' 'de-DE' 'it-IT' 'fr-FR' 'sv-SE' 'id-ID' 'pl-PL' 'ja-JP' 'zh-TW' 'zh-CN' 'ko-KR' 'th-TH' 'nl-NL' 'hu-HU' 'vi-VN' 'cs-CZ' 'da-DK' 'fi-FI' 'uk-UA' 'el-GR' 'ro-RO' 'nb-NO' 'sk-SK' 'tr-TR' 'ru-RU'.
    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80

Response: {"status_code": 200|401|412|500, "status": "success", "data": {'x':'y'}} or {"status_code": 200|401|412|500,"status": "error", "error": "error message"}

  • pexels.curated_photos(params): Get curated photos. Parameters in dict {} includes

    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80
  • pexels.get_photos(id): Retrieve a specific photo by ID. Parameters as id

    • id integer | required

Videos


  • pexels.search_videos(params): Search for videos. Parameters in dict {} includes

    • query string | required The search query. Ocean, Tigers, Pears, etc.
    • orientation string | optional. Desired photo orientation. The current supported orientations are: landscape, portrait or square.
    • size string | optional. Minimum photo size. The current supported sizes are: large(24MP), medium(12MP) or small(4MP).
    • locale string | optional. The locale of the search you are performing. The current supported locales are: 'en-US' 'pt-BR' 'es-ES' 'ca-ES' 'de-DE' 'it-IT' 'fr-FR' 'sv-SE' 'id-ID' 'pl-PL' 'ja-JP' 'zh-TW' 'zh-CN' 'ko-KR' 'th-TH' 'nl-NL' 'hu-HU' 'vi-VN' 'cs-CZ' 'da-DK' 'fi-FI' 'uk-UA' 'el-GR' 'ro-RO' 'nb-NO' 'sk-SK' 'tr-TR' 'ru-RU'.
    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80
  • pexels.get_popular_videos(params): Get popular videos

    • min_width integer | optional. The minimum width in pixels of the returned videos.
    • min_height integer | optional. The minimum height in pixels of the returned videos.
    • min_duration integer | optional. The minimum duration in seconds of the returned videos.
    • max_duration integer | optional. The maximum duration in seconds of the returned videos.
    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80
  • pexels.get_video(id): Retrieve a specific video by ID

    • id integer | required

Collections


  • pexels.get_featured_collections(params): Get featured collections

    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80
  • pexels.get_my_collections(params): Get your personal collections

    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80
  • pexels.get_collection_media(params): Get media from a specific collection

    • type string | optional. The type of media you are requesting. If not given or if given with an invalid value, all media will be returned. Supported values are photos and videos.
    • sort string | optional. The order of items in the media collection. Supported values are: asc, desc. Default: asc
    • page integer | optional. The page number you are requesting. Default: 1
    • per_page integer | optional. The number of results you are requesting per page. Default: 15 Max: 80

Parameters

Most methods accept a dictionary of parameters. Common parameters include:

  • query: Search query (required for search methods)
  • page: Page number (default: 1)
  • per_page: Results per page (default: 15, max: 80)
  • orientation: Photo/video orientation (landscape, portrait, square)
  • size: Minimum size (large, medium, small)
  • locale: Search locale (e.g., 'en-US', 'fr-FR')
  • color: Desired photo color. Supported colors: red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white or any hexidecimal color code (eg. #ffffff).

Response

The API returns JSON responses containing relevant data such as:

  • Arrays of Photo or Video objects
  • Pagination information
  • Total results
  • Next/previous page URLs

Error Handling

The API wrapper includes basic error handling for invalid parameters and API responses. Always check the returned data for any error messages or unexpected results.

Guidelines

Please adhere to the Pexels API Guidelines when using this wrapper and the content provided by Pexels.

Links

PYPI Github

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

pexels_apis-0.0.6.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

pexels_apis-0.0.6-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file pexels_apis-0.0.6.tar.gz.

File metadata

  • Download URL: pexels_apis-0.0.6.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pexels_apis-0.0.6.tar.gz
Algorithm Hash digest
SHA256 72f922e23c7477744abaf1d8e3981270be94e43f7a802e894ad8d5b2adf2532d
MD5 3e294422cc06a4f1e41f8f058164d25e
BLAKE2b-256 63f2222ff3ef56b52586bf2422afc8c22e4e43f84d22e469645026edd0fe4284

See more details on using hashes here.

Provenance

The following attestation bundles were made for pexels_apis-0.0.6.tar.gz:

Publisher: deploy-to-pypi.yml on mymi14s/pexels_apis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pexels_apis-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: pexels_apis-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pexels_apis-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c555a36b3969cdaf1a84813431d71c7db214ee42f2c3703bbd539915ecd0016b
MD5 08a342e04b46a7880a4ea1ba5aa3daf4
BLAKE2b-256 2bcfe4903d9334c940afbefadc59159ae44fab92d665301ece5db18f357545a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pexels_apis-0.0.6-py3-none-any.whl:

Publisher: deploy-to-pypi.yml on mymi14s/pexels_apis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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