Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the JENRIKS public 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%2Fjenriks.com%2Fjenriks" | 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%2Fjenriks.com%2Fjenriks" | 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 JENRIKS public API.
Search the photo archive newest first by q, photographer (Erik or Jens), category, year, and location with GET /api/v1/photos, paging by offset or next_cursor
Get today's photo, optionally for one photographer, with GET /api/v1/photos/latest
Fetch the photo published on a given date with GET /api/v1/photos/{date}
Pick a random photo filtered by photographer, category, or year with GET /api/v1/photos/random
GET STARTED
Read archive totals, categories with counts, posts per year, and license terms with GET /api/v1/overview
Run up to 20 read-only GET requests under /api/v1/ in one call with POST /api/v1/batch
Ask a natural-language question over titles, places, categories, tags, and photographers with GET /ask
Patterns agents use JENRIKS public API for, with concrete tasks.
★ Photo-of-the-day assistant through Jentic
An assistant that greets a user each morning can share the newest JENRIKS photograph. Through Jentic it finds the latest-photo operation by intent, calls GET /api/v1/photos/latest, and shows the photo with the required photographer credit and page link. The API needs no key, so there is nothing to store or rotate.
Call GET /api/v1/photos/latest, then show the photo's title and image with a credit to the photographer and a link to its page
Date-anchored photo lookups
Because JENRIKS has published one photo every day since 2006-01-01, any date maps to a photograph. GET /api/v1/photos/{date} returns the post for a YYYY-MM-DD date, which suits anniversary cards, calendar widgets, or on-this-day features.
Call GET /api/v1/photos/{date} with date '2012-07-14' and return the photo title, place, and photographer
Archive search and batch fetches
To build a gallery, an agent searches GET /api/v1/photos with filters like location and year and pages with next_cursor. When it needs several lookups at once, such as the overview plus three searches, POST /api/v1/batch runs up to 20 GET requests in one call, returns responses in request order, and counts as one request against the rate limit.
Call POST /api/v1/batch with requests for GET /api/v1/overview and GET /api/v1/photos?location=Berlin&year=2020, then build a gallery from the responses
40 endpoints — the jenriks public api serves the jenriks daily photo archive, one photograph a day since 2006-01-01 by the photographers erik and jens, as public, read-only, and free json with no key or account.
METHOD
PATH
DESCRIPTION
/api/v1/photos
Search photos
/api/v1/photos/latest
Today's photo
/api/v1/photos/{date}
Photo by publication date
/api/v1/photos/random
Random photo
/api/v1/overview
Site overview
/api/v1/batch
Run up to 20 GET requests in one call
/ask
Natural-language search
/api/v1/photos
Search photos
/api/v1/photos/latest
Today's photo
/api/v1/photos/{date}
Photo by publication date
/api/v1/photos/random
Random photo
/api/v1/overview
Site overview
/api/v1/batch
Run up to 20 GET requests in one call
/ask
Natural-language search
What agents get from Jentic-routed access to this vendor.
Setup
Wiring JENRIKS by hand means learning its offset and cursor paging, its batch request shape, and its RFC 9457 problem documents. Through Jentic you install once, import the JENRIKS public API from the API Directory, and your agent calls it with no credential to manage.
Permission scoping
The JENRIKS API is read-only and puts the publication date in the URL path (/api/v1/photos/{date}), so a rule can hold your agent to the photo operations you pick. You choose the operations it may call, so feeds, sitemaps, and discovery documents are not included unless you add them.
Credential isolation
The JENRIKS public API needs no key or account, so there is nothing to store. For any API you add that does use a key, your own Jentic One instance keeps it encrypted and injects it at execution time, out of the agent's prompt, logs, and context.
Intent-based discovery
Agents search Jentic by intent such as 'show today's photo' or 'find photos by location', and Jentic returns the matching JENRIKS operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using JENRIKS public API through Jentic.
Is there a JENRIKS MCP server?
Yes - per its OpenAPI spec, JENRIKS offers an MCP server at /mcp. You can also connect the JENRIKS public API directly through Jentic: your agent gets the full 40-endpoint surface from the spec without loading another server's tool definitions into its context, and your rules decide which operations the agent may call.
Does the JENRIKS public API need authentication?
No. Per its OpenAPI spec, everything is public, read-only, and free: no API key, no OAuth, no accounts, and no write operations. The spec declares no security schemes.
What are the rate limits for the JENRIKS public API?
Per the OpenAPI spec, the quota is 120 requests per minute per client IP on /api, /mcp, and /ask, advertised through RateLimit headers, and a 429 response carries Retry-After. One POST /api/v1/batch call counts as one request.
Can I limit what my agent is allowed to do with the JENRIKS public API?
Yes. For example, write a rule that allows only GET /api/v1/photos, GET /api/v1/photos/latest, and GET /api/v1/photos/{date}. Your agent can then search and fetch photos but not pull the feeds, sitemaps, or discovery documents, and every call it makes is logged.
Can I use JENRIKS photos in my app?
The photographs are copyrighted. Per the spec, credit the photographer and link the photo's page when you show one; licensing is arranged through the JENRIKS contact page. GET /api/v1/overview with include license returns the license terms.
How do I search the archive through Jentic?
Search Jentic for 'search the JENRIKS photo archive', load the searchPhotos operation, and call GET /api/v1/photos with q, photographer, category, year, or location, paging with offset or cursor. To run it on your own infrastructure, install Jentic One from its GitHub repo.
For Agents
Search the JENRIKS daily photo archive by text, photographer, category, year, or location, fetch today's, a random, or a dated photo, and batch several read-only lookups in one call.
Use for: Show me today's JENRIKS photo, Find all photos of Hamburg taken by Jens, Get the photo that was published on my birthday in 2012, Pick a random landscape photo from 2019
Not supported: Does not accept uploads, license stock images, or edit photos. Use for reading and searching the JENRIKS daily photo archive only.
The JENRIKS public API serves the JENRIKS daily photo archive, one photograph a day since 2006-01-01 by the photographers Erik and Jens, as public, read-only, and free JSON with no key or account. It searches the archive by free text, photographer, category, year, and location, returns today's photo, a random photo, or the photo for any publication date, and summarises the archive with totals, categories, and posts per year. A batch operation runs up to 20 read-only GET requests in one call, and an NLWeb-style natural-language search answers over titles, places, categories, tags, and photographers. Every page also has a Markdown twin, alongside RSS, JSON Lines, and sitemap feeds; photographs are copyrighted, so results must credit the photographer and link the page.
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>