PhotoPrism Internal API
The Internal API from PhotoPrism — 1 operation(s) for internal.
The Internal API from PhotoPrism — 1 operation(s) for internal.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/photoprism:photoprism-internal-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact: {}
description: 'API request bodies and responses are usually JSON-encoded, except for binary data and some of the OAuth2 endpoints. Note that the `Content-Type` header must be set to `application/json` for this, as the request may otherwise fail with error 400.
When clients have a valid access token, e.g. obtained through the `POST /api/v1/session` or `POST /api/v1/oauth/token` endpoint, they can use a standard Bearer Authorization header to authenticate their requests. Submitting the access token with a custom `X-Auth-Token` header is supported as well.'
title: PhotoPrism Internal API
version: v1
servers:
- url: https://demo.photoprism.app
security:
- BearerAuth: []
tags:
- name: Internal
paths:
/api/v1/server/stop:
post:
operationId: StopServer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/config.Options'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/i18n.Response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/i18n.Response'
summary: allows authorized admins to restart the server
tags:
- Internal
components:
schemas:
config.Options:
properties:
AppColor:
type: string
AppIcon:
type: string
AppMode:
type: string
AppName:
type: string
AutoImport:
type: integer
AutoIndex:
type: integer
BackupAlbums:
default: true
type: boolean
BackupDatabase:
default: true
type: boolean
BackupRetain:
type: integer
BackupSchedule:
type: string
CdnUrl:
type: string
CdnVideo:
type: boolean
Debug:
type: boolean
DefaultLocale:
type: string
DefaultTLS:
type: boolean
DefaultTheme:
type: string
DefaultTimezone:
type: string
DetectNSFW:
type: boolean
DisableBackups:
type: boolean
DisableClassification:
type: boolean
DisableDarktable:
type: boolean
DisableExifTool:
type: boolean
DisableFFmpeg:
type: boolean
DisableFaces:
type: boolean
DisableHeifConvert:
type: boolean
DisableImageMagick:
type: boolean
DisableJpegXL:
type: boolean
DisableMCP:
type: boolean
DisableOIDC:
type: boolean
DisablePlaces:
type: boolean
DisableRaw:
type: boolean
DisableRawTherapee:
type: boolean
DisableSips:
type: boolean
DisableTLS:
type: boolean
DisableTensorFlow:
type: boolean
DisableVectors:
type: boolean
DisableWebDAV:
type: boolean
ExifBruteForce:
type: boolean
Experimental:
type: boolean
FFmpegBitrate:
type: integer
FFmpegEncoder:
type: string
FFmpegFisheyeFov:
type: integer
FFmpegMapAudio:
type: string
FFmpegMapVideo:
type: string
FFmpegPreset:
type: string
FFmpegQuality:
type: integer
FFmpegSize:
type: integer
HttpCacheMaxAge:
type: integer
HttpCachePublic:
type: boolean
HttpVideoMaxAge:
type: integer
HttpsProxy:
type: string
HttpsProxyInsecure:
type: boolean
ImportAllow:
type: string
IndexSchedule:
type: string
IndexWorkers:
type: string
JpegQuality:
type: integer
JpegSize:
type: integer
LegalInfo:
type: string
LegalUrl:
type: string
OIDCIcon:
type: string
OIDCLogout:
type: boolean
OIDCProvider:
type: string
OIDCRedirect:
type: boolean
OIDCRegister:
type: boolean
OriginalsLimit:
type: integer
PlacesLocale:
type: string
PngSize:
type: integer
Prod:
type: boolean
RawPresets:
type: boolean
ReadOnly:
type: boolean
ResolutionLimit:
type: integer
SidecarYaml:
default: true
type: boolean
SiteAuthor:
type: string
SiteCaption:
type: string
SiteDescription:
type: string
SiteFavicon:
type: string
SiteName:
type: string
SitePreview:
type: string
SiteTitle:
type: string
SiteUrl:
type: string
TLSCert:
type: string
TLSEmail:
type: string
TLSKey:
type: string
Test:
type: boolean
ThumbColor:
type: string
ThumbLibrary:
type: string
ThumbSize:
type: integer
ThumbSizeFace:
type: integer
ThumbSizeUncached:
type: integer
ThumbUncached:
type: boolean
Trace:
type: boolean
UsageInfo:
type: boolean
VisionFilter:
type: string
VisionSchedule:
type: string
WakeupInterval:
$ref: '#/components/schemas/time.Duration'
WallpaperUri:
type: string
XMPFaces:
type: boolean
type: object
time.Duration:
format: int64
type: integer
i18n.Response:
properties:
code:
type: integer
details:
type: string
error:
type: string
message:
type: string
messageId:
type: string
messageParams:
items: {}
type: array
type: object
securitySchemes:
BearerAuth:
in: header
name: Authorization
type: apiKey
externalDocs:
description: Learn more ›
url: https://docs.photoprism.app/developer-guide/api/