canonical: https://jentic.com/apis/jenriks.com/jenriks

# JENRIKS public API

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.

## For AI 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.

## Scope

Does not accept uploads, license stock images, or edit photos. Use for reading and searching the JENRIKS daily photo archive only.

## Capabilities

- 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`
- 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

## Use cases

### 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.

Example prompt: 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.

Example prompt: 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.

Example prompt: 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

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/photos` | Search photos |
| GET | `/api/v1/photos/latest` | Today's photo |
| GET | `/api/v1/photos/{date}` | Photo by publication date |
| GET | `/api/v1/photos/random` | Random photo |
| GET | `/api/v1/overview` | Site overview |
| POST | `/api/v1/batch` | Run up to 20 GET requests in one call |
| GET | `/ask` | Natural-language search |

## Key resources

- **Photos** — Daily posts with title, place, categories, tags, photographer, and page link
- **Overview** — Archive totals, photographers, categories with counts, posts per year, and license terms
- **Batch** — Up to 20 read-only GET sub-requests in one call
- **Natural-language search** — NLWeb-style free-text search over the archive
- **Markdown twins and feeds** — Markdown versions of pages plus RSS, JSON Lines, and sitemaps

## AI readiness

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.

- **Score:** 76 / 100
- **Maturity:** AI-Ready
- **Dimensions:**
  - Foundational Compliance: 74 / 100
  - Developer Experience & Jentic Compatibility: 69 / 100
  - AI-Readiness & Agent Experience: 74 / 100
  - Agent Usability: 94 / 100
  - Security: 100 / 100
  - AI Discoverability: 56 / 100
- **View full report:** https://jentic.com/apis/jenriks.com/jenriks/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **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 handling:** 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.
- **Discovery method:** 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.

## Related APIs

- **Pexels Image & Video API** — Free stock photos and videos
- **Pixabay** — Free stock images, illustrations, and videos
- **Flickr API** — Community photo hosting and search

## FAQ

### 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.
