Contents

Events

Events are the heart of a brand’s business. Every time a photographer photographs a client—that’s an event.

You may not see the word “event” used around the ShootProof user interface, though. That’s because another word for an “event” is “gallery.” Galleries and albums within those galleries are how brands showcase an event to their clients, and it’s through galleries that clients buy prints from their photographer.

Events have varying requirements. Most have shoot dates. Many have expiration dates. Some allow visitors to pre-register so they can be informed when the gallery is ready. Events may be for a single person and their family or many different people (e.g. sporting events, recitals, etc.). ShootProof provides the flexibility a brand needs to work with clients of all types.

Delete a batch of events

Using a batch operation, you can delete multiple events at once.

delete
/studio/brand/{brandId}/event

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of events to delete.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BatchCollection"
      }
    }
  },
  "description": "The list of events to delete.",
  "required": true
}

200 OK

A list of events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

contactName nullable

The full name of the contact associated with this event.

coverPhoto required nullable read-only

A cover photo for the event.

created

The creation date of this event.

createdBy

The ID of the user who created this event.

eventAccessLevel

The event access level.

eventCategory nullable

The human-readable name of the category of this event.

eventCategoryId nullable

The numeric identifier for the category of this event.

eventDate nullable

The date on which this event took place.

eventStatus

The event status.

expirationDate nullable

The date on which this event expires.

id

The identifier for this event.

isPreRegistration

Whether pre-registration mode is turned on for the event.

lastReleasedDate nullable

The date on which this event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this event.

photosCount

The total number of photos within this event, including photos in albums.

playlistId nullable read-only

The identifier for the playlist this event uses.

priceSheetId nullable

The identifier for the price sheet assigned to the event.

releaseDate nullable

The date on which this event will be released.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta required read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

eventTotals required

Total counts for various types of events in various states.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventCollection"
        }
      }
    },
    "description": "A list of events."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List a brand’s events

get
/studio/brand/{brandId}/event

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
filterContactId

Contact identifier by which to filter results.

filterEventAccessLevel

Access level by which to filter results.

filterEventCategoryId

Event category identifier by which to filter results.

filterEventDateYear

Year by which to filter results based on event date.

filterEventStatus

Event status by which to filter results.

filterPreRegistration

If provided and truthy, returns only events in pre-registration mode.

page

The page of results to return.

prefer

A preference to apply to the response (see RFC 7240); useful if unable to set the HTTP Prefer header.

rows

The number of rows to return on each page of results.

searchContactInfo

Customer name or email address by which to filter results.

searchName

Event name by which to filter results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Prefer

A preference to apply to the response (see RFC 7240).

200 OK

A list of events.

Headers
Header Description
Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

contactName nullable

The full name of the contact associated with this event.

coverPhoto required nullable read-only

A cover photo for the event.

created

The creation date of this event.

createdBy

The ID of the user who created this event.

eventAccessLevel

The event access level.

eventCategory nullable

The human-readable name of the category of this event.

eventCategoryId nullable

The numeric identifier for the category of this event.

eventDate nullable

The date on which this event took place.

eventStatus

The event status.

expirationDate nullable

The date on which this event expires.

id

The identifier for this event.

isPreRegistration

Whether pre-registration mode is turned on for the event.

lastReleasedDate nullable

The date on which this event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this event.

photosCount

The total number of photos within this event, including photos in albums.

playlistId nullable read-only

The identifier for the playlist this event uses.

priceSheetId nullable

The identifier for the price sheet assigned to the event.

releaseDate nullable

The date on which this event will be released.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta required read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

eventTotals required

Total counts for various types of events in various states.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventCollection"
        }
      }
    },
    "description": "A list of events.",
    "headers": {
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a batch of events

Using a batch operation, you can update multiple events at once.

patch
/studio/brand/{brandId}/event

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of events to update.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
brandThemeId nullable

The identifier for the brand theme the event uses.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The numeric identifier for the category of this event.

eventStatus

The event status.

expirationDate nullable

The date on which this event expires.

headline nullable

Headline to display to event visitors.

id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

information nullable

Information to display to event visitors.

playlistId nullable

The identifier for the playlist the event uses.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

type

The type of resource represented (i.e., event).

videoUrl nullable

The URL of a video to display to event visitors.

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventCollectionInPatch"
      }
    }
  },
  "description": "The list of events to update.",
  "required": true
}

200 OK

A list of events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

contactName nullable

The full name of the contact associated with this event.

coverPhoto required nullable read-only

A cover photo for the event.

created

The creation date of this event.

createdBy

The ID of the user who created this event.

eventAccessLevel

The event access level.

eventCategory nullable

The human-readable name of the category of this event.

eventCategoryId nullable

The numeric identifier for the category of this event.

eventDate nullable

The date on which this event took place.

eventStatus

The event status.

expirationDate nullable

The date on which this event expires.

id

The identifier for this event.

isPreRegistration

Whether pre-registration mode is turned on for the event.

lastReleasedDate nullable

The date on which this event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this event.

photosCount

The total number of photos within this event, including photos in albums.

playlistId nullable read-only

The identifier for the playlist this event uses.

priceSheetId nullable

The identifier for the price sheet assigned to the event.

releaseDate nullable

The date on which this event will be released.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta required read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

eventTotals required

Total counts for various types of events in various states.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventCollection"
        }
      }
    },
    "description": "A list of events."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Create an event

post
/studio/brand/{brandId}/event

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event object to create.

application/vnd.shootproof+json
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

pickupOptions

An array of order pickup options supported by the event.

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsLastActiveDate nullable

The date on which an event visitor was last active.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/Event"
      }
    }
  },
  "description": "The event object to create.",
  "required": true
}

201 Created

The new event.

Headers
Header Description
Location

The URL to the new event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

cartsCount read-only

The number of active carts with items for this event.

checkoutText nullable

If provided, a message shown to the client at checkout.

contact nullable read-only

The contact associated with this event (if applicable).

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

coverPhoto required nullable read-only

A cover photo for the event.

created read-only

The creation date of this event.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventPhotoTags read-only

Photo tags associated with this event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastReleasedDate nullable read-only

The date on which this event was last released. This value is only ever set by the system when the event is released. If the event is released multiple times, this value will always be the date/time that the event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

ordersCount read-only

The total number of orders for this event.

photoFavoritesCount read-only

The number of times photos in this event were favorited.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

photosCount read-only

The total number of photos within this event, including photos in albums.

photosInQueueCount read-only

The total number of photos in the queue to be processed for this event.

photosNotInAnAlbumCount read-only

Number of photos within this event that are not in any albums.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

shares read-only

The number of times this event has been shared via various channels.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsCount read-only

The number of event visitors who provided their email address.

visitorsLastActiveDate nullable

The date on which an event visitor was last active.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Event"
        }
      }
    },
    "description": "The new event.",
    "headers": {
      "Location": {
        "description": "The URL to the new event.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List a brand’s event categories

get
/studio/brand/{brandId}/event-category

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A list of event categories.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

An array of event categories.

Property Description
id

The identifier for this event category.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event category name.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The type of object represented.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventCategoryCollection"
        }
      }
    },
    "description": "A list of event categories."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get an event category

get
/studio/brand/{brandId}/event-category/{eventCategoryId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventCategoryId required

The event category identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event category.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
id

The identifier for this event category.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event category name.

type

The type of object represented.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventCategory"
        }
      }
    },
    "description": "An event category."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List default settings for event contacts

get
/studio/brand/{brandId}/event-contact-defaults

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
page

The page of results to return.

rows

The number of rows to return on each page of results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Event contact default settings list response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
adminModePin write-only

Access code assigned to this contact default for a given set of event contact defaults.

canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

created read-only

The creation date of this event contact defaults object.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

id read-only

The identifier for this event contact defaults object.

isDefault

Whether the current preset is the default for contacts.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContactDefaultsCollection"
        }
      }
    },
    "description": "Event contact default settings list response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Create a set of default settings for event contacts

post
/studio/brand/{brandId}/event-contact-defaults

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The set of default settings to create for event contacts.

application/vnd.shootproof+json
Property Description
adminModePin write-only

Access code assigned to this contact default for a given set of event contact defaults.

canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

isDefault

Whether the current preset is the default for contacts.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventContactDefaults"
      }
    }
  },
  "description": "The set of default settings to create for event contacts.",
  "required": true
}

201 Created

The new set of default settings for event contacts.

Headers
Header Description
Location

The URL to the new set of default settings for event contacts.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

created read-only

The creation date of this event contact defaults object.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

id read-only

The identifier for this event contact defaults object.

isDefault

Whether the current preset is the default for contacts.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContactDefaults"
        }
      }
    },
    "description": "The new set of default settings for event contacts.",
    "headers": {
      "Location": {
        "description": "The URL to the new set of default settings for event contacts.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a set of default settings for event contacts

delete
/studio/brand/{brandId}/event-contact-defaults/{eventContactDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventContactDefaultsId required

The event contact defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get a set of default settings for event contacts

get
/studio/brand/{brandId}/event-contact-defaults/{eventContactDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventContactDefaultsId required

The event contact defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A set of default settings for event contacts.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

created read-only

The creation date of this event contact defaults object.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

id read-only

The identifier for this event contact defaults object.

isDefault

Whether the current preset is the default for contacts.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContactDefaults"
        }
      }
    },
    "description": "A set of default settings for event contacts."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update a set of default settings for event contacts

patch
/studio/brand/{brandId}/event-contact-defaults/{eventContactDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventContactDefaultsId required

The event contact defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The set of default settings to update for event contacts. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
adminModePin write-only

Access code assigned to this contact default for a given set of event contact defaults.

canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

isDefault

Whether the current preset is the default for contacts.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventContactDefaults"
      }
    }
  },
  "description": "The set of default settings to update for event contacts.\nOnly provide those properties that need updating.",
  "required": true
}

200 OK

The updated set of default settings for event contacts.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

created read-only

The creation date of this event contact defaults object.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

id read-only

The identifier for this event contact defaults object.

isDefault

Whether the current preset is the default for contacts.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContactDefaults"
        }
      }
    },
    "description": "The updated set of default settings for event contacts."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a set of default settings for event contacts

put
/studio/brand/{brandId}/event-contact-defaults/{eventContactDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventContactDefaultsId required

The event contact defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The set of default settings to update for event contacts.

application/vnd.shootproof+json
Property Description
adminModePin write-only

Access code assigned to this contact default for a given set of event contact defaults.

canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

isDefault

Whether the current preset is the default for contacts.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventContactDefaults"
      }
    }
  },
  "description": "The set of default settings to update for event contacts.",
  "required": true
}

200 OK

The updated set of default settings for event contacts.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
canHidePhotos

Whether the contact is allowed to hide photos for a given set of event contact defaults.

canTagPhotos

Whether the contact is allowed to tag photos for a given set of event contact defaults.

created read-only

The creation date of this event contact defaults object.

eventPhotoTags

An array of event photo tag objects for a given set of event contact defaults.

id read-only

The identifier for this event contact defaults object.

isDefault

Whether the current preset is the default for contacts.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

A descriptive name for these event contact defaults settings.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContactDefaults"
        }
      }
    },
    "description": "The updated set of default settings for event contacts."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List default settings for events

get
/studio/brand/{brandId}/event-defaults

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
filterDefault

If provided and truthy, returns only event defaults flagged as isDefault.

page

The page of results to return.

rows

The number of rows to return on each page of results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Event default settings list response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
created

The creation date of this event defaults object.

id

The identifier for this event defaults object.

