Keystone Developers
Open Keystone
API reference

Console API

Photos

28 endpoints.

GET/api/v1/admin/businesses/{business_id}/generated

List generated photos for a business

List all generated photos across generation jobs. Pagination via cursor and limit.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
cursorquerystring | null
limitqueryintegerdefault 20
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_GeneratedPhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredGeneratedPhotoData[]
GeneratedPhotoData[] fields
FieldTypeDescription
idrequiredstring

generated_photo_id (job_id:index)

business_idrequiredstring
photo_sourcestringdefault "generated"
public_urlstring | null

Public CDN URL of the original (no auth); null when not CDN-addressable.

photo_metadataPhotoMetadata | null
PhotoMetadata fields

PhotoMetadata (not expanded)

generation_statusrequiredstring

Job status: queued | processing | completed | failed | stopped

created_atinteger | null
metadataResponseMetadata | null
ResponseMetadata fields
FieldTypeDescription
paginationPaginationMetadata | null
PaginationMetadata fields
FieldTypeDescription
limitrequiredinteger
next_cursorstring | null
prev_cursorstring | null
has_morerequiredboolean
has_prevbooleandefault false
total_countinteger | null
status_countsobject | null
object | null fields

Map of string to integer

lifecycle_countsLifecycleCounts | null
LifecycleCounts fields
FieldTypeDescription
leadintegerdefault 0
prospectintegerdefault 0
customerintegerdefault 0
former_customerintegerdefault 0
classification_countsClassificationCounts | null
ClassificationCounts fields
FieldTypeDescription
signalobject
object fields

Nested object (not expanded)

touchobject
object fields

Nested object (not expanded)

stageobject
object fields

Nested object (not expanded)

metaResponseMeta | null
ResponseMeta fields
FieldTypeDescription
totalinteger | null
total_countinteger | null
pageinteger | null
per_pageinteger | null
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/businesses/{business_id}/generated/{generated_photo_id}

Serve generated photo file from GCS

Fetch generated photo bytes from GCS. generated_photo_id is 'job_id:index'.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
generated_photo_idrequiredpathstring
authorizationheaderstring | null

Responses

