SteveSteve

Register an uploaded shelf photo

Registers the exact URL reserved for this session and photo slot. Repeat registration is idempotent.

POST/api/v1/shelf/sessions/{sessionId}/photos

Authorization

AuthorizationRequiredBearer <token>

Steve API key, usually scoped to a company. Legacy keys and keys created by platform administrators may be unscoped; company-scoped endpoints reject unscoped keys with 403 Forbidden. Format: Authorization: Bearer aok_...

In: header

Request Body

application/jsonRequired
photoIndexRequiredinteger
Minimum: 0Maximum: 29
mimeTypeRequiredstring
Value in: "image/jpeg" | "image/png" | "image/webp" | "image/heic" | "image/heif"
r2UrlRequiredstring
Format: "uri"
fileSizeRequiredinteger
Minimum: 1
sectionIndexinteger
Minimum: 0Maximum: 500
sectionPhotoIndexinteger
Minimum: 0Maximum: 500

Path Parameters

sessionIdRequiredstring

Steve session identifier.

Header Parameters

X-Request-Idstring

Optional caller-supplied request identifier. Maximum length is 128 characters.

Maximum length: 128
curl -X POST "https://api.meetsteve.io/api/v1/shelf/sessions/<string>/photos" \
  -H "X-Request-Id: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "photoIndex": 29,
    "mimeType": "image/jpeg",
    "r2Url": "http://example.com",
    "fileSize": 1,
    "sectionIndex": 500,
    "sectionPhotoIndex": 500
  }'

Register an uploaded shelf photo

{
  "photoId": "string"
}