isDefault

Whether this is marked as the default event defaults.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

A descriptive name for these event defaults settings.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventDefaultsCollection"
        }
      }
    },
    "description": "Event default settings list response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Create a set of default settings for events

post
/studio/brand/{brandId}/event-defaults

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The set of default settings to create for events.

application/vnd.shootproof+json
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventDefaults"
      }
    }
  },
  "description": "The set of default settings to create for events.",
  "required": true
}

201 Created

The new set of default settings for events.

Headers
Header Description
Location

The URL to the new set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

created read-only

The creation date of this event defaults object.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id read-only

The identifier for this event defaults object.

information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastUpdated nullable read-only

The date this event defaults object was last updated.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventDefaults"
        }
      }
    },
    "description": "The new set of default settings for events.",
    "headers": {
      "Location": {
        "description": "The URL to the new set of default settings for events.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a set of default settings for events

delete
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get a set of default settings for events

get
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

created read-only

The creation date of this event defaults object.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id read-only

The identifier for this event defaults object.

information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastUpdated nullable read-only

The date this event defaults object was last updated.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventDefaults"
        }
      }
    },
    "description": "A set of default settings for events."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update a set of default settings for events

patch
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The set of default settings to update for events. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventDefaults"
      }
    }
  },
  "description": "The set of default settings to update for events.\nOnly provide those properties that need updating.",
  "required": true
}

200 OK

The updated set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

created read-only

The creation date of this event defaults object.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id read-only

The identifier for this event defaults object.

information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastUpdated nullable read-only

The date this event defaults object was last updated.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventDefaults"
        }
      }
    },
    "description": "The updated set of default settings for events."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a set of default settings for events

put
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The set of default settings to update for events.

application/vnd.shootproof+json
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventDefaults"
      }
    }
  },
  "description": "The set of default settings to update for events.",
  "required": true
}

200 OK

The updated set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

created read-only

The creation date of this event defaults object.

digitalRules

Collection of digital rules available for this event defaults. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id read-only

The identifier for this event defaults object.

information nullable

Information to display to event visitors.

isDefault

Whether this is marked as the default event defaults.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastUpdated nullable read-only

The date this event defaults object was last updated.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

A descriptive name for these event defaults settings.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

requireEmail

Whether an email address is required to view the event.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventDefaults"
        }
      }
    },
    "description": "The updated set of default settings for events."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List the digital rules for a set of default settings for events

get
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A list of digital rules for a set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A list of digital rules.

Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRuleCollection"
        }
      }
    },
    "description": "A list of digital rules for a set of default settings for events."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Create a digital rule for a set of default settings for events

post
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule to create for a set of default settings for events.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule to create for a set of default settings for events.",
  "required": true
}

201 Created

The new digital rule for the set of default settings for events.

Headers
Header Description
Location

The URL to the new digital rule.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The new digital rule for the set of default settings for events.",
    "headers": {
      "Location": {
        "description": "The URL to the new digital rule.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a digital rule for a set of default settings for events

delete
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get a digital rule for a set of default settings for events

get
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A digital rule for a set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "A digital rule for a set of default settings for events."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a digital rule for a set of default settings for events

put
/studio/brand/{brandId}/event-defaults/{eventDefaultsId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventDefaultsId required

The event defaults identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

200 OK

The updated digital rule for the set of default settings for events.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The updated digital rule for the set of default settings for events."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete an event

delete
/studio/brand/{brandId}/event/{eventId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get an event

get
/studio/brand/{brandId}/event/{eventId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

cartsCount read-only

The number of active carts with items for this event.

checkoutText nullable

If provided, a message shown to the client at checkout.

contact nullable read-only

The contact associated with this event (if applicable).

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

coverPhoto required nullable read-only

A cover photo for the event.

created read-only

The creation date of this event.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventPhotoTags read-only

Photo tags associated with this event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastReleasedDate nullable read-only

The date on which this event was last released. This value is only ever set by the system when the event is released. If the event is released multiple times, this value will always be the date/time that the event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

ordersCount read-only

The total number of orders for this event.

photoFavoritesCount read-only

The number of times photos in this event were favorited.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

photosCount read-only

The total number of photos within this event, including photos in albums.

photosInQueueCount read-only

The total number of photos in the queue to be processed for this event.

photosNotInAnAlbumCount read-only

Number of photos within this event that are not in any albums.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

shares read-only

The number of times this event has been shared via various channels.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsCount read-only

The number of event visitors who provided their email address.

visitorsLastActiveDate nullable

The date on which an event visitor was last active.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Event"
        }
      }
    },
    "description": "An event"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update an event

patch
/studio/brand/{brandId}/event/{eventId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event to update. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

pickupOptions

An array of order pickup options supported by the event.

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsLastActiveDate nullable

The date on which an event visitor was last active.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/Event"
      }
    }
  },
  "description": "The event to update. Only provide those properties that need\nupdating.",
  "required": true
}

200 OK

The updated event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

cartsCount read-only

The number of active carts with items for this event.

checkoutText nullable

If provided, a message shown to the client at checkout.

contact nullable read-only

The contact associated with this event (if applicable).

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

coverPhoto required nullable read-only

A cover photo for the event.

created read-only

The creation date of this event.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventPhotoTags read-only

Photo tags associated with this event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastReleasedDate nullable read-only

The date on which this event was last released. This value is only ever set by the system when the event is released. If the event is released multiple times, this value will always be the date/time that the event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

ordersCount read-only

The total number of orders for this event.

photoFavoritesCount read-only

The number of times photos in this event were favorited.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

photosCount read-only

The total number of photos within this event, including photos in albums.

photosInQueueCount read-only

The total number of photos in the queue to be processed for this event.

photosNotInAnAlbumCount read-only

Number of photos within this event that are not in any albums.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

shares read-only

The number of times this event has been shared via various channels.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsCount read-only

The number of event visitors who provided their email address.

visitorsLastActiveDate nullable

The date on which an event visitor was last active.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Event"
        }
      }
    },
    "description": "The updated event."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update an event

put
/studio/brand/{brandId}/event/{eventId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event to update.

application/vnd.shootproof+json
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

checkoutText nullable

If provided, a message shown to the client at checkout.

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

pickupOptions

An array of order pickup options supported by the event.

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsLastActiveDate nullable

The date on which an event visitor was last active.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/Event"
      }
    }
  },
  "description": "The event to update.",
  "required": true
}

200 OK

The updated event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

cartsCount read-only

The number of active carts with items for this event.

checkoutText nullable

If provided, a message shown to the client at checkout.

contact nullable read-only

The contact associated with this event (if applicable).

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

coverPhoto required nullable read-only

A cover photo for the event.

created read-only

The creation date of this event.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventPhotoTags read-only

Photo tags associated with this event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastReleasedDate nullable read-only

The date on which this event was last released. This value is only ever set by the system when the event is released. If the event is released multiple times, this value will always be the date/time that the event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

ordersCount read-only

The total number of orders for this event.

photoFavoritesCount read-only

The number of times photos in this event were favorited.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

photosCount read-only

The total number of photos within this event, including photos in albums.

photosInQueueCount read-only

The total number of photos in the queue to be processed for this event.

photosNotInAnAlbumCount read-only

Number of photos within this event that are not in any albums.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

shares read-only

The number of times this event has been shared via various channels.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsCount read-only

The number of event visitors who provided their email address.

visitorsLastActiveDate nullable

The date on which an event visitor was last active.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Event"
        }
      }
    },
    "description": "The updated event."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a batch of event albums.

delete
/studio/brand/{brandId}/event/{eventId}/album

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of albums to delete.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BatchCollection"
      }
    }
  },
  "description": "The list of albums to delete.",
  "required": true
}

200 OK

A list of albums for an event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
albumPassword read-only

The event album password.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

albumsCount read-only

The number of sub-albums in the event album.

coverPhoto required nullable

A cover photo for the event album.

created

The creation date of this event album.

id

The identifier for this event album.

isHidden

Whether the album has been marked 'hidden'.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event album name.

parentAlbumId nullable read-only

The identifier for the parent album of this event album.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

photosCount read-only

The number of photos in the event album.

previousAlbumId nullable read-only

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

If this album resource has a parentAlbumId, the previousAlbumId refers to the preceding album in the collection of sub-albums for the album. If this album resource does not have a parentAlbumId (i.e., it is null), the previousAlbumId refers to the preceding album in the collection of albums for the event identified by eventId.

If the albumSortType for the event or album in which this album appears is not set to custom, the previousAlbumId will be null. Likewise, if the albumSortType is custom and this is the first album in the sequence, the value of previousAlbumId will be null.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbumCollection"
        }
      }
    },
    "description": "A list of albums for an event."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List an event’s albums

Please note that all albums are returned regardless of the pagination parameters included in the request. This is subject to change, so please ensure that your app follows the pagination model of our collections.

get
/studio/brand/{brandId}/event/{eventId}/album

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Query Parameters

Property Description
prefer

A preference to apply to the response (see RFC 7240); useful if unable to set the HTTP Prefer header.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Prefer

A preference to apply to the response (see RFC 7240).

200 OK

A list of albums for an event.

Headers
Header Description
Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventAlbumCollection"
            },
            {
              "$ref": "#/components/schemas/EventAlbumCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "A list of albums for an event.",
    "headers": {
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a batch of albums in an event

Using a batch operation, you can update multiple albums at once.

patch
/studio/brand/{brandId}/event/{eventId}/album

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of albums to update.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

If this batch operation is not limited by an array of event album identifiers, this will apply to all albums and sub-albums in the current collection.

id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

If this batch operation is not limited by an array of event album identifiers, this will apply to all albums and sub-albums in the current collection.

previousAlbumId nullable

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

This may only be used on a changeset for a single event album identifer. If multiple event album identifiers are present in the id array, a validation failure error will occur.

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventAlbumCollectionInPatch"
      }
    }
  },
  "description": "The list of albums to update.",
  "required": true
}

200 OK

A list of albums for an event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
albumPassword read-only

The event album password.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

albumsCount read-only

The number of sub-albums in the event album.

coverPhoto required nullable

A cover photo for the event album.

created

The creation date of this event album.

id

The identifier for this event album.

isHidden

Whether the album has been marked 'hidden'.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event album name.

parentAlbumId nullable read-only

The identifier for the parent album of this event album.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

photosCount read-only

The number of photos in the event album.

previousAlbumId nullable read-only

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

If this album resource has a parentAlbumId, the previousAlbumId refers to the preceding album in the collection of sub-albums for the album. If this album resource does not have a parentAlbumId (i.e., it is null), the previousAlbumId refers to the preceding album in the collection of albums for the event identified by eventId.

If the albumSortType for the event or album in which this album appears is not set to custom, the previousAlbumId will be null. Likewise, if the albumSortType is custom and this is the first album in the sequence, the value of previousAlbumId will be null.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbumCollection"
        }
      }
    },
    "description": "A list of albums for an event."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Create a new album in an event

post
/studio/brand/{brandId}/event/{eventId}/album

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The album to create.

application/vnd.shootproof+json
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

isHidden

Whether the album has been marked 'hidden'.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventAlbum"
      }
    }
  },
  "description": "The album to create.",
  "required": true
}

201 Created

The new album.

Headers
Header Description
Location

The URL to the new album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

albumsCount read-only

The number of sub-albums in the event album.

coverPhoto required nullable read-only

A cover photo for the event album.

created read-only

The creation date of the event album.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

eventId read-only

The numeric identifier for the event to which this album belongs.

id read-only

