Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Pexafy API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fpexafy.com%2Fpexafy" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fpexafy.com%2Fpexafy" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Pexafy API.
Search stock photos with a full natural-language sentence ranked by meaning across Unsplash, Pexels, and Pixabay
Find visually similar photos from an uploaded image or an existing photo_id, optionally steered with text
Filter results by color_name or color_hex, orientation, license_type, source, photographer, and after_date
Retrieve a photo's full details including width, height, source_image_url, and attribution
GET STARTED
Autocomplete photographer usernames and list a photographer's profiles across providers
Save photos into named collections and remove them again
Check this month's request usage, remaining quota, and usage per API key
Patterns agents use Pexafy API for, with concrete tasks.
★ Agent picking a hero image through Jentic
An AI agent drafting a blog post or landing page needs an image that matches the mood of the text, not just a keyword. Through Jentic the agent searches for 'find a stock photo by description', loads the Pexafy photo search operation with its input schema, and passes a descriptive sentence in q with an orientation filter. The response includes urls and the attribution string, so the agent can insert the photo with its credit line, while your x-api-key stays with your own Jentic One instance.
Call GET /api/v1/search/photos with q='two people sharing a bench in a park at sunset', orientation=landscape, and per_page=5, then return the first photo's urls and attribution
Finding alternatives to an existing image
Designers often have one photo that is almost right and want options with the same subject, composition, or colours. Pexafy accepts an uploaded image or a photo_id as the reference, and an optional q plus text_alpha balances words against the picture. The similar-photos operation returns lookalikes for a photo already in the library, never including the reference itself.
Call GET /api/v1/photos/{photo_id}/similar with the chosen photo_id and per_page=10, then list the photographer and source for each result
Brand-consistent image sets
Marketing teams building a campaign want photos that share a palette and licence terms. The colours facet lists the color_name values search accepts, color_hex with color_tolerance keeps results near a brand colour, and license_type and source filters keep only photos that can be used in a given way.
Call GET /api/v1/facets/licenses, then GET /api/v1/search/photos with q='minimal office workspace', color_hex='#1E90FF', color_tolerance=30, and license_type=free
Moodboards with saved collections
A creative agent gathers candidates into a collection that a person can review later. Creating a collection needs only a name, adding a photo needs its photo_id, and a duplicate add returns a 409. Removing the cover photo promotes the most recently added remaining photo to cover.
Call POST /api/v1/collections with name='Autumn campaign', then POST /api/v1/collections/{collection_id}/photos with a photo_id from a search result
20 endpoints — the pexafy api searches free stock-photo libraries, among them unsplash, pexels, and pixabay, by meaning rather than keywords and returns every photo in one response schema.
METHOD
PATH
DESCRIPTION
/api/v1/search/photos
Search photos with natural language
/api/v1/search/photos
Search photos by reference image
/api/v1/photos/{photo_id}
Get a photo's full details
/api/v1/photos/{photo_id}/similar
Get visually similar photos
/api/v1/facets/sources
List photo providers
/api/v1/collections
Create a collection
/api/v1/collections/{collection_id}/photos
Add a photo to a collection
/api/v1/usage
Get this month's request usage
/api/v1/search/photos
Search photos with natural language
/api/v1/search/photos
Search photos by reference image
/api/v1/photos/{photo_id}
Get a photo's full details
/api/v1/photos/{photo_id}/similar
Get visually similar photos
/api/v1/facets/sources
List photo providers
/api/v1/collections
Create a collection
/api/v1/collections/{collection_id}/photos
Add a photo to a collection
/api/v1/usage
Get this month's request usage
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Pexafy by hand means creating an API key, sending it in the x-api-key header, and handling cursor pagination through pagination.next_cursor and multipart uploads for image search. Through Jentic you install once, import Pexafy from the API Directory, store the key once, and your agent calls it.
Permission scoping
Pexafy puts the collection id in the URL path (/api/v1/collections/{collection_id}/photos), so a rule can pin your agent to one collection while it searches freely. You choose the operations it may call, so destructive ones like deleting a collection or removing photos are not included unless you add them.
Credential isolation
Your Pexafy API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'find a stock photo by description' or 'find similar images', and Jentic returns the matching Pexafy operation with its input schema, including the colour, orientation, and licence filters, so the agent calls it without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Pexafy API through Jentic.
What authentication does the Pexafy API use?
The Pexafy API authenticates with an API key sent in the x-api-key header (ApiKeyAuth) per its OpenAPI spec. Keys are issued from the Pexafy dashboard without an application review. Through Jentic the key is stored by your own instance and attached at call time, so the agent never handles it.
Can I search the Pexafy API with an image instead of text?
Yes. POST /api/v1/search/photos takes an uploaded image file, or a photo_id query parameter for a photo already in the library, and returns visually similar photos. You can add words in q to steer the match and set text_alpha to balance the text against the image.
What are the rate limits for the Pexafy API?
The OpenAPI spec does not state numeric limits; quotas depend on your plan, listed at https://pexafy.com/pricing/. The GET /api/v1/usage operation reports used, limit, and remaining requests for the current billing month, so an agent can check its headroom before a large batch.
Is there a Pexafy MCP server?
Yes - per its OpenAPI spec description, Pexafy also exposes an MCP server for LLM clients. You can also connect the Pexafy API directly through Jentic: your agent gets the full 20-endpoint surface from the spec without loading another server's tool definitions into its context, your key is injected at call time by your self-hosted instance instead of living in an MCP config, and your rules decide which operations the agent may call.
How do I find a stock photo by description through Jentic?
Search Jentic for 'find a stock photo by description', load the GET /api/v1/search/photos operation, and execute it with a descriptive sentence in q plus any filters such as orientation or source. Each result includes urls and an attribution string to display. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the Pexafy API?
Yes. Write a rule that allows the photo search and photo detail operations plus adding photos under one collection id, and the agent can find images and save them to that moodboard while deleting collections stays out of reach. Every call it makes is logged for review.
For Agents
Find free stock photos from Unsplash, Pexels, and Pixabay by natural-language description or by a reference image, with colour, orientation, licence, and photographer filters and ready-made attribution.
Use for: Find a photo of a tired developer at a desk in warm lamp light, Search for landscape photos with a teal dominant colour, Get photos that look similar to this one, Retrieve the attribution string for a stock photo
Not supported: Does not host your own uploads, edit or resize images, or license paid stock photos. Use for searching free stock photos and saving them to collections only.
The Pexafy API searches free stock-photo libraries, among them Unsplash, Pexels, and Pixabay, by meaning rather than keywords and returns every photo in one response schema. A natural-language query or an uploaded reference image returns ranked matches, filtered by dominant colour name or hex, orientation, licence type, source, photographer, and publish date. Each photo carries its urls, dimensions, photographer, licence, and the attribution string to display, and saved collections and monthly, daily, and per-key usage counters round out the account side.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>