200Successful Response
image/*string (binary)
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/businesses/{business_id}/photos

Get business photo library

Get business library photos. Pagination via cursor (string) and limit.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
cursorquerystring | null
limitqueryintegerdefault 20
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_PhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPhotoData[]
PhotoData[] fields
FieldTypeDescription
idrequiredstring
business_idrequiredstring
photo_urlstring | null
public_urlstring | null

Public CDN URL of the original (no auth); null when the photo isn't CDN-addressable.

public_url_downloadableboolean | null

Whether browser fetch of public_url works (CORS). False for legacy R2 hosts (copy-only); null when public_url is null.

photo_sourcerequiredstring
original_filenamestring | null
photo_metadataPhotoMetadata | null
PhotoMetadata fields

PhotoMetadata (not expanded)

is_deletedbooleandefault false
created_atinteger | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/businesses/{business_id}/photos/{photo_id}

Get photo metadata

Metadata (incl. ``public_url``) for one photo — the JSON counterpart of the byte-serving ``…/photos/get/{photo_id}``. 404 for missing, deleted, or cross-tenant photos. Declared after the literal ``/photos/*`` routes so it never shadows them.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
photo_idrequiredpathstring (uuid)
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_PhotoData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPhotoData
PhotoData fields

PhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

DELETE/api/v1/admin/businesses/{business_id}/photos/{photo_id}

Delete photo from library

Soft-delete photo from business library. 404 if not found; 409 PHOTO_IN_USE (with per-module usage breakdown in ``details``) if still referenced by a module.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
photo_idrequiredpathstring (uuid)
authorizationheaderstring | null

Responses

204Successful Response
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/businesses/{business_id}/photos/generate

Generate photos

Generate photos from description/style. Returns job ID to poll for status.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
authorizationheaderstring | null

Request bodyrequired

application/jsonGeneratePhotosBody
FieldTypeDescription
descriptionrequiredstring
stylestring | null
aspect_ratiostring | null

Responses

202Successful Response
application/jsonSuccessResponse_GenerateJobResponse_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredGenerateJobResponse
GenerateJobResponse fields
FieldTypeDescription
job_idrequiredstring
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/businesses/{business_id}/photos/generate/{job_id}

Get photo generation job status

Get generation job status.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
job_idrequiredpathstring
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_GenerateJobStatusData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredGenerateJobStatusData
GenerateJobStatusData fields
FieldTypeDescription
job_idrequiredstring
statusrequiredenum

queued | processing | completed | failed | stopped

one of "queued", "processing", "completed", "failed", "stopped"
created_atinteger | null
generated_photo_idsstring[] | null
string[] | null fields
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/businesses/{business_id}/photos/get/{photo_id}

Serve photo file from GCS

Fetch photo bytes from GCS and return as binary response. Requires viewer role.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
photo_idrequiredpathstring (uuid)
authorizationheaderstring | null

Responses

200Successful Response
image/*string (binary)
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/businesses/{business_id}/photos/import-from-gallery

Import photos from industry gallery

Import selected industry gallery photos into business library.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
authorizationheaderstring | null

Request bodyrequired

application/jsonImportFromGalleryBody
FieldTypeDescription
gallery_photo_idsrequiredstring[]min items 1
string[] fields

Responses

201Successful Response
application/jsonSuccessResponse_list_PhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPhotoData[]
PhotoData[] fields

PhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/businesses/{business_id}/photos/import-from-unsplash

Import photos from Unsplash

Import photos from Unsplash by IDs or URLs (hotlinked; no upload). IDs require UNSPLASH_ACCESS_KEY.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
authorizationheaderstring | null

Request bodyrequired

application/jsonImportFromUnsplashBody
FieldTypeDescription
unsplash_photo_idsstring[] | null
string[] | null fields
unsplash_photo_urlsstring[] | null
string[] | null fields

Responses

201Successful Response
application/jsonSuccessResponse_list_PhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPhotoData[]
PhotoData[] fields

PhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/businesses/{business_id}/photos/import-generated

Import from generated photos

Import selected generated photos (by job_id:index) into business library.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
authorizationheaderstring | null

Request bodyrequired

application/jsonImportGeneratedBody
FieldTypeDescription
generated_photo_idsstring[]
string[] fields

Responses

201Successful Response
application/jsonSuccessResponse_list_PhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPhotoData[]
PhotoData[] fields

PhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/businesses/{business_id}/photos/search-unsplash

Search Unsplash

Search Unsplash. Requires UNSPLASH_ACCESS_KEY.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
queryrequiredquerystring

Search term

pagequeryintegerdefault 1
limitqueryintegerdefault 30
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_UnsplashSearchData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredUnsplashSearchData
UnsplashSearchData fields
FieldTypeDescription
itemsrequiredUnsplashSearchResultItem[]
UnsplashSearchResultItem[] fields

UnsplashSearchResultItem (not expanded)

pageintegerdefault 1
total_pagesinteger | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/businesses/{business_id}/photos/upload

Upload photo to business library

Upload a photo (multipart/form-data). Requires GCS bucket configured.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
authorizationheaderstring | null

Request bodyrequired

multipart/form-dataBody_upload_photo_api_v1_admin_businesses__business_id__photos_upload_post
FieldTypeDescription
filerequiredstring

Image file

Responses

201Successful Response
application/jsonSuccessResponse_PhotoData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPhotoData
PhotoData fields

PhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/industries/{industry_id}/generated

List generated photos for an industry

List all generated photos across generation jobs for an industry.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
cursorquerystring | null
limitqueryintegerdefault 20
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_IndustryGeneratedPhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIndustryGeneratedPhotoData[]
IndustryGeneratedPhotoData[] fields
FieldTypeDescription
idrequiredstring

generated_photo_id (job_id:index)

industry_idrequiredstring
photo_sourcestringdefault "generated"
public_urlstring | null

Public CDN URL of the original (no auth); null when not CDN-addressable.

photo_metadataPhotoMetadata | null
PhotoMetadata fields

PhotoMetadata (not expanded)

generation_statusrequiredstring

Job status: queued | processing | completed | failed | stopped

created_atinteger | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/industries/{industry_id}/generated/{generated_photo_id}

Serve generated photo file from GCS

Fetch generated photo bytes from GCS. generated_photo_id is 'job_id:index'.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
generated_photo_idrequiredpathstring
authorizationheaderstring | null

Responses

200Successful Response
application/jsonany
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/industries/{industry_id}/photos

List photos for an industry

List photos scoped to a single industry with cursor pagination.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
cursorquerystring | null
limitqueryintegerdefault 20
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_IndustryGalleryPhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIndustryGalleryPhotoData[]
IndustryGalleryPhotoData[] fields

IndustryGalleryPhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/industries/{industry_id}/photos/delete

Delete industry gallery photos (POST; use if DELETE body is stripped)

Same behavior as ``DELETE /industries/{industry_id}/photos``; POST keeps the JSON body on strict proxies.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Responses

204Successful Response
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/industries/{industry_id}/photos/generate

Generate photos

Generate photos from description/style for an industry. Returns job ID to poll for status.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Request bodyrequired

application/jsonGeneratePhotosBody

GeneratePhotosBody, expanded above.

Responses

202Successful Response
application/jsonSuccessResponse_GenerateJobResponse_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredGenerateJobResponse
GenerateJobResponse fields

GenerateJobResponse, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/industries/{industry_id}/photos/generate/{job_id}

Get photo generation job status

Get generation job status for an industry.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
job_idrequiredpathstring
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_GenerateJobStatusData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredGenerateJobStatusData
GenerateJobStatusData fields

GenerateJobStatusData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/industries/{industry_id}/photos/import-from-unsplash

Import photos from Unsplash into industry gallery

Import photos from Unsplash by IDs or URLs (hotlinked; no upload). IDs require UNSPLASH_ACCESS_KEY.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Request bodyrequired

application/jsonImportFromUnsplashBody

ImportFromUnsplashBody, expanded above.

Responses

201Successful Response
application/jsonSuccessResponse_list_IndustryGalleryPhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIndustryGalleryPhotoData[]
IndustryGalleryPhotoData[] fields

IndustryGalleryPhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/industries/{industry_id}/photos/import-generated

Import from generated photos

Import selected generated photos (by job_id:index) into industry gallery.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Request bodyrequired

application/jsonImportGeneratedBody

ImportGeneratedBody, expanded above.

Responses

201Successful Response
application/jsonSuccessResponse_list_IndustryGalleryPhotoData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIndustryGalleryPhotoData[]
IndustryGalleryPhotoData[] fields

IndustryGalleryPhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/industries/{industry_id}/photos/search-unsplash

Search Unsplash

Search Unsplash for industry gallery workflows. Requires UNSPLASH_ACCESS_KEY.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
queryrequiredquerystring

Search term

pagequeryintegerdefault 1
limitqueryintegerdefault 30
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_UnsplashSearchData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredUnsplashSearchData
UnsplashSearchData fields

UnsplashSearchData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/admin/industries/{industry_id}/photos/template-defaults

List template default photos per website slot

Return each slot from the default website_photos_config with optional linked gallery photo.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_dict_str__TemplateDefaultSlotData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredobject
object fields

Map of string to TemplateDefaultSlotData

FieldTypeDescription
idrequiredstring

Slot id from website_photos_config

labelrequiredstring
descriptionstring | null
grouprequiredstring
max_photosrequiredinteger
website_photos_keystring | null
gallery_photoIndustryGalleryPhotoData | null
IndustryGalleryPhotoData fields

IndustryGalleryPhotoData (not expanded)

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

PUT/api/v1/admin/industries/{industry_id}/photos/template-defaults

Set or clear one template default photo slot

Set one slot key to an industry gallery photo id, or null to clear it.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Request bodyrequired

application/jsonPutTemplateDefaultsBody
FieldTypeDescription
keyrequiredstring
photo_idstring | null

Responses

200Successful Response
application/jsonSuccessResponse_dict_str__TemplateDefaultSlotData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredobject
object fields

Map of string to TemplateDefaultSlotData

TemplateDefaultSlotData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/admin/industries/{industry_id}/photos/upload

Upload photo to industry gallery

Upload an industry gallery photo (multipart/form-data). Requires GCS bucket configured.

Parameters

NameInTypeDescription
industry_idrequiredpathstring
authorizationheaderstring | null

Request bodyrequired

multipart/form-dataBody_upload_industry_photo_api_v1_admin_industries__industry_id__photos_upload_post
FieldTypeDescription
filerequiredstring

Image file

Responses

201Successful Response
application/jsonSuccessResponse_IndustryGalleryPhotoData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIndustryGalleryPhotoData
IndustryGalleryPhotoData fields

IndustryGalleryPhotoData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.