The identifier for the event album.

isHidden

Whether the album has been marked 'hidden'.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

photosCount read-only

The number of photos in the event album.

previousAlbumId nullable read-only

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

If this album resource has a parentAlbumId, the previousAlbumId refers to the preceding album in the collection of sub-albums for the album. If this album resource does not have a parentAlbumId (i.e., it is null), the previousAlbumId refers to the preceding album in the collection of albums for the event identified by eventId.

If the albumSortType for the event or album in which this album appears is not set to custom, the previousAlbumId will be null. Likewise, if the albumSortType is custom and this is the first album in the sequence, the value of previousAlbumId will be null.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbum"
        }
      }
    },
    "description": "The new album.",
    "headers": {
      "Location": {
        "description": "The URL to the new album.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Lists all album passwords for the event.

Returns a list of all album passwords for the event.

Additionally, the response contains a Link header with an alternate relationship, designating a URL from which a CSV file of this data may be downloaded. Alternately, requesting this endpoint using an Accept header of text/csv will cause this endpoint to respond with a redirect response to the location of the CSV download.

In addition to the event-album-passwords link relationship provided on the event resource, there is also an event-album-passwords-csv link relationship, providing a direct link to the CSV download of album passwords.

get
/studio/brand/{brandId}/event/{eventId}/album/passwords

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Accept

Specifies the media type to return. If not provided, the default response content type is assumed. Not all endpoints support additional media types.

Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Event album passwords response.

Headers
Header Description
Link

Link relationships related to event album passwords. In particular, an alternate relationship is provided for a text/csv representation.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

An array of passwords for event albums.

Property Description
albumName

The name of the album to which this password applies.

albumPassword

A password that may be used to access the named album.

eventName

The name of the event to which this album belongs.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

type

The type of object represented.

Alternate Response Body

When the Content-Type of the response is text/csv, the following properties will be available in the response body.

Properties
Example Response
"eventName,albumName,albumPassword\n\"Jones' Wedding\",\"Bride & Groom\",abc1234\n\"Jones' Wedding\",\"Father of the Bride\",xyz5678\n\"Jones' Wedding\",Processional,mno9876"

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "properties": {
            "items": {
              "description": "An array of passwords for event albums.",
              "example": [
                {
                  "albumName": "Bride & Groom",
                  "albumPassword": "abc1234",
                  "eventName": "Jones' Wedding"
                },
                {
                  "albumName": "Father of the Bride",
                  "albumPassword": "xyz5678",
                  "eventName": "Jones' Wedding"
                },
                {
                  "albumName": "Processional",
                  "albumPassword": "mno9876",
                  "eventName": "Jones' Wedding"
                }
              ],
              "items": {
                "description": "An event album password",
                "properties": {
                  "albumName": {
                    "description": "The name of the album to which this password\napplies.",
                    "type": "string"
                  },
                  "albumPassword": {
                    "description": "A password that may be used to access the named\nalbum.",
                    "type": "string"
                  },
                  "eventName": {
                    "description": "The name of the event to which this album belongs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "links": {
              "$ref": "#/components/schemas/Links"
            },
            "type": {
              "description": "The type of object represented.",
              "enum": [
                "event-album-passwords"
              ],
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "text/csv": {
        "example": "eventName,albumName,albumPassword\n\"Jones' Wedding\",\"Bride & Groom\",abc1234\n\"Jones' Wedding\",\"Father of the Bride\",xyz5678\n\"Jones' Wedding\",Processional,mno9876",
        "schema": {
          "title": "Comma-separated values",
          "type": "string"
        }
      }
    },
    "description": "Event album passwords response.",
    "headers": {
      "Link": {
        "description": "Link relationships related to event album passwords. In\nparticular, an `alternate` relationship is provided for a\n`text/csv` representation.",
        "schema": {
          "type": "string"
        }
      }
    }
  }
}

Delete an album from an event

delete
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get an album for an event

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

albumsCount read-only

The number of sub-albums in the event album.

coverPhoto required nullable read-only

A cover photo for the event album.

created read-only

The creation date of the event album.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

eventId read-only

The numeric identifier for the event to which this album belongs.

id read-only

The identifier for the event album.

isHidden

Whether the album has been marked 'hidden'.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

photosCount read-only

The number of photos in the event album.

previousAlbumId nullable read-only

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

If this album resource has a parentAlbumId, the previousAlbumId refers to the preceding album in the collection of sub-albums for the album. If this album resource does not have a parentAlbumId (i.e., it is null), the previousAlbumId refers to the preceding album in the collection of albums for the event identified by eventId.

If the albumSortType for the event or album in which this album appears is not set to custom, the previousAlbumId will be null. Likewise, if the albumSortType is custom and this is the first album in the sequence, the value of previousAlbumId will be null.

type

The type of object represented.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbum"
        }
      }
    },
    "description": "An album."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update an album for an event

patch
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The album object to update. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

isHidden

Whether the album has been marked 'hidden'.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventAlbum"
      }
    }
  },
  "description": "The album object to update. Only provide those properties that\nneed updating.",
  "required": true
}

200 OK

The updated album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

albumsCount read-only

The number of sub-albums in the event album.

coverPhoto required nullable read-only

A cover photo for the event album.

created read-only

The creation date of the event album.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

eventId read-only

The numeric identifier for the event to which this album belongs.

id read-only

The identifier for the event album.

isHidden

Whether the album has been marked 'hidden'.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

photosCount read-only

The number of photos in the event album.

previousAlbumId nullable read-only

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

If this album resource has a parentAlbumId, the previousAlbumId refers to the preceding album in the collection of sub-albums for the album. If this album resource does not have a parentAlbumId (i.e., it is null), the previousAlbumId refers to the preceding album in the collection of albums for the event identified by eventId.

If the albumSortType for the event or album in which this album appears is not set to custom, the previousAlbumId will be null. Likewise, if the albumSortType is custom and this is the first album in the sequence, the value of previousAlbumId will be null.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbum"
        }
      }
    },
    "description": "The updated album."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update an album for an event

put
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The album object to update.

application/vnd.shootproof+json
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

isHidden

Whether the album has been marked 'hidden'.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventAlbum"
      }
    }
  },
  "description": "The album object to update.",
  "required": true
}

200 OK

The updated album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumPassword nullable

A password that visitors must use to access the event album.

albumSortType

The type of sorting to apply to sub-albums of this album.

This affects only the sub-albums in this album and does not cascade down through to their sub-albums. To apply an album sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

albumsCount read-only

The number of sub-albums in the event album.

coverPhoto required nullable read-only

A cover photo for the event album.

created read-only

The creation date of the event album.

digitalRules

Collection of digital rules available for this album. Digital rules describe configurations for free digitals downloads.

eventId read-only

The numeric identifier for the event to which this album belongs.

id read-only

The identifier for the event album.

isHidden

Whether the album has been marked 'hidden'.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The event album name.

parentAlbumId nullable

The identifier for the event album's parent album, if applicable.

photoSortType

The type of sorting to apply to photos in this album.

This affects only the photos in this album and does not cascade down through to sub-albums. To apply a photo sort type to all sub-albums, use a batch update operation on an album collection resource or album children collection resource.

photosCount read-only

The number of photos in the event album.

previousAlbumId nullable read-only

The numeric identifier for the album that precedes this album when the event.albumSortType or album.albumSortType for the event or album in which this album appears is set to custom.

If this album resource has a parentAlbumId, the previousAlbumId refers to the preceding album in the collection of sub-albums for the album. If this album resource does not have a parentAlbumId (i.e., it is null), the previousAlbumId refers to the preceding album in the collection of albums for the event identified by eventId.

If the albumSortType for the event or album in which this album appears is not set to custom, the previousAlbumId will be null. Likewise, if the albumSortType is custom and this is the first album in the sequence, the value of previousAlbumId will be null.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbum"
        }
      }
    },
    "description": "The updated album."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a batch of children for an album

If the children are event-album resources, the albums and their sub-albums will be deleted. If the children are event-album-photo resources, the photos will be removed from the album and any of its sub-albums that also contain the photos.

This does not delete photos from an event; it only removes them from an album.

delete
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/children

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of album children to delete.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BatchCollection"
      }
    }
  },
  "description": "The list of album children to delete.",
  "required": true
}

200 OK

A list of children for an album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbumChildrenCollection"
        }
      }
    },
    "description": "A list of children for an album."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List an album’s children

An album’s children may include albums or photos. Check the .items[n].type property to see what kind of entity you're dealing with. It may be an event-album or an event-album-photo. If it is an event-album, you may request its children link relation to enumerate over its sub-albums or photos.

To get a display URL for each photo in the collection, see the displayUrl property of each event-album-photo in the collection.

To get a URL to download the original image of each photo in the collection, see the event-photo-original link relation of each event-album-photo in the collection.

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/children

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Query Parameters

Property Description
page

The page of results to return.

prefer

A preference to apply to the response (see RFC 7240); useful if unable to set the HTTP Prefer header.

range

A index-based range of items to request; useful if unable to set the HTTP Range header in your request.

rows

The number of rows to return on each page of results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Prefer

A preference to apply to the response (see RFC 7240).

Range

A index-based range of items to request.

200 OK

A list of children for an album.

Headers
Header Description
Accept-Ranges

Indicates that this resource can respond to range requests for the given types of ranges.

Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

206 Partial Content

A list of children for the requested range.

Headers
Header Description
Content-Range

Indicates the ranges included in this partial response.

Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollection"
            },
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "A list of children for an album.",
    "headers": {
      "Accept-Ranges": {
        "description": "Indicates that this resource can respond to range requests for\nthe given types of ranges.",
        "schema": {
          "enum": [
            "items"
          ],
          "type": "string"
        }
      },
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "206": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollection"
            },
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "A list of children for the requested range.",
    "headers": {
      "Content-Range": {
        "description": "Indicates the ranges included in this partial response.",
        "schema": {
          "type": "string"
        }
      },
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a batch of children for an album

Using a batch operation, you can update multiple children for an album at once.

patch
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/children

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of album children to update.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventAlbumChildrenCollectionInPatch"
      }
    }
  },
  "description": "The list of album children to update.",
  "required": true
}

200 OK

A list of children for an album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventAlbumChildrenCollection"
        }
      }
    },
    "description": "A list of children for an album."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a cover photo from an album

delete
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/cover-photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get the cover photo for an album

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/cover-photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An album cover photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
coverPhotoStatus read-only

The current status of this cover photo.

coverPhotoType read-only

The slug string name of the cover photo type.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

filesize read-only

The original filesize of the image (in bytes).

focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

type

The type of object represented.

width read-only

The width in pixels of the image.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/CoverPhoto"
        }
      }
    },
    "description": "An album cover photo."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Add or update the cover photo for an album

You may add a cover photo to an album either by specifying the photoId of an existing photo or uploading a new photo. In either case, you must specify the focalPointPercentages for the photo, as defined in the request body.

When adding a cover photo using a photoId, make the request using the standard application/vnd.shootproof+json content type.

When uploading a new cover photo, you must use a content type of multipart/mixed, specifying a boundary—which may be any consistent name—and including exactly two parts in the request. The order of parts does not matter. One part must be the JSON object represented as application/vnd.shootproof+json. The other part must be the binary image. The image part must have a Content-Disposition header, specifying the filename, as well as a Content-Type header.

For example:

