openapi: 3.1.0 info: title: Pexels API description: | The Pexels API provides programmatic access to Pexels' free stock photo and video library, plus curated collections. Use it to search photos and videos, fetch curated and popular media, and integrate Pexels content into apps and websites. version: '1.0' contact: name: Pexels API url: https://www.pexels.com/api/ termsOfService: https://www.pexels.com/terms-of-service/ externalDocs: description: Pexels API Documentation url: https://www.pexels.com/api/documentation/ servers: - url: https://api.pexels.com/v1 description: Pexels production API tags: - name: Photos description: Search, browse, and retrieve photos. - name: Videos description: Search, browse, and retrieve videos. - name: Collections description: Browse featured and user-owned collections. paths: /search: get: operationId: searchPhotos summary: Search Photos description: Search the Pexels photo library by keyword. tags: - Photos security: - apiKeyAuth: [] parameters: - in: query name: query required: true schema: type: string description: Search keyword such as "Ocean" or "Tigers". - in: query name: orientation schema: type: string enum: [landscape, portrait, square] - in: query name: size schema: type: string enum: [large, medium, small] - in: query name: color schema: type: string - in: query name: locale schema: type: string - in: query name: page schema: type: integer default: 1 - in: query name: per_page schema: type: integer default: 15 maximum: 80 responses: '200': description: Photo search results. /curated: get: operationId: getCuratedPhotos summary: Curated Photos description: Returns real-time curated photos selected by Pexels. tags: - Photos security: - apiKeyAuth: [] parameters: - in: query name: page schema: type: integer - in: query name: per_page schema: type: integer maximum: 80 responses: '200': description: Curated photos. /photos/{id}: get: operationId: getPhoto summary: Get Photo description: Retrieve a specific photo by ID. tags: - Photos security: - apiKeyAuth: [] parameters: - in: path name: id required: true schema: type: string responses: '200': description: A single photo resource. /videos/search: get: operationId: searchVideos summary: Search Videos description: Search the Pexels video library by keyword. tags: - Videos security: - apiKeyAuth: [] parameters: - in: query name: query required: true schema: type: string - in: query name: orientation schema: type: string enum: [landscape, portrait, square] - in: query name: size schema: type: string enum: [large, medium, small] - in: query name: locale schema: type: string - in: query name: page schema: type: integer - in: query name: per_page schema: type: integer maximum: 80 responses: '200': description: Video search results. /videos/popular: get: operationId: getPopularVideos summary: Popular Videos description: Returns currently trending videos. tags: - Videos security: - apiKeyAuth: [] parameters: - in: query name: min_width schema: type: integer - in: query name: min_height schema: type: integer - in: query name: min_duration schema: type: integer - in: query name: max_duration schema: type: integer - in: query name: page schema: type: integer - in: query name: per_page schema: type: integer maximum: 80 responses: '200': description: Popular videos. /videos/videos/{id}: get: operationId: getVideo summary: Get Video description: Retrieve a specific video by ID. tags: - Videos security: - apiKeyAuth: [] parameters: - in: path name: id required: true schema: type: string responses: '200': description: A single video resource. /collections/featured: get: operationId: getFeaturedCollections summary: Featured Collections description: Returns curated public collections. tags: - Collections security: - apiKeyAuth: [] parameters: - in: query name: page schema: type: integer - in: query name: per_page schema: type: integer responses: '200': description: Featured collections. /collections: get: operationId: getMyCollections summary: My Collections description: Returns the authenticated user's collections. tags: - Collections security: - apiKeyAuth: [] parameters: - in: query name: page schema: type: integer - in: query name: per_page schema: type: integer responses: '200': description: User collections. /collections/{id}: get: operationId: getCollectionMedia summary: Collection Media description: Returns photos and videos within a collection. tags: - Collections security: - apiKeyAuth: [] parameters: - in: path name: id required: true schema: type: string - in: query name: type schema: type: string enum: [photos, videos] - in: query name: sort schema: type: string - in: query name: page schema: type: integer - in: query name: per_page schema: type: integer responses: '200': description: Collection contents. components: securitySchemes: apiKeyAuth: type: apiKey in: header name: Authorization description: | Pexels uses an API-key in the `Authorization` request header. Send your key as `Authorization: YOUR_API_KEY` on every request.