PUT /brand/1000/event/1234/album/2345/cover-photo HTTP/1.1 Content-Type: multipart/mixed; charset=utf-8; boundary=ANY_VALUE Host: api.shootproof.com Content-Length: 406  --ANY_VALUE Content-Type: application/vnd.shootproof+json  {     "focalPointPercentages": {         "x": 10,         "y": 10     } }  --ANY_VALUE Content-Disposition: attachment; filename=album-cover.png Content-Type: image/png  [binary data]  --ANY_VALUE--
put
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/cover-photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The cover photo.

application/vnd.shootproof+json
Property Description
focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

name

The original filename of the image.

photoId nullable write-only

If using an existing event photo as the cover photo, the identifier for the event photo.

type

The type of object represented.

multipart/mixed
Property Description
focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

name

The original filename of the image.

photoId nullable write-only

If using an existing event photo as the cover photo, the identifier for the event photo.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/CoverPhoto"
      }
    },
    "multipart/mixed": {
      "example": "--SP_BOUNDARY\nContent-Type: application/vnd.shootproof+json\n\n{\n    \"focalPointPercentages\": {\n        \"x\": 10,\n        \"y\": 10\n    }\n}\n\n--SP_BOUNDARY\nContent-Disposition: attachment; filename=cover.jpg\nContent-Type: image/jpeg\n\n[binary data]\n\n--SP_BOUNDARY--",
      "schema": {
        "$ref": "#/components/schemas/CoverPhoto"
      }
    }
  },
  "description": "The cover photo.",
  "required": true
}

200 OK

A cover photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
coverPhotoStatus read-only

The current status of this cover photo.

coverPhotoType read-only

The slug string name of the cover photo type.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

filesize read-only

The original filesize of the image (in bytes).

focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

type

The type of object represented.

width read-only

The width in pixels of the image.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/CoverPhoto"
        }
      }
    },
    "description": "A cover photo."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List the digital rules for an album

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A list of digital rules for an album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A list of digital rules.

Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRuleCollection"
        }
      }
    },
    "description": "A list of digital rules for an album."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Create a digital rule for an album

post
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

201 Created

The new digital rule.

Headers
Header Description
Location

The URL of the new digital rule.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The new digital rule.",
    "headers": {
      "Location": {
        "description": "The URL of the new digital rule.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Delete a digital rule from album

delete
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The resource was successfully deleted.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get a digital rule for an album

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A digital rule for an album.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "A digital rule for an album."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a digital rule for an album

put
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

200 OK

The updated digital rule.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The updated digital rule."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Remove a batch of photos from an album

This does not delete photos from an event; it only removes them from an album.

delete
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of photos to remove from the album.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BatchCollection"
      }
    }
  },
  "description": "The list of photos to remove from the album.",
  "required": true
}

204 No Content

The photos were removed from the album.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "The photos were removed from the album."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

List an album’s photo children

This returns a list of all photo children of an album and, optionally, its sub-albums. Unlike “List an album’s children,” the entity type in the items array will always be event-album-photo.

To get a display URL for each photo in the collection, see the displayUrl property of each event-album-photo in the collection.

To get a URL to download the original image of each photo in the collection, see the event-photo-original link relation of each event-album-photo in the collection.

Of particular importance is the includeDescendants parameter that controls the photo children behavior. By default, only photos that are direct children of the album requested are included in the list. If includeDescendants is provided and is true, all photos for all sub-albums of the requested album are included.

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Query Parameters

Property Description
includeDescendants

Whether to include photos from all sub-albums.

page

The page of results to return.

prefer

A preference to apply to the response (see RFC 7240); useful if unable to set the HTTP Prefer header.

range

A index-based range of items to request; useful if unable to set the HTTP Range header in your request.

rows

The number of rows to return on each page of results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Prefer

A preference to apply to the response (see RFC 7240).

Range

A index-based range of items to request.

200 OK

A list of photos for an album.

Headers
Header Description
Accept-Ranges

Indicates that this resource can respond to range requests for the given types of ranges.

Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

206 Partial Content

A list of album photos for the requested range.

Headers
Header Description
Content-Range

Indicates the ranges included in this partial response.

Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollection"
            },
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "A list of photos for an album.",
    "headers": {
      "Accept-Ranges": {
        "description": "Indicates that this resource can respond to range requests for\nthe given types of ranges.",
        "schema": {
          "enum": [
            "items"
          ],
          "type": "string"
        }
      },
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "206": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollection"
            },
            {
              "$ref": "#/components/schemas/EventAlbumChildrenCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "A list of album photos for the requested range.",
    "headers": {
      "Content-Range": {
        "description": "Indicates the ranges included in this partial response.",
        "schema": {
          "type": "string"
        }
      },
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Add a batch of photos to an album

patch
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of photos to add to the album.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BatchCollection"
      }
    }
  },
  "description": "The list of photos to add to the album.",
  "required": true
}

204 No Content

Event photos successfully added to the album.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Event photos successfully added to the album."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Removes an event photo from the album.

Removes the association between the event photo with the given identifier and the album.

delete
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The association between the event album and the event photo was successfully removed.

403 Forbidden

The event, album, or photo is not accessible by the requestor.

404 Not Found

The event, album, or photo was not found.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "The association between the event album and the event photo was\nsuccessfully removed."
  },
  "403": {
    "description": "The event, album, or photo is not accessible by the requestor."
  },
  "404": {
    "description": "The event, album, or photo was not found."
  }
}

Retrieves an event photo on an event album.

Retrieves an event photo, if it is associated with the event album. If it is not associated with the album, the request will return a 404 Not Found response, even if the photo exists in the event.

get
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event photo.

Headers
Header Description
Content-Location

The canonical URL of the event photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumId nullable read-only

The numeric identifier for the album to which this photo belongs, if applicable.

If this photo resource has a type of event-photo, the albumId property will be null. However, if the photo resource has a type of event-album-photo, the albumId property will contain a value.

belongsToAlbumIds read-only

An array of all album IDs to which this photo belongs.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

eventId read-only

The numeric identifier for the event to which this photo belongs.

eventPhotoTags

An array of tags set on this photo, if any.

favoritesCount read-only

The number of times this event photo has been favorited.

filesize read-only

The original filesize of the image (in bytes).

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isHidden

Whether the photo has been marked 'hidden.'

lastReplaced nullable read-only

The date on which the photo was last replaced, or null if it has never been replaced.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

photoStatus read-only

The current status of this event photo.

previousPhotoId nullable read-only

The numeric identifier for the photo that precedes this photo when the event.photoSortType or album.photoSortType for the event or album in which this photo appears is set to custom.

If this photo resource has a type of event-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the event. If this photo resource has a type of event-album-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the album identified by albumId.

If the photoSortType for the event or album in which this photo appears is not set to custom, the previousPhotoId will be null. Likewise, if the photoSortType is custom and this is the first photo in the sequence, the value of previousPhotoId will be null.

shares read-only

The number of times this event photo has been shared via various channels.

NOTE: This is not yet implemented. All counts will yield a value of 0 until this feature is implemented.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
shootDate nullable read-only

The date on which this photo was taken (if available in the EXIF metadata when originally uploaded).

type

The type of object represented.

For a photo resource loaded from the context of an event, type will be event-photo. When the photo resource is loaded from the context of an album or sub-album, the type will be event-album-photo.

width read-only

The width in pixels of the image.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventPhoto"
        }
      }
    },
    "description": "An event photo.",
    "headers": {
      "Content-Location": {
        "description": "The canonical URL of the event photo.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Adds an event photo to the album.

Creates an association between the event photo with the given identifier and the album.

put
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

The association between the event album and the event photo was successful.

403 Forbidden

The event, album, or photo is not accessible by the requestor.

404 Not Found

The event, album, or photo was not found.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "The association between the event album and the event photo was\nsuccessful."
  },
  "403": {
    "description": "The event, album, or photo is not accessible by the requestor."
  },
  "404": {
    "description": "The event, album, or photo was not found."
  }
}

Create a new zip bundle for an album's photos.

Generates a new zip bundle for album photos. If the request body contains an array of photo IDs belonging to the album, the zip bundle will contain only those photos.

If a zip bundle already exists containing the same photos, a new one will not be generated but the existing zip bundle will be returned and the appropriate email will be re-sent to the studio panel user or client gallery visitor.

post
/studio/brand/{brandId}/event/{eventId}/album/{eventAlbumId}/zip-bundle

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventAlbumId required

The event album identifier.

eventId required

The event identifier.

Request Body

The zip bundle.

application/vnd.shootproof+json
Property Description
email write-only

The email address of an external user to send this zip bundle to.

If provided, the zip bundle generated will result in an email being sent to this address where the zip bundle link points to the client Gallery's zip bundle download page. By providing this value, it is assumed that the intended recipient is an external user.

If a value is not provided, the zip bundle generated will be sent to the requester's email address, and the link will be to a Studio Panel page where the ZIP file(s) can be downloaded.

photoIds write-only

The (optional) IDs of the photos included in this zip bundle. If present, zip bundle will be limited to photo IDs present in this value.

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/ZipBundle"
      }
    }
  },
  "description": "The zip bundle.",
  "required": true
}

202 Accepted

The request was valid and accepted and the zip bundle is being created.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
downloadPageUrl nullable read-only

The URL for the download page where the zip bundle can be downloaded. Is either a URL to a Studio Panel download page, or a client gallery download page if the zip bundle is to be publicly accessible.

expiration read-only

Datetime representing the expiration for the given URL. URL will no longer be valid after this time.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

numFiles nullable read-only

The number of files that make up this zip bundle. Null until processing is complete.

type

The type of object represented

zipBundleStatus read-only

A slug string representing the status message describing the state of the zip bundle.

  • awaiting-processing - In the queue for processing
  • processing - Photos are being processed and zip bundle assembled.
  • downloadable - Zip bundle is ready for download.
  • deleted - Bundle has been deleted
zipBundleType read-only

The digital download type slug:

  • digital-download-order - Bundle of all photos belonging to a single paid digitals order
  • studio-group-photos - Studio panel user selected group of photos
  • event-all-photos - Bundle of all photos belonging to the event
  • event-all-photos-client - Client gallery user chose to download all photos in the event
  • studio-sent-client-link - Studio panel user generated a zip bundle and corresponding share link, no email address associated with this type of zip bundle == no authentication
  • album-all-photos - Bundle of all photos belonging to the event album, only used by studio panel
  • client-group-photos - Client user's arbitrary selection of photos grouped together into a zip bundle for download

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "202": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/ZipBundle"
        }
      }
    },
    "description": "The request was valid and accepted and the zip bundle is being created.\n"
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Returns archive costs for a single event by ID.

If event were to be archived, returns information on its expected associated costs and storage usage.

get
/studio/brand/{brandId}/event/{eventId}/archive-cost

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event's archive costs.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
archiveRate read-only

Archiving cost per gigabyte.

billingDay read-only

Day of the calendar month on which archiving costs will be included on a bill.

For example:

  • Value is 1 for studios in a yearly photo plan; archiving costs are billed for on the 1st of every calendar month.
  • Value is X for studios in a monthly photo plan, where X is the calendar day of when their photo plan is billed. Monthly photo plan bills include archiving costs alongside their monthly photo plan costs.
currencyCode read-only

Currency code that applies to the given archiveRate, eventTotalCost and minimumCharge values.

currentArchiveStorageSpaceUsed nullable read-only

Amount of archive storage space currently in use, in bytes.

This value is null if the studio is in a photo-storage plan.

eventTotalCost read-only

Total monthly cost to archive this event in given currencyCode.

eventTotalSize read-only

Total size of archive storage space, that event will use, in bytes.

eventWillIncurCost read-only

Indicates that choosing to archive this event will incur a cost on next billing date.

freeArchiveStorageSpaceGranted nullable read-only

Amount of free archive storage space granted, in bytes. Typically granted via referral of another studio.

This value is null if the studio is in a photo-storage plan.

freeArchiveStorageSpaceRemaining nullable read-only

Amount of free archive storage space remaining, in bytes.

This value is null if the studio is in a photo-storage plan.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumCharge read-only

Minimum monthly charge amount for archiving in given currencyCode. Studio will pay this amount monthly when archiving up to minimumChargeNumBytes worth of photos.

minimumChargeNumBytes read-only

The amount of archive storage space, that can be used until the minimum charge is exceeded, in bytes.

type

The type of object represented.

409 Conflict

Event is already archived.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventArchiveCost"
        }
      }
    },
    "description": "An event's archive costs."
  },
  "409": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "Event is already archived."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Removes an event contact.

delete
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

Successful deletion response.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  }
}

Returns an event's contact by contact ID.

get
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event contact.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
businessName nullable

The name for the business with which this contact is associated.

created read-only

The date on which this contact was created

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

email

The email address for this contact.

eventContactPermissions

Permissions available for an event contact.

firstName nullable

The first name for this contact.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

lastName nullable

The last name for this contact.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name nullable

The full name for this contact.

phone nullable

The phone number for this contact.

photoFavoritesCount read-only

The number of times photos in this event were favorited by the contact.

photoHiddenCount read-only

The number of times photos in this event were hidden by the contact.

thirdPartyId nullable

The identifier for this contact in the source system from which it originated.

type

The type of resource represented.

404 Not Found

The requested resource could not be found.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContact"
        }
      }
    },
    "description": "An event contact."
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Sets the contact for the event and updates their permissions values, if provided.

Any contact values provided in the body are read-only. If provided, only the eventContactPermissions values will be used to update the contact's settings and the event's photo tags.

put
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The contact to set on the event. If provided, eventContactPermissions is used to update the event contact's permissions and its event photo tags.

application/vnd.shootproof+json
Property Description
businessName nullable

The name for the business with which this contact is associated.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

email

The email address for this contact.

eventContactPermissions

Permissions available for an event contact.

firstName nullable

The first name for this contact.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

lastName nullable

The last name for this contact.

name nullable

The full name for this contact.

phone nullable

The phone number for this contact.

thirdPartyId nullable

The identifier for this contact in the source system from which it originated.

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventContact"
      }
    }
  },
  "description": "The contact to set on the event.  If provided,\n`eventContactPermissions` is used to update the event contact's\npermissions and its event photo tags."
}

200 OK

An event contact.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
businessName nullable

The name for the business with which this contact is associated.

created read-only

The date on which this contact was created

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

email

The email address for this contact.

eventContactPermissions

Permissions available for an event contact.

firstName nullable

The first name for this contact.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

lastName nullable

The last name for this contact.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name nullable

The full name for this contact.

phone nullable

The phone number for this contact.

photoFavoritesCount read-only

The number of times photos in this event were favorited by the contact.

photoHiddenCount read-only

The number of times photos in this event were hidden by the contact.

thirdPartyId nullable

The identifier for this contact in the source system from which it originated.

type

The type of resource represented.

409 Conflict

Event already has a contact.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventContact"
        }
      }
    },
    "description": "An event contact."
  },
  "409": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "Event already has a contact."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Retrieves the digital rules associated with the event contact.

Retrieves all of the digital rules that are associated with the contact. If the event or contact can't be found, returns a 404 Not Found

get
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A collection of the digital rules associated with the event contact.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A list of digital rules.

Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object

404 Not Found

The requested resource could not be found.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRuleCollection"
        }
      }
    },
    "description": "A collection of the digital rules associated with the event contact."
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  }
}

Creates a new digital rule and associates it with an event contact.

post
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

201 Created

Responds with the digital rule on success.

Headers
Header Description
Content-Location

The URL of the digital rule in the response body.

Location

The URL of the digital rule in the response body.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "Responds with the digital rule on success.",
    "headers": {
      "Content-Location": {
        "description": "The URL of the digital rule in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      },
      "Location": {
        "description": "The URL of the digital rule in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes digital rule from event contact.

Changes the status on the digital rule record identified by digitalRuleId to deleted.

delete
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

digitalRuleId required

The digital rule identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

Successful deletion response.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  }
}

Returns a digital rule for an event contact.

get
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

digitalRuleId required

The digital rule identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

The digital rule

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

404 Not Found

The requested resource could not be found.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The digital rule"
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  }
}

Fully updates an event contact's digital rule.

put
/studio/brand/{brandId}/event/{eventId}/contact/{contactId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contactId required

The contact identifier.

digitalRuleId required

The digital rule identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

200 OK

The successfully updated digital rule

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The successfully updated digital rule"
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Deletes a cover photo from an event.

Removes the cover photo from the event.

delete
/studio/brand/{brandId}/event/{eventId}/cover-photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

Successful deletion response.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Returns the cover photo for the event.

get
/studio/brand/{brandId}/event/{eventId}/cover-photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event cover photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
coverPhotoStatus read-only

The current status of this cover photo.

coverPhotoType read-only

The slug string name of the cover photo type.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

filesize read-only

The original filesize of the image (in bytes).

focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

type

The type of object represented.

width read-only

The width in pixels of the image.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/CoverPhoto"
        }
      }
    },
    "description": "An event cover photo."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Adds or updates a cover photo on an event.

You may add a cover photo to an event either by specifying the photoId of an existing photo or uploading a new photo. In either case, you must specify the focalPointPercentages for the photo, as defined in the request body (see below).

When adding a cover photo using a photoId, make the request using the standard application/vnd.shootproof+json content type. The body is simply a JSON object, as defined by CoverPhoto below.

When uploading a new cover photo, you must use a content type of multipart/mixed, specifying a boundary—which may be any consistent name— and including exactly two parts in the request. The order of parts does not matter. One part must be the JSON object represented as application/vnd.shootproof+json. The other part must be the binary image. The image part must have a Content-Disposition header, specifying the filename, as well as a Content-Type header.

For example:

PUT /brand/1000/event/1234/cover-photo HTTP/1.1 Content-Type: multipart/mixed; charset=utf-8; boundary=SP_BOUNDARY Host: api.shootproof.com Content-Length: 406  --SP_BOUNDARY Content-Type: application/vnd.shootproof+json  {     "focalPointPercentages": {         "x": 10,         "y": 10     } }  --SP_BOUNDARY Content-Disposition: attachment; filename=cover.jpg Content-Type: image/jpeg  [binary data]  --SP_BOUNDARY--
put
/studio/brand/{brandId}/event/{eventId}/cover-photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The cover photo.

application/vnd.shootproof+json
Property Description
focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

name

The original filename of the image.

photoId nullable write-only

If using an existing event photo as the cover photo, the identifier for the event photo.

type

The type of object represented.

multipart/mixed
Property Description
focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

name

The original filename of the image.

photoId nullable write-only

If using an existing event photo as the cover photo, the identifier for the event photo.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/CoverPhoto"
      }
    },
    "multipart/mixed": {
      "example": "--SP_BOUNDARY\nContent-Type: application/vnd.shootproof+json\n\n{\n    \"focalPointPercentages\": {\n        \"x\": 10,\n        \"y\": 10\n    }\n}\n\n--SP_BOUNDARY\nContent-Disposition: attachment; filename=cover.jpg\nContent-Type: image/jpeg\n\n[binary data]\n\n--SP_BOUNDARY--",
      "schema": {
        "$ref": "#/components/schemas/CoverPhoto"
      }
    }
  },
  "description": "The cover photo.",
  "required": true
}

200 OK

Responds with the cover photo on success.

Headers
Header Description
Content-Location

The URL of the cover photo in the response body.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
coverPhotoStatus read-only

The current status of this cover photo.

coverPhotoType read-only

The slug string name of the cover photo type.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

filesize read-only

The original filesize of the image (in bytes).

focalPointPercentages required

A pair of x,y coordinates on a rectangular coordinate system, defining a focal point to use when rendering the cover photo. These numbers represent percentages and not fixed pixels.

Property Description
x

The x-coordinate for the focal point, as a percentage. (i.e. (x / width) * 100)

y

The y-coordinate for the focal point, as a percentage. (i.e. (y / height) * 100)

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

type

The type of object represented.

width read-only

The width in pixels of the image.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/CoverPhoto"
        }
      }
    },
    "description": "Responds with the cover photo on success.",
    "headers": {
      "Content-Location": {
        "description": "The URL of the cover photo in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Retrieves the digital rules associated with the event.

Retrieves all of the digital rules that are associated with the event. If the event can't be found, returns a 404 Not Found

get
/studio/brand/{brandId}/event/{eventId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A collection of the digital rules associated with the event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A list of digital rules.

Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object

404 Not Found

The requested resource could not be found.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRuleCollection"
        }
      }
    },
    "description": "A collection of the digital rules associated with the event."
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  }
}

Creates a new digital rule and associates it with an event.

post
/studio/brand/{brandId}/event/{eventId}/digital-rule

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

201 Created

Responds with the digital rule on success.

Headers
Header Description
Content-Location

The URL of the digital rule in hte response body.

Location

The URL of the digital rule in hte response body.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "Responds with the digital rule on success.",
    "headers": {
      "Content-Location": {
        "description": "The URL of the digital rule in hte response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      },
      "Location": {
        "description": "The URL of the digital rule in hte response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes digital rule from event

Changes the status on the digital rule record identified by digitalRuleId to deleted.

delete
/studio/brand/{brandId}/event/{eventId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

Successful deletion response.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  }
}

Returns a digital rule for an event.

get
/studio/brand/{brandId}/event/{eventId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

The digital rule

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

404 Not Found

The requested resource could not be found.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The digital rule"
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  }
}

Fully updates an event's digital rule.

put
/studio/brand/{brandId}/event/{eventId}/digital-rule/{digitalRuleId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

digitalRuleId required

The digital rule identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The digital rule.

application/vnd.shootproof+json
Property Description
brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/DigitalRule"
      }
    }
  },
  "description": "The digital rule.",
  "required": true
}

200 OK

The successfully updated digital rule

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandWatermark nullable read-only

A brand watermark.

brandWatermarkId nullable

ID of the brand watermark that will be applied to each image generated according to this rule

created read-only

The creation date of this digital rule.

downloadAll

Whether this rule allows for the bulk download of all images in the gallery/album.

downloadLimit nullable

The maximum number of images a single user is allowed to download from the gallery/album.

downloadPin nullable

The presence of a downloadPin requires PIN entry for free digital downloads. Must contain only digits.

id

The identifier for this digital rule.

name

Human readable name for this digital rule.

printRelease nullable

The print release that will be included with images generated according to this rule.

requireDownloadPin read-only

Flag indicating whether the DigitalRule requires a downloadPin. This allows rules derived from brand event defaults rules to inherit the requirement for a downloadPin from the brand event defaults rules.

resolution nullable

Length, in pixels, of longest side of image resulting from this rule. If null, the rule will deliver the original full size resolution

type

The type of object represented

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/DigitalRule"
        }
      }
    },
    "description": "The successfully updated digital rule"
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Sends an email message to the contact for an event.

post
/studio/brand/{brandId}/event/{eventId}/email

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event email object used to send an email message.

application/vnd.shootproof+json
Property Description
body

The message to include in the body of the email.

buttonText

The text for the call-to-action button in the email body.

emailRecipientType

An optional email recipient type, which retrieves recipients from the event's visitors.

Valid values are strings, which map to the following types:

  • all-event-visitors: All visitors to this gallery
  • event-visitors-with-favorites: Visitors with favorites
  • event-visitors-with-cart-items: Visitors with items in their cart
  • event-visitors-with-orders: Visitors who HAVE placed an order
  • event-visitors-without-orders: Visitors who HAVE NOT placed an order

Note that for certain event-related emails, both recipientEmails and the emails retrieved for the given emailRecipientType value will be combined to send the email to many recipients.

headline

The headline to use in the email body.

recipientEmails

Email address(es) to send the email to.

Required for email types that can be sent to arbitrary recipients. Must be an array of valid email addresses when required.

When sending an event email to one or more arbitrary recipients, a studio-level limit on the number of email recipients is enforced. These are returned as validation errors on the recipientEmails element..

Similarly, a rate limit is enforced and returned on the recipientEmails element as well.

For emails always intended for the event contact, at least the event contact's email address must be provided in the array. If it is not provided, a validation error will be present on the recipientEmails element.

Note that for certain event-related emails, both recipientEmails and the emails retrieved for the given emailRecipientType value will be combined to send the email to many recipients.

subject

The subject line for the email message.

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventEmail"
      }
    }
  },
  "description": "The event email object used to send an email message.",
  "required": true
}

202 Accepted

Responds with the event on success.

Headers
Header Description
Content-Location

The URL of the event in the response body.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumSortType

The type of sorting to apply to albums in this event.

This affects only the top-level albums view for the event and does not cascade down through sub-albums. To apply an album sort type to sub-albums, use a batch update operation on an album collection resource.

allowAddAllToCart

Whether to show "Buy All" buttons, allowing clients to add all photos in the event to their cart. If this is set to true, priceSheetShowPackagesOnly MUST be false.

allowBlackWhiteFiltering

Allow clients to see and order a black and white version of an image.

allowCropping

Allow clients to crop photos on orders.

allowFreeDigitals

Whether to allow clients to download free digitals from the event.

allowFreeDigitalsDownloadAll

If allowFreeDigitals is true, whether to allow clients to download the entire event.

allowPayLater

Whether to allow clients to pay later.

autoArchiveDays nullable

If provided, the number of days after event expiration to automatically archive the event.

autoSetAlbumCovers

Whether to autogenerate album cover images from the first image in the album.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme the event uses.

cartsCount read-only

The number of active carts with items for this event.

checkoutText nullable

If provided, a message shown to the client at checkout.

contact nullable read-only

The contact associated with this event (if applicable).

contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

coverPhoto required nullable read-only

A cover photo for the event.

created read-only

The creation date of this event.

digitalRules

Collection of digital rules available for this event. Digital rules describe configurations for free digitals downloads.

emailAutomationGroupId nullable

The identifier for the email automation group associated with the event.

eventAccessLevel

The event access level.

eventCategory nullable read-only

The human-readable name of the category of the event.

eventCategoryId nullable

The category identifier associated with the event.

eventDate nullable

The date on which this event took place.

eventPassword nullable

If the event access level requires a password, this is the password that must be used to access the event.

eventPhotoTags read-only

Photo tags associated with this event.

eventStatus

The event status.

exifSearchFieldLabel nullable

The label for the EXIF data search field for the event.

This is only available if the studio has been flagged in the admin with this permission.

expirationDate nullable

The date on which this event expired.

headline nullable

Headline to display to event visitors.

hideAlbums

Whether to hide all the albums in an event.

This is only available if the studio has been flagged in the admin with this permission.

hideAllPhotosAlbum

Whether to hide the "All Photos" default photo album.

hidePhotoCountAlbums

Whether to hide the photo count for all albums in the client facing gallery.

homepageLinkTo nullable

The URL to which the homepage link should send users. This is required if showHomepageLink is true.

Valid values are:

  • studio_homepage: The homepage link points to the ShootProof homepage for the brand.
  • studio_website: The homepage link points to the website URL set for the brand.
id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

information nullable

Information to display to event visitors.

isPreRegistration

Whether pre-registration mode is turned on for the event.

landingLayoutType

The layout type for the event landing page. The possible landing layout types are:

  • basic: Accent
  • full-bottom: Limelight
  • full-bottom-alt: Foundation
  • full-center: Marquee
  • hexagon: Symmetry
  • split: Detail
  • no-cover: Headline
languageCode

The Unicode CLDR language tag for the language used in the event.

lastReleasedDate nullable read-only

The date on which this event was last released. This value is only ever set by the system when the event is released. If the event is released multiple times, this value will always be the date/time that the event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

minimumOrderAmount nullable

The minimum amount required for any order placed for the event.

musicAutoPlay

If there is a playlist defined, whether to auto-play the music when the even loads in the browser.

name

The name of this event.

orderDueDate nullable

The date on which orders for the event are due.

ordersCount read-only

The total number of orders for this event.

photoFavoritesCount read-only

The number of times photos in this event were favorited.

photoSortType

The type of sorting to apply to photos in this event.

This affects only the top-level "all photos" view for the event and does not cascade down through event albums and sub-albums. To apply a photo sort type to all albums and sub-albums, use a batch update operation on an album collection resource.

photosCount read-only

The total number of photos within this event, including photos in albums.

photosInQueueCount read-only

The total number of photos in the queue to be processed for this event.

photosNotInAnAlbumCount read-only

Number of photos within this event that are not in any albums.

pickupOptions

An array of order pickup options supported by the event.

playlist nullable read-only

The playlist for the event, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist the event uses.

preRegistrationMessage nullable

Text to display to visitors when the event is in pre-registration mode.

priceSheet nullable read-only

The price sheet for the event, if applicable. (TODO: price sheets not supported in the API at this time.)

priceSheetId nullable

The identifier for the price sheet the event uses. If null, then the shopping cart for the event is turned off.

priceSheetShowPackagesOnly

Whether to limit the display of price sheet items to only those that are packages. If this is set to true, allowAddAllToCart MUST be false.

printRelease nullable

Print release text that is sent to the client when ShootProof-fulfilled digitals are downloaded. Some HTML is allowed.

releaseDate nullable

The date on which this event will be released.

requireEmail

Whether an email address is required to view the event.

shares read-only

The number of times this event has been shared via various channels.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
showExpirationDate

Whether to show the expiration date to visitors.

showFilenames

Whether to show the filenames of photos in the event.

showHomepageLink

Whether to show a link to the studio homepage.

showSocialSharingLinks

Whether to display social media sharing links for the event.

socialSharingMessage nullable

The default message to include when a social sharing link is clicked.

thumbnailGutterWidth

Relative size of thumbnail gutter width for display.

thumbnailSize nullable

Relative size of thumbnails for display.

type

The type of object represented.

urlSlug nullable

The slug used to uniquely identify this event in URLs.

videoUrl nullable

The URL of a video to display to event visitors.

viewType

The layout type for the event photo pages. The possible view types are:

  • vmason: Cascade layout
  • hmason: Subway layout
visitorsCount read-only

The number of event visitors who provided their email address.

visitorsLastActiveDate nullable

The date on which an event visitor was last active.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "202": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Event"
        }
      }
    },
    "description": "Responds with the event on success.",
    "headers": {
      "Content-Location": {
        "description": "The URL of the event in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Deletes a batch of event photos.

Deletes the given event photos in the submitted collection.

delete
/studio/brand/{brandId}/event/{eventId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of event photos to delete.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

type

The type of resource represented (i.e., event).

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BatchCollection"
      }
    }
  },
  "description": "The list of event photos to delete.",
  "required": true
}

204 No Content

Successful deletion response.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Lists all event photos for the event.

Returns a list of all event photos for the event.

To get a display URL for each photo in the collection, see .items[n].displayUrl.

To get a URL for downloading the original image of each photo in the collection, see .items[n].links.event-photo-original.

Query string parameters may be used to affect the response, including pagination, sorting, and filtering.

All photos are returned, regardless of any standard pagination values that are included.

get
/studio/brand/{brandId}/event/{eventId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Query Parameters

Property Description
filterEventContactId

Combine with filterFavorite, filterHidden, filterPhotoTag or filterShare filters to segment these filters by contact (i.e., only photos favorited by the event contact).

filterFavorite

If provided and truthy, returns only photos that have been favorited.

filterHidden

If provided and truthy, returns only photos that have been marked as "hidden."

filterNotInAlbums

If provided and truthy, returns only photos that are not contained within an album."

filterPhotoId

Photo ID(s) by which to filter photos. Please note: if a processing photo enters the error state, this filter will return those photos. Normally, photos in the error state are not returned in any photo view or listing, so this functionality may be used to find out whether a photo encountered errors during processing.

filterPhotoTag

Tag(s) by which to filter photos.

filterShare

If provided and truthy, returns only photos that have been shared.

NOTE: This is not yet implemented. If provided, the response will return zero results until this feature is implemented.

filterStatus

Return only photos matching a particular status category

filterVisitorEmail

Combine with filterFavorite or filterShare filters to segment these filters by gallery visitor (i.e., only photos favorited by this gallery visitor).

prefer

A preference to apply to the response (see RFC 7240); useful if unable to set the HTTP Prefer header.

range

A index-based range of items to request; useful if unable to set the HTTP Range header in your request.

searchName

Event photo filename name by which to filter results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Prefer

A preference to apply to the response (see RFC 7240).

Range

A index-based range of items to request.

200 OK

Event photos list response.

Headers
Header Description
Accept-Ranges

Indicates that this resource can respond to range requests for the given types of ranges.

Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

206 Partial Content

Event photos list partial response.

Headers
Header Description
Content-Range

Indicates the ranges included in this partial response.

Preference-Applied

Indicates the preference requested in the Prefer header was applied to the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventPhotoCollection"
            },
            {
              "$ref": "#/components/schemas/EventPhotoCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "Event photos list response.",
    "headers": {
      "Accept-Ranges": {
        "description": "Indicates that this resource can respond to range requests for\nthe given types of ranges.",
        "schema": {
          "enum": [
            "items"
          ],
          "type": "string"
        }
      },
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "206": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/EventPhotoCollection"
            },
            {
              "$ref": "#/components/schemas/EventPhotoCollectionMinimal"
            }
          ]
        }
      }
    },
    "description": "Event photos list partial response.",
    "headers": {
      "Content-Range": {
        "description": "Indicates the ranges included in this partial response.",
        "schema": {
          "type": "string"
        }
      },
      "Preference-Applied": {
        "description": "Indicates the preference requested in the `Prefer` header was\napplied to the response.",
        "schema": {
          "type": "string"
        }
      }
    }
  }
}

Updates a batch of event photos.

Updates the provided properties on each of the given event photos in the collection.

If a property on an individual item is omitted, then no change will be performed on that property. If, however, the property is provided and set to null, that property will be unset. Note that some properties may not be set to null.

patch
/studio/brand/{brandId}/event/{eventId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The list of event photos to update.

application/vnd.shootproof+json
Property Description
items

A collection of one or more batched resources. If items is null or an empty array, no action is taken.

Property Description
id

Identifies one or more resources for which changes may be applied. This property accepts several different types of values:

  • []: If the id property is an empty array, then the changes will apply to all resources applicable to the context of the operation.
  • number[]: If the value is an array of integers, then the changes will apply to each of the resources identified by the numbers. If any of these numbers are negative (i.e., prefixed with a minus sign, -), the changes will not apply to resources identified by those numbers, even if the same number is present in the array in its positive form.
  • null or not present: An undefined state. The changes will not be applied to any resources.

This functionality allows a great degree of flexibility to batch processing of API resources. We can ask that the changes be applied to all resources for the given type by providing an empty array. We can apply the changes to all resources except a few (e.g., "id": [-45, -76, -32]). We can apply the changes to some resources, but not others (e.g., "id": [-32, 56, 45, -6, 18, 32]—in this example, the changes will not be applied to the resource identified by 32).

isHidden

Whether the photo(s) should be marked 'hidden.'

previousPhotoId nullable

The numeric identifier for the photo that precedes this photo when the event.photoSortType or album.photoSortType for the event or album in which this photo appears is set to custom.

This may only be used on a changeset for a single event photo identifer. If multiple event photo identifiers are present in the id array, a validation failure error will occur.

type

The type of resource represented (i.e., event).

watermarkId nullable

The numeric identifier for the watermark to apply to the photo(s).

Please note: If provided, all photos indicated by the id property will be re-watermarked using the watermark indicated by watermarkId. Only provide watermarkId if you wish to re-watermark the photos. If the value is set to null, all photos indicated in the id property will have their watermarks removed. If the watermarkId is not provided, no change will occur.

type

The model type for the collection object (i.e., event-collection).

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventPhotoCollectionInPatch"
      }
    }
  },
  "description": "The list of event photos to update.",
  "required": true
}

204 No Content

Successful patch response.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful patch response."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Creates a new photo within the event.

To upload new photos to the event:

  1. Make a POST request to the .links.event-photo-upload-policy relationship on the photo collection to generate an upload policy (see the photo upload policy endpoint documentation).

  2. Use the upload policy to POST the photo and .postParams to the policy .uploadUrl. Be sure the filename parameter in the multipart form submission is photo.jpg and not the original filename.

  3. Make a POST request to the photo collection's .links.self relationship (the endpoint described here) to create the photo in the event, using the client-generated key and response body from the .uploadUrl response. The name in this request should be the original filename.

post
/studio/brand/{brandId}/event/{eventId}/photo

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event photo object to create.

application/vnd.shootproof+json
Property Description
albumId nullable

The numeric identifier for the album to which this photo is being uploaded, if applicable. The album must belong to the event for which this photo is being uploaded.

filesize

The original filesize of the uploaded event photo.

name

The original filename of the uploaded event photo.

randomKey

The random key generated by the client and used to replace the ${random_folder} template variable when uploading the photo using the photo upload policy.

type

The type of object represented.

uploadTime nullable

The time in seconds (as a floating point number) it took to upload the photo to the URL specified in the photo upload policy.

uploadUrlResponse required

The response returned as a result of a request to the .uploadUrl specified in the photo upload policy.

Property Description
contentType

The value of the response's Content-Type header.

rawBody

The raw response body.

watermarkId nullable

The numeric identifier for the watermark applied to this photo, if applicable.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventPhotoInPost"
      }
    }
  },
  "description": "The event photo object to create.",
  "required": true
}

202 Accepted

The successfully-created event photo.

Headers
Header Description
Content-Location

The URL to the resource represented in the body of the response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumId nullable read-only

The numeric identifier for the album to which this photo belongs, if applicable.

If this photo resource has a type of event-photo, the albumId property will be null. However, if the photo resource has a type of event-album-photo, the albumId property will contain a value.

belongsToAlbumIds read-only

An array of all album IDs to which this photo belongs.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

eventId read-only

The numeric identifier for the event to which this photo belongs.

eventPhotoTags

An array of tags set on this photo, if any.

favoritesCount read-only

The number of times this event photo has been favorited.

filesize read-only

The original filesize of the image (in bytes).

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isHidden

Whether the photo has been marked 'hidden.'

lastReplaced nullable read-only

The date on which the photo was last replaced, or null if it has never been replaced.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

photoStatus read-only

The current status of this event photo.

previousPhotoId nullable read-only

The numeric identifier for the photo that precedes this photo when the event.photoSortType or album.photoSortType for the event or album in which this photo appears is set to custom.

If this photo resource has a type of event-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the event. If this photo resource has a type of event-album-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the album identified by albumId.

If the photoSortType for the event or album in which this photo appears is not set to custom, the previousPhotoId will be null. Likewise, if the photoSortType is custom and this is the first photo in the sequence, the value of previousPhotoId will be null.

shares read-only

The number of times this event photo has been shared via various channels.

NOTE: This is not yet implemented. All counts will yield a value of 0 until this feature is implemented.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
shootDate nullable read-only

The date on which this photo was taken (if available in the EXIF metadata when originally uploaded).

type

The type of object represented.

For a photo resource loaded from the context of an event, type will be event-photo. When the photo resource is loaded from the context of an album or sub-album, the type will be event-album-photo.

width read-only

The width in pixels of the image.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

409 Conflict

A conflict occurred, most likely due to an attempt to add a photo to an archived event.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

424 Failed Dependency

The method could not be performed on the resource because the requested action depended on another action and that action failed. In the case of an attempt to create an event photo, this means the uploaded photo could not be found, or nothing has been uploaded yet. Please refer to the steps for uploading new photos to an event.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

507 Insufficient Storage

Requested operation requires more storage space or would go over an imposed limit. Check the info.reason property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "202": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventPhoto"
        }
      }
    },
    "description": "The successfully-created event photo.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the resource represented in the body of the response.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "409": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "A conflict occurred, most likely due to an attempt to add a photo to\nan archived event."
  },
  "424": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "The method could not be performed on the resource because the\nrequested action depended on another action and that action failed.\nIn the case of an attempt to create an event photo, this means the\nuploaded photo could not be found, or nothing has been uploaded yet.\nPlease refer to the [steps for uploading new photos to an\nevent](#operation/createResourceEventPhoto)."
  },
  "507": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "Requested operation requires more storage space or would go over an\nimposed limit. Check the `info.reason` property in the response for\nmore details."
  }
}

Generates a photo upload policy for the event.

This returns a photo upload policy for an event, which may be used to upload a photo by making a POST request to the policy .uploadUrl. The POST request to the .uploadUrl must be a multipart/form-data upload request, including as form-data parameters each of the .postParams returned in the photo upload policy response.

Be sure the filename parameter in the multipart form submission is photo.jpg and not the original filename.

Additionally, the photo upload policy response includes the .postParams.key property, which contains the template variable ${random_folder}. This must be a random 32-character hexadecimal value generated by the client and replaced before sending the request to the .uploadUrl. Also included is the template variable ${filename}, which MUST NOT be replaced.

post
/studio/brand/{brandId}/event/{eventId}/photo/upload-policy

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A photo upload policy generated for the event.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
expiration read-only

The generated policy is valid until this time.

maxFileSize read-only

The maximum file size in bytes allowed for upload.

postParams required read-only

Parameters that must be included as parameters in the upload request.

In general, these parameter should be sent, unmodified, with the request. The exception is when any of the values contain a template variables, as noted.

Property Description
AWSAccessKeyId

The AWS Access Key ID for the .uploadUrl.

Content-Type

The media type of the file to be uploaded.

acl

The AWS access control level to be used for the upload.

key

The storage key for the file, to be used by the .uploadUrl for storing the uploaded image.

This value contains the template variable ${random_folder} which must be a random 32-character hexadecimal value generated by the client and replaced before sending the request to the .uploadUrl.

This value also contains the template variable ${filename}, which MUST NOT be replaced and should remain intact when sending the request to the .uploadUrl.

policy

The encoded policy document generated for the upload request.

signature

The encoded signature to send with the request to .uploadUrl.

success_action_status

The HTTP status code expected in a successful response from the request to `.uploadUrl'.

type read-only

The type of object represented.

uploadUrl read-only

The URL to which a POST request may be made to upload an image for the event.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

507 Insufficient Storage

Requested operation requires more storage space or would go over an imposed limit. Check the info.reason property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventPhotoUploadPolicy"
        }
      }
    },
    "description": "A photo upload policy generated for the event."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "507": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "Requested operation requires more storage space or would go over an\nimposed limit. Check the `info.reason` property in the response for\nmore details."
  }
}

Removes an event photo.

delete
/studio/brand/{brandId}/event/{eventId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

Successful deletion response.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  }
}

Returns a single event photo by ID.

get
/studio/brand/{brandId}/event/{eventId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

An event photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumId nullable read-only

The numeric identifier for the album to which this photo belongs, if applicable.

If this photo resource has a type of event-photo, the albumId property will be null. However, if the photo resource has a type of event-album-photo, the albumId property will contain a value.

belongsToAlbumIds read-only

An array of all album IDs to which this photo belongs.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

eventId read-only

The numeric identifier for the event to which this photo belongs.

eventPhotoTags

An array of tags set on this photo, if any.

favoritesCount read-only

The number of times this event photo has been favorited.

filesize read-only

The original filesize of the image (in bytes).

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isHidden

Whether the photo has been marked 'hidden.'

lastReplaced nullable read-only

The date on which the photo was last replaced, or null if it has never been replaced.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

photoStatus read-only

The current status of this event photo.

previousPhotoId nullable read-only

The numeric identifier for the photo that precedes this photo when the event.photoSortType or album.photoSortType for the event or album in which this photo appears is set to custom.

If this photo resource has a type of event-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the event. If this photo resource has a type of event-album-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the album identified by albumId.

If the photoSortType for the event or album in which this photo appears is not set to custom, the previousPhotoId will be null. Likewise, if the photoSortType is custom and this is the first photo in the sequence, the value of previousPhotoId will be null.

shares read-only

The number of times this event photo has been shared via various channels.

NOTE: This is not yet implemented. All counts will yield a value of 0 until this feature is implemented.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
shootDate nullable read-only

The date on which this photo was taken (if available in the EXIF metadata when originally uploaded).

type

The type of object represented.

For a photo resource loaded from the context of an event, type will be event-photo. When the photo resource is loaded from the context of an album or sub-album, the type will be event-album-photo.

width read-only

The width in pixels of the image.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventPhoto"
        }
      }
    },
    "description": "An event photo."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially updates an event photo.

patch
/studio/brand/{brandId}/event/{eventId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event photo object to update. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
filesize

The original filesize of the uploaded event photo.

isHidden

Whether the photo should be marked 'hidden.'

name

The filename of the uploaded event photo.

randomKey

The random key generated by the client and used to replace the ${random_folder} template variable when uploading the photo using the photo upload policy.

type

The type of object represented.

uploadTime nullable

The time in seconds (as a floating point number) it took to upload the photo to the URL specified in the photo upload policy.

uploadUrlResponse required

The response returned as a result of a request to the .uploadUrl specified in the photo upload policy.

Property Description
contentType

The value of the response's Content-Type header.

rawBody

The raw response body.

watermarkId nullable

The numeric identifier for the watermark applied to this photo, if applicable.

Please note: Only provide watermarkId if you wish to re-watermark the photo. Using an identifier for a different watermark will apply the new watermark to this photo. If the value is set to null on a photo with a watermark, the watermark will be removed. If the watermarkId is not provided, no change will occur.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventPhotoInUpdate"
      }
    }
  },
  "description": "The event photo object to update. Only provide those properties that\nneed updating.",
  "required": true
}

200 OK

The successfully-updated event photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumId nullable read-only

The numeric identifier for the album to which this photo belongs, if applicable.

If this photo resource has a type of event-photo, the albumId property will be null. However, if the photo resource has a type of event-album-photo, the albumId property will contain a value.

belongsToAlbumIds read-only

An array of all album IDs to which this photo belongs.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

eventId read-only

The numeric identifier for the event to which this photo belongs.

eventPhotoTags

An array of tags set on this photo, if any.

favoritesCount read-only

The number of times this event photo has been favorited.

filesize read-only

The original filesize of the image (in bytes).

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isHidden

Whether the photo has been marked 'hidden.'

lastReplaced nullable read-only

The date on which the photo was last replaced, or null if it has never been replaced.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

photoStatus read-only

The current status of this event photo.

previousPhotoId nullable read-only

The numeric identifier for the photo that precedes this photo when the event.photoSortType or album.photoSortType for the event or album in which this photo appears is set to custom.

If this photo resource has a type of event-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the event. If this photo resource has a type of event-album-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the album identified by albumId.

If the photoSortType for the event or album in which this photo appears is not set to custom, the previousPhotoId will be null. Likewise, if the photoSortType is custom and this is the first photo in the sequence, the value of previousPhotoId will be null.

shares read-only

The number of times this event photo has been shared via various channels.

NOTE: This is not yet implemented. All counts will yield a value of 0 until this feature is implemented.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
shootDate nullable read-only

The date on which this photo was taken (if available in the EXIF metadata when originally uploaded).

type

The type of object represented.

For a photo resource loaded from the context of an event, type will be event-photo. When the photo resource is loaded from the context of an album or sub-album, the type will be event-album-photo.

width read-only

The width in pixels of the image.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventPhoto"
        }
      }
    },
    "description": "The successfully-updated event photo."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Fully updates an event photo.

put
/studio/brand/{brandId}/event/{eventId}/photo/{eventPhotoId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The event photo object to update.

application/vnd.shootproof+json
Property Description
filesize

The original filesize of the uploaded event photo.

isHidden

Whether the photo should be marked 'hidden.'

name

The filename of the uploaded event photo.

randomKey

The random key generated by the client and used to replace the ${random_folder} template variable when uploading the photo using the photo upload policy.

type

The type of object represented.

uploadTime nullable

The time in seconds (as a floating point number) it took to upload the photo to the URL specified in the photo upload policy.

uploadUrlResponse required

The response returned as a result of a request to the .uploadUrl specified in the photo upload policy.

Property Description
contentType

The value of the response's Content-Type header.

rawBody

The raw response body.

watermarkId nullable

The numeric identifier for the watermark applied to this photo, if applicable.

Please note: Only provide watermarkId if you wish to re-watermark the photo. Using an identifier for a different watermark will apply the new watermark to this photo. If the value is set to null on a photo with a watermark, the watermark will be removed. If the watermarkId is not provided, no change will occur.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/EventPhotoInUpdate"
      }
    }
  },
  "description": "The event photo object to update.",
  "required": true
}

200 OK

The successfully-updated event photo.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
albumId nullable read-only

The numeric identifier for the album to which this photo belongs, if applicable.

If this photo resource has a type of event-photo, the albumId property will be null. However, if the photo resource has a type of event-album-photo, the albumId property will contain a value.

belongsToAlbumIds read-only

An array of all album IDs to which this photo belongs.

created read-only

The creation date of the image.

displayUrl nullable read-only

Display URLs for this image.

eventId read-only

The numeric identifier for the event to which this photo belongs.

eventPhotoTags

An array of tags set on this photo, if any.

favoritesCount read-only

The number of times this event photo has been favorited.

filesize read-only

The original filesize of the image (in bytes).

height read-only

The height in pixels of the image.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isHidden

Whether the photo has been marked 'hidden.'

lastReplaced nullable read-only

The date on which the photo was last replaced, or null if it has never been replaced.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is Client Gallery homepage for the brand related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

tax-profile

The target URL is a tax profile or collection of tax profiles related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

mimeType nullable read-only

The image file MIME type.

name

The original filename of the image.

photoStatus read-only

The current status of this event photo.

previousPhotoId nullable read-only

The numeric identifier for the photo that precedes this photo when the event.photoSortType or album.photoSortType for the event or album in which this photo appears is set to custom.

If this photo resource has a type of event-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the event. If this photo resource has a type of event-album-photo, the previousPhotoId refers to the preceding photo in the collection of photos for the album identified by albumId.

If the photoSortType for the event or album in which this photo appears is not set to custom, the previousPhotoId will be null. Likewise, if the photoSortType is custom and this is the first photo in the sequence, the value of previousPhotoId will be null.

shares read-only

The number of times this event photo has been shared via various channels.

NOTE: This is not yet implemented. All counts will yield a value of 0 until this feature is implemented.

Property Description
facebookCount
linkCount
pinterestCount
twitterCount
shootDate nullable read-only

The date on which this photo was taken (if available in the EXIF metadata when originally uploaded).

type

The type of object represented.

For a photo resource loaded from the context of an event, type will be event-photo. When the photo resource is loaded from the context of an album or sub-album, the type will be event-album-photo.

width read-only

The width in pixels of the image.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventPhoto"
        }
      }
    },
    "description": "The successfully-updated event photo."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Redirects to a temporary URL where photo's original image can be retrieved.

get
/studio/brand/{brandId}/event/{eventId}/photo/{eventPhotoId}/original

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

eventPhotoId required

The event photo identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

302 Found

See Location header value for download URL. This is a signed URL the studio may use to download the original photo. The download URL expires after 1 hour.

403 Forbidden

Access to photo is forbidden.

404 Not Found

Photo does not exist.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "302": {
    "description": "See `Location` header value for download URL. This is a signed URL\nthe studio may use to download the original photo. The download URL\nexpires after 1 hour."
  },
  "403": {
    "description": "Access to photo is forbidden."
  },
  "404": {
    "description": "Photo does not exist."
  }
}

Create a new zip bundle link for event photos.

Generates a new zip bundle for event photos. If the request body contains an array of photo IDs belonging to the event, the zip bundle will contain only those photos.

If a zip bundle already exists containing the same photos, a new one will not be generated but the existing zip bundle will be returned and the appropriate email will be re-sent to the studio panel user or client gallery visitor.

post
/studio/brand/{brandId}/event/{eventId}/zip-bundle

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

eventId required

The event identifier.

Request Body

The zip bundle.

application/vnd.shootproof+json
Property Description
email write-only

The email address of an external user to send this zip bundle to.

If provided, the zip bundle generated will result in an email being sent to this address where the zip bundle link points to the client Gallery's zip bundle download page. By providing this value, it is assumed that the intended recipient is an external user.

If a value is not provided, the zip bundle generated will be sent to the requester's email address, and the link will be to a Studio Panel page where the ZIP file(s) can be downloaded.

photoIds write-only

The (optional) IDs of the photos included in this zip bundle. If present, zip bundle will be limited to photo IDs present in this value.

type

The type of object represented

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/ZipBundle"
      }
    }
  },
  "description": "The zip bundle.",
  "required": true
}

202 Accepted

The request was valid and accepted and the zip bundle is being created.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
downloadPageUrl nullable read-only

The URL for the download page where the zip bundle can be downloaded. Is either a URL to a Studio Panel download page, or a client gallery download page if the zip bundle is to be publicly accessible.

expiration read-only

Datetime representing the expiration for the given URL. URL will no longer be valid after this time.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

numFiles nullable read-only

The number of files that make up this zip bundle. Null until processing is complete.

type

The type of object represented

zipBundleStatus read-only

A slug string representing the status message describing the state of the zip bundle.

  • awaiting-processing - In the queue for processing
  • processing - Photos are being processed and zip bundle assembled.
  • downloadable - Zip bundle is ready for download.
  • deleted - Bundle has been deleted
zipBundleType read-only

The digital download type slug:

  • digital-download-order - Bundle of all photos belonging to a single paid digitals order
  • studio-group-photos - Studio panel user selected group of photos
  • event-all-photos - Bundle of all photos belonging to the event
  • event-all-photos-client - Client gallery user chose to download all photos in the event
  • studio-sent-client-link - Studio panel user generated a zip bundle and corresponding share link, no email address associated with this type of zip bundle == no authentication
  • album-all-photos - Bundle of all photos belonging to the event album, only used by studio panel
  • client-group-photos - Client user's arbitrary selection of photos grouped together into a zip bundle for download

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "202": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/ZipBundle"
        }
      }
    },
    "description": "The request was valid and accepted and the zip bundle is being\ncreated."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Creates a mobile app.

post
/studio/brand/{brandId}/mobile-app

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The mobile app object to create.

application/vnd.shootproof+json
Property Description
brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme this mobile app uses.

eventId nullable

The identifier for the event to which is mobile app is related, if applicable.

languageCode

The Unicode CLDR language tag for the language used in this mobile app.

name

The name of the mobile app.

photoIds

An array of photo identifiers used when creating a new mobile app from photos selected in an event or album. (This property is not available in responses.)

playlistId nullable

The identifier for the playlist this mobile app uses.

showContactInfo

Whether to show the studio contact information in the mobile app.

showSocialSharing

Whether to show the social sharing icons in the mobile app.

type

The type of object represented.

viewType

The mobile app layout style. We support two layouts for mobile apps:

  • vmason: Cascade layout
  • hmason: Subway layout

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/MobileApp"
      }
    }
  },
  "description": "The mobile app object to create.",
  "required": true
}

201 Created

The sucessfully-created mobile app.

Headers
Header Description
Location

The URL to the newly-created mobile app.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme this mobile app uses.

created read-only

The creation date of this mobile app.

eventId nullable

The identifier for the event to which is mobile app is related, if applicable.

eventName nullable read-only

The name for the event to which this mobile app is related, if applicable.

id read-only

The identifier for this mobile app.

languageCode

The Unicode CLDR language tag for the language used in this mobile app.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of the mobile app.

photoIds

An array of photo identifiers used when creating a new mobile app from photos selected in an event or album. (This property is not available in responses.)

playlist nullable read-only

The playlist for this mobile app, if applicable. (TODO: playlists not supported in the API at this time.)

playlistId nullable

The identifier for the playlist this mobile app uses.

showContactInfo

Whether to show the studio contact information in the mobile app.

showSocialSharing

Whether to show the social sharing icons in the mobile app.

type

The type of object represented.

viewType

The mobile app layout style. We support two layouts for mobile apps:

  • vmason: Cascade layout
  • hmason: Subway layout

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/MobileApp"
        }
      }
    },
    "description": "The sucessfully-created mobile app.",
    "headers": {
      "Location": {
        "description": "The URL to the newly-created mobile app.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Lists all events which have been linked to the price sheet.

Returns a list of all events linked to the price sheet. Query string parameters may be used to affect the response, including pagination, sorting, and filtering.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/event

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

List of Events that are associated with the given PriceSheetId.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
contactId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

contactName nullable

The full name of the contact associated with this event.

coverPhoto required nullable read-only

A cover photo for the event.

created

The creation date of this event.

createdBy

The ID of the user who created this event.

eventAccessLevel

The event access level.

eventCategory nullable

The human-readable name of the category of this event.

eventCategoryId nullable

The numeric identifier for the category of this event.

eventDate nullable

The date on which this event took place.

eventStatus

The event status.

expirationDate nullable

The date on which this event expires.

id

The identifier for this event.

isPreRegistration

Whether pre-registration mode is turned on for the event.

lastReleasedDate nullable

The date on which this event was last released.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this event.

photosCount

The total number of photos within this event, including photos in albums.

playlistId nullable read-only

The identifier for the playlist this event uses.

priceSheetId nullable

The identifier for the price sheet assigned to the event.

releaseDate nullable

The date on which this event will be released.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta required read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

eventTotals required

Total counts for various types of events in various states.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/EventCollection"
        }
      }
    },
    "description": "List of Events that are associated with the given PriceSheetId."
  }
}