Contents

Price Sheets

Studios set up prices for an event’s products through price sheets, which may or may not be tied to a lab catalog. The ShootProof API allows your app to help photography studios manage price sheets and attach them to events.

Lists all lab catalogs for the brand.

Returns a list of all lab catalogs for the brand.

Query string parameters may be used to affect the response, including pagination, sorting, and filtering.

get
/studio/brand/{brandId}/lab-catalog

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

Lab catalog 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
boundsDisplaySort

Returns a slug that denotes whether width precedes height (or vice versa) when displaying bounds (e.g. 8" x 10" vs 10" x 8").

currencyCode nullable

The type of currency used for this lab catalog, or null if this catalog has no currency code set.

currencySymbol nullable

The currency symbol for the type of currency used for this lab catalog.

description deprecated

Derived in the lab catalog transformer. Deprecated due to lack of translation.

id nullable

The identifier for this lab catalog, or null if this is the "empty" lab catalog.

isLabFulfilled

Whether this represents a catalog of lab-fulfilled items.

lab nullable

The lab to which this lab catalog belongs, or null if this is the "empty" lab catalog.

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 resource 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 resource 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/LabCatalogCollection"
        }
      }
    },
    "description": "Lab catalog list response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Returns a single lab catalog object by ID.

Returns a single lab catalog object for the brand by id.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogId required

The lab catalog 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 lab catalog object.

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
boundsDisplaySort

Returns a slug that denotes whether width precedes height (or vice versa) when displaying bounds (e.g. 8" x 10" vs 10" x 8").

currencyCode nullable

The type of currency used for this lab catalog, or null if this catalog has no currency code set.

currencySymbol nullable

The currency symbol for the type of currency used for this lab catalog.

description deprecated

Derived in the lab catalog transformer. Deprecated due to lack of translation.

id nullable

The identifier for this lab catalog, or null if this is the "empty" lab catalog.

isLabFulfilled

Whether this represents a catalog of lab-fulfilled items.

lab nullable

The lab to which this lab catalog belongs, or null if this is the "empty" lab catalog.

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 resource 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/LabCatalog"
        }
      }
    },
    "description": "A lab catalog object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List all lab catalog groups for the lab catalog.

Returns a list of all lab catalog groups for the lab catalog.

Query string parameters may be used to affect the response, including pagination and sorting.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}/group

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogId required

The lab catalog 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

Lab Catalog Group 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
description nullable

Display text shown to the user in order to give them information concerning the group and the type of products which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a lab catalog.

id

The identifier for the lab catalog group.

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 lab catalog group.

type

The type of resource 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 resource 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/LabCatalogGroupCollection"
        }
      }
    },
    "description": "Lab Catalog Group list response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Returns a lab catalog group for the lab catalog.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}/group/{labCatalogGroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogGroupId required

The lab catalog group identifier.

labCatalogId required

The lab catalog 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 lab catalog group

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
description nullable

Display text shown to the user in order to give them information concerning the group and the type of products which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a lab catalog.

id

The identifier for the lab catalog group.

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 lab catalog group.

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/LabCatalogGroup"
        }
      }
    },
    "description": "The lab catalog group"
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List all lab catalog products for the lab catalog.

Returns a list of all lab catalog products for the lab catalog.

Query string parameters may be used to affect the response, including pagination, sorting, and filtering.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}/product

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogId required

The lab catalog identifier.

Query Parameters

Property Description
filterGroupType

The type of group by which to filter the results.

filterIsBestseller

If provided and truthy, denotes that results should be filtered to only bestsellers.

filterLabCatalogGroupId

Group identifier by which to filter results.

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

Lab Catalog Products 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
alternateDisplayName nullable

An alternate name for the product.

bounds

A comma delimited list that specifies the product bounds.

boundsName nullable

The name given to the bounds description for the product.

description nullable

Display text shown to the user in order to give them information concerning the product.

id

The identifier for the lab catalog product.

isBestseller

Denotes if the item is a best seller, meaning that the product should appear in a new price sheet that is created with the 'Best Seller' option selected.

labCatalogGroupId nullable

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.

name

The name of the lab catalog product.

productSize nullable

The size of the product in human readable terms.

retailPrice

A decimal value of the retail price of the product.

type

The type of resource 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 resource 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/LabCatalogProductCollection"
        }
      }
    },
    "description": "Lab Catalog Products list response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Returns a lab catalog product for the lab catalog.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}/product/{labCatalogProductId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogId required

The lab catalog identifier.

labCatalogProductId required

The lab catalog product 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 lab catalog product

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
alternateDisplayName nullable

An alternate name for the product.

bounds

A comma delimited list that specifies the product bounds.

boundsName nullable

The name given to the bounds description for the product.

description nullable

Display text shown to the user in order to give them information concerning the product.

id

The identifier for the lab catalog product.

isBestseller

Denotes if the item is a best seller, meaning that the product should appear in a new price sheet that is created with the 'Best Seller' option selected.

labCatalogGroupId nullable

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.

name

The name of the lab catalog product.

productSize nullable

The size of the product in human readable terms.

retailPrice

A decimal value of the retail price of the product.

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/LabCatalogProduct"
        }
      }
    },
    "description": "The lab catalog product"
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List all lab catalog shipping options for the lab catalog.

Returns a list of all lab catalog shipping options for the lab catalog.

Query string parameters may be used to affect the response, including pagination and sorting.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}/shipping-option

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogId required

The lab catalog 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

Lab Catalog Shipping Option 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
citiesAvailable nullable

An array of destination cities or localities where this shipping option is available. Applicable to couriers.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this shipping option is available.

description nullable

Display text shown to the user in order to give them information concerning the shipping option.

hasTracking

Is tracking available for this method?

id

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

labShippingCode

Code used by the lab to identify this shipping option.

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.

maximumLabCost

A decimal value of the maximum lab cost available to utilize this shipping option, converted to the currency of the brand.

maximumProductSize required nullable

An object that specifies the maximum product size for this shipping option in inches.

Property Description
height

The number of inches of maximum height.

width

The number of inches of maximum width.

minimumLabCost

A decimal value of the minimum lab cost required to utilize this shipping option, converted to the currency of the brand.

name

The name of the lab catalog shipping option.

printsOnly

Is this option available only for prints? Applicable to postal services with package size/weight limits.

retailPrice

A decimal value of the retail price of the shipping option, converted to the currency of the brand.

transitDays

General description of number of transit days.

type

The type of resource 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 resource 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/LabCatalogShippingOptionCollection"
        }
      }
    },
    "description": "Lab Catalog Shipping Option list response."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Returns a lab catalog shipping option for the lab catalog.

get
/studio/brand/{brandId}/lab-catalog/{labCatalogId}/shipping-option/{labCatalogShippingOptionId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

labCatalogId required

The lab catalog identifier.

labCatalogShippingOptionId required

The lab catalog shipping option 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 lab catalog shipping option

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
citiesAvailable nullable

An array of destination cities or localities where this shipping option is available. Applicable to couriers.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this shipping option is available.

description nullable

Display text shown to the user in order to give them information concerning the shipping option.

hasTracking

Is tracking available for this method?

id

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

labShippingCode

Code used by the lab to identify this shipping option.

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.

maximumLabCost

A decimal value of the maximum lab cost available to utilize this shipping option, converted to the currency of the brand.

maximumProductSize required nullable

An object that specifies the maximum product size for this shipping option in inches.

Property Description
height

The number of inches of maximum height.

width

The number of inches of maximum width.

minimumLabCost

A decimal value of the minimum lab cost required to utilize this shipping option, converted to the currency of the brand.

name

The name of the lab catalog shipping option.

printsOnly

Is this option available only for prints? Applicable to postal services with package size/weight limits.

retailPrice

A decimal value of the retail price of the shipping option, converted to the currency of the brand.

transitDays

General description of number of transit days.

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/LabCatalogShippingOption"
        }
      }
    },
    "description": "The lab catalog shipping option"
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Lists all price sheets for the studio.

Returns a list of all price sheets for the studio. Price sheets are shared across all brands in the studio.

Query string parameters may be used to affect the response, including pagination, sorting, and filtering.

get
/studio/brand/{brandId}/price-sheet

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

Price sheet 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 price sheet.

discountsCount

The total number of discounts associated with the price sheet.

fulfillmentLabId

The id of the lab used to fulfill items purchased from the price sheet.

id

The identifier for this price sheet.

itemsCount

The total number of items the price sheet contains.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

linkedCartsCount read-only

The total number of carts containing items in the price sheet.

linkedEventsCount read-only

The total number of non-deleted events that are using the price sheet.

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

Human readable name for this price sheet.

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.

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/PriceSheetCollection"
        }
      }
    },
    "description": "Price sheet list response."
  }
}

Creates a new price sheet object for the current studio.

Creates a new Price Sheet.

In order to duplicate an existing Price Sheet object, the request must contain a duplicatesId parameter containing the ID of the Price Sheet that is to be duplicated. In this case, a request body is optional. When the request is submitted the request body will be merged onto the duplicated resource, replacing any properties.

post
/studio/brand/{brandId}/price-sheet

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
duplicatesId

Price Sheet identifier to duplicate

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 price sheet.

application/vnd.shootproof+json
Property Description
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

name

The name of the price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
      }
    }
  },
  "description": "The price sheet.",
  "required": true
}

201 Created

The successfully created price sheet object.

Headers
Header Description
Location

The URL to the newly-created price sheet object.

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
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

created read-only

The creation date of this price sheet.

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

id read-only

The identifier for the price sheet.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

linkedCartsCount read-only

The total number of carts containing items in the price sheet.

linkedEventsCount read-only

The total number of non-deleted events that are using the price sheet.

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 price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
        }
      }
    },
    "description": "The successfully created price sheet object.",
    "headers": {
      "Location": {
        "description": "The URL to the newly-created price sheet object.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes a single price sheet object from the studio.

Changes the status of a studio's price sheet to deleted.

delete
/studio/brand/{brandId}/price-sheet/{priceSheetId}

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.

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 price sheet object by ID.

Returns a specific price sheet for the studio using the price sheet ID.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}

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

A price sheet object.

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
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

created read-only

The creation date of this price sheet.

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

id read-only

The identifier for the price sheet.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

linkedCartsCount read-only

The total number of carts containing items in the price sheet.

linkedEventsCount read-only

The total number of non-deleted events that are using the price sheet.

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 price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
        }
      }
    },
    "description": "A price sheet object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially updates a price sheet.

This endpoint is still under development. A mocked update response will be returned, but the updates will not actually be saved. Updates the provided fields for the price sheet, exception those indicated as readOnly.

patch
/studio/brand/{brandId}/price-sheet/{priceSheetId}

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.

Request Body

The price sheet object to update. Only proviude those properties that need updating.

application/vnd.shootproof+json
Property Description
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

name

The name of the price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
      }
    }
  },
  "description": "The price sheet object to update. Only proviude those properties that\nneed updating.",
  "required": true
}

200 OK

The successfully updated price sheet.

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
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

created read-only

The creation date of this price sheet.

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

id read-only

The identifier for the price sheet.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

linkedCartsCount read-only

The total number of carts containing items in the price sheet.

linkedEventsCount read-only

The total number of non-deleted events that are using the price sheet.

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 price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
        }
      }
    },
    "description": "The successfully updated price sheet."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Fully updates a specific studio price sheet.

Updates the specified price sheet using the provided data with the entire price sheet being overwritten.

put
/studio/brand/{brandId}/price-sheet/{priceSheetId}

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.

Request Body

The price sheet.

application/vnd.shootproof+json
Property Description
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

name

The name of the price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
      }
    }
  },
  "description": "The price sheet.",
  "required": true
}

200 OK

The successfully updated price sheet.

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
allowLabShippingSpeedSelection

Determines if the client should be allowed to select a shipping speed offered by the lab during checkout

created read-only

The creation date of this price sheet.

createdFromBestsellers

Denotes if the price sheet was originally created with auto-populate items from the lab catalog's best seller's list.

id read-only

The identifier for the price sheet.

labCatalogId nullable

The ID of the lab catalog which the price sheet is based on

linkedCartsCount read-only

The total number of carts containing items in the price sheet.

linkedEventsCount read-only

The total number of non-deleted events that are using the price sheet.

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 price sheet.

priceSheetGroup

An array of group of items that are contained by the price sheet.

retouch required nullable

Setting for Retouch add-on, an optional add-on that is applied across all items of the price sheet.

Property Description
description

Text to describe the retouch add-on to customers.

label

Label of the retouch add-on as it will be displayed to the user.

position

Denotes if the retouch add-on should be the first or last add-on displayed for items of the price sheet.

price

The cost for performing retouches to item images.

salesTaxOnDigitalDownload

Denotes if the sales tax should be applied to items which are solely a digital download.

salesTaxOnShippingCharge

Denotes if the sales tax should be applied to shipping fees.

salesTaxPercentage nullable

The percentage used to calculate the sales tax from an order subtotal.

salesTaxStateId nullable

An identifier signifying the state or locale where the sales tax is applicable. The identifier is a combination of the two letter country code and a two to three letter abbreviation of the state/locale separated by an underscore.

salesTaxTitle nullable

A name used to refer to the tax.

selfFulfilledLabCatalogId nullable

The ID of the self-fulfilled catalog which the price sheet uses.

shippingOptions

An array of shipping options to be used when purchasing items from the price sheet.

Property Description
price

Decimal value of the price of the shipping option.

title

The display title of the shipping option.

shippingTitle

A descriptive title for shipping, such as "Shipping", "Shipping and Handling", etc.

shippingType

What type of shipping does the price sheet expect to use.

termsOfSale

Terms of sale which users must agree to before being allowed to purchase items from the price sheet.

type

The type of object represented.

vatNumber nullable

VAT identification number (VATIN) used by many EU and other countries for tax entity identification purposes.

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/PriceSheet"
        }
      }
    },
    "description": "The successfully updated price sheet."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Lists all discounts available for a price sheet.

Returns a list of all discounts available for 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}/discount

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

Price sheet discounts 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 read-only

The creation date of this price sheet.

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.

name

The name of the price sheet discount.

type

The type of resource 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 resource represented.

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/PriceSheetDiscountCollection"
        }
      }
    },
    "description": "Price sheet discounts list response."
  }
}

Returns a single price sheet discount object by ID.

Returns a specific price sheet discount using the ID of the discount.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/discount/{priceSheetDiscountId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetDiscountId required

The pricesheet discount 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

A price sheet discount object.

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
created read-only

The creation date of this price sheet.

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.

name

The name of the price sheet discount.

type

The type of resource 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/PriceSheetDiscountCollection/allOf/0/properties/items/items"
        }
      }
    },
    "description": "A price sheet discount object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

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."
  }
}

Lists all groups for the price sheet.

Returns a list of all Groups for the Price Sheet.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group

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

Price Sheet Group 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 read-only

The creation date of this price sheet group.

description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

groupType read-only

The slug name of the type of price sheet item group.

id read-only

The identifier for the price sheet group.

images

An array of images which display the types of items which may be contained within the group.

isDefault read-only

Denotes if the group is a default group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

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 price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

status read-only

The current status of the price sheet group.

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 resource represented.

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/PriceSheetGroupCollection"
        }
      }
    },
    "description": "Price Sheet Group list response."
  }
}

Updates a batch of Price Sheet Groups.

Updates the provided properties on each of the given groups 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}/price-sheet/{priceSheetId}/group

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.

Request Body

The list of groups 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
description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

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

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

name

The name of the price sheet group.

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/PriceSheetGroupCollectionInPatch"
      }
    }
  },
  "description": "The list of groups to update.",
  "required": true
}

200 OK

Price Sheet Group 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 read-only

The creation date of this price sheet group.

description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

groupType read-only

The slug name of the type of price sheet item group.

id read-only

The identifier for the price sheet group.

images

An array of images which display the types of items which may be contained within the group.

isDefault read-only

Denotes if the group is a default group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

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 price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

status read-only

The current status of the price sheet group.

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 resource 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/PriceSheetGroupCollection"
        }
      }
    },
    "description": "Price Sheet Group list response."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Create a Price Sheet Group

Creates a new Price Sheet Group object for the current studio.

post
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group

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.

Request Body

application/vnd.shootproof+json
Property Description
description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

images

An array of images which display the types of items which may be contained within the group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

name

The name of the price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

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/PriceSheetGroup"
      }
    }
  }
}

201 Created

The successfully-created Price Sheet Group object.

Headers
Header Description
Location

The URL to the newly-created Price Sheet Group object.

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
created read-only

The creation date of this price sheet group.

description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

groupType read-only

The slug name of the type of price sheet item group.

id read-only

The identifier for the price sheet group.

images

An array of images which display the types of items which may be contained within the group.

isDefault read-only

Denotes if the group is a default group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

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 price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

status read-only

The current status of the price sheet group.

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/PriceSheetGroup"
        }
      }
    },
    "description": "The successfully-created Price Sheet Group object.",
    "headers": {
      "Location": {
        "description": "The URL to the newly-created Price Sheet Group object.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes a Price Sheet Group.

Removes a specific Group from the Price Sheet.

delete
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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.

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 Price Sheet Group object by ID.

Returns a specific Price Sheet Group using the ID of the group.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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

A Price Sheet Group object.

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
created read-only

The creation date of this price sheet group.

description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

groupType read-only

The slug name of the type of price sheet item group.

id read-only

The identifier for the price sheet group.

images

An array of images which display the types of items which may be contained within the group.

isDefault read-only

Denotes if the group is a default group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

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 price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

status read-only

The current status of the price sheet group.

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/PriceSheetGroup"
        }
      }
    },
    "description": "A Price Sheet Group object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially updates a Price Sheet Group.

Updates a Price Sheet Group with only the provided fields being updated.

patch
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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.

Request Body

The price sheet group object to partially update.

application/vnd.shootproof+json
Property Description
description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

images

An array of images which display the types of items which may be contained within the group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

name

The name of the price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

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/PriceSheetGroup"
      }
    }
  },
  "description": "The price sheet group object to partially update.",
  "required": true
}

200 OK

The successfully updated Price Sheet Group.

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
created read-only

The creation date of this price sheet group.

description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

groupType read-only

The slug name of the type of price sheet item group.

id read-only

The identifier for the price sheet group.

images

An array of images which display the types of items which may be contained within the group.

isDefault read-only

Denotes if the group is a default group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

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 price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

status read-only

The current status of the price sheet group.

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/PriceSheetGroup"
        }
      }
    },
    "description": "The successfully updated Price Sheet Group."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Fully updates a specific Price Sheet Group.

Updates the specified Price Sheet Group using the provided data with the entire item being overwritten.

put
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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.

Request Body

The price sheet group object to update.

application/vnd.shootproof+json
Property Description
description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

images

An array of images which display the types of items which may be contained within the group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

name

The name of the price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

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/PriceSheetGroup"
      }
    }
  },
  "description": "The price sheet group object to update.",
  "required": true
}

200 OK

The successfully updated Price Sheet Group.

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
created read-only

The creation date of this price sheet group.

description

Display text shown to the user in order to give them information concerning the group and the type of items which it may contain.

displayOrder

The order in which the group should be displayed in a list of groups for a price sheet

groupType read-only

The slug name of the type of price sheet item group.

id read-only

The identifier for the price sheet group.

images

An array of images which display the types of items which may be contained within the group.

isDefault read-only

Denotes if the group is a default group.

isFeaturedType

Denotes that the group is meant to contain items which are to be featured in the price sheet.

isPackageType

Denotes that the group is meant to contain packages.

labCatalogGroupId

The ID of the lab catalog group which was used to create the group.

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 price sheet group.

priceSheetItems

An array containing the items which are part of the group.

priceSheetSubgroups

An array containing the various subgroups of items within the group.

status read-only

The current status of the price sheet group.

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/PriceSheetGroup"
        }
      }
    },
    "description": "The successfully updated Price Sheet Group."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Lists all subgroups for the price sheet group.

Returns a list of all subgroups for the price sheet group.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}/subgroup

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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

Price sheet subgroup 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
bounds nullable read-only

The dimensional bounds of the price sheet subgroup.

displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

isCustom read-only

Denotes if the Subgroup was created by the Studio.

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 price sheet subgroup.

type

The type of resource 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 resource represented.

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/PriceSheetSubgroupCollection"
        }
      }
    },
    "description": "Price sheet subgroup list response."
  }
}

Updates a batch of price sheet subgroups.

Updates the provided properties on each of the given subgroups 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}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}/subgroup

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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.

Request Body

The collection of subgroups 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
displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

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

name

The name of the price sheet subgroup.

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/PriceSheetSubgroupCollectionInPatch"
      }
    }
  },
  "description": "The collection of subgroups to update.",
  "required": true
}

200 OK

Price sheet subgroup 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
bounds nullable read-only

The dimensional bounds of the price sheet subgroup.

displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

isCustom read-only

Denotes if the Subgroup was created by the Studio.

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 price sheet subgroup.

type

The type of resource 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 resource 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/PriceSheetSubgroupCollection"
        }
      }
    },
    "description": "Price sheet subgroup list response."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Create a price sheet subgroup

Creates a new price sheet subgroup object for the current studio.

post
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}/subgroup

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group 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.

Request Body

application/vnd.shootproof+json
Property Description
displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

name

The name of the price sheet subgroup.

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/PriceSheetSubgroup"
      }
    }
  }
}

201 Created

The successfully-created price sheet subgroup object.

Headers
Header Description
Location

The URL to the newly-created price sheet subgroup object.

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
bounds nullable read-only

The dimensional bounds of the price sheet subgroup.

displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

isCustom read-only

Denotes if the Subgroup was created by the Studio.

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 price sheet subgroup.

type

The type of resource 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/PriceSheetSubgroup"
        }
      }
    },
    "description": "The successfully-created price sheet subgroup object.",
    "headers": {
      "Location": {
        "description": "The URL to the newly-created price sheet subgroup object.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes a single price sheet subgroup object from the price sheet.

Removes the specified subgroup from the price sheet.

delete
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}/subgroup/{priceSheetSubgroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group identifier.

priceSheetId required

The price sheet identifier.

priceSheetSubgroupId required

The pricesheet subgroup 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.

409 Conflict

Subgroup containing items cannot be deleted.

OpenAPI Schema

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

{
  "204": {
    "description": "Successful deletion response."
  },
  "409": {
    "description": "Subgroup containing items cannot be deleted."
  }
}

Returns a single price sheet subgroup object by ID.

Returns a specific price sheet subgroup using the ID of the subgroup.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}/subgroup/{priceSheetSubgroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group identifier.

priceSheetId required

The price sheet identifier.

priceSheetSubgroupId required

The pricesheet subgroup 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 price sheet subgroup object.

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
bounds nullable read-only

The dimensional bounds of the price sheet subgroup.

displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

isCustom read-only

Denotes if the Subgroup was created by the Studio.

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 price sheet subgroup.

type

The type of resource 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/PriceSheetSubgroup"
        }
      }
    },
    "description": "A price sheet subgroup object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially updates a specific price sheet subgroup object.

Updates the specified price sheet subgroup using the provided data with the specified properties being overwritten.

patch
/studio/brand/{brandId}/price-sheet/{priceSheetId}/group/{priceSheetGroupId}/subgroup/{priceSheetSubgroupId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetGroupId required

The pricesheet group identifier.

priceSheetId required

The price sheet identifier.

priceSheetSubgroupId required

The pricesheet subgroup 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

application/vnd.shootproof+json
Property Description
displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

name

The name of the price sheet subgroup.

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": {
      "example": {
        "displayOrder": 4,
        "name": "A subgroup!",
        "type": "price-sheet-subgroup"
      },
      "schema": {
        "$ref": "#/components/schemas/PriceSheetSubgroup"
      }
    }
  }
}

200 OK

The successfully-updated price sheet subgroup.

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
bounds nullable read-only

The dimensional bounds of the price sheet subgroup.

displayOrder

The order in which the subgroup should be displayed in a list of subgroups for a price sheet or price sheet group.

id

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

isCustom read-only

Denotes if the Subgroup was created by the Studio.

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 price sheet subgroup.

type

The type of resource 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/PriceSheetSubgroup"
        }
      }
    },
    "description": "The successfully-updated price sheet subgroup."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Deletes a batch of price sheet items.

Deletes each of the given price sheet items in the collection.

delete
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item

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.

Request Body

The list of price sheet items to delete.

application/vnd.shootproof+json
Property Description
items

A collection of resources returned in the current result set.

Property Description
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

type

The type of object represented.

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/PriceSheetItemCollection"
      }
    }
  },
  "description": "The list of price sheet items 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 Items for the Price Sheet.

Returns a list of all Items for the Price Sheet.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

Query Parameters

Property Description
filterPriceSheetGroupId

Group identifier by which to filter results.

filterPriceSheetSubgroupId

Subgroup identifier by which to filter results.

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

Price Sheet Item 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
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

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 resource represented.

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/PriceSheetItemCollection"
        }
      }
    },
    "description": "Price Sheet Item list response."
  }
}

Updates a batch of price sheet items.

Updates the provided properties on each of the given price sheet items 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}/price-sheet/{priceSheetId}/item

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.

Request Body

The list of price sheet items to update.

application/vnd.shootproof+json
Property Description
items

A collection of resources returned in the current result set.

Property Description
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

type

The type of object represented.

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/PriceSheetItemCollection"
      }
    }
  },
  "description": "The list of price sheet items to update.",
  "required": true
}

200 OK

Price Sheet Item 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
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

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 resource 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/PriceSheetItemCollection"
        }
      }
    },
    "description": "Price Sheet Item list response."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Create a Price Sheet Item

Creates a new Price Sheet Item object or a collection of new Price Sheet Item objects for the current studio.

post
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item

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.

Request Body

A single price sheet item or a collection of price sheet items to create.

application/vnd.shootproof+json

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": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/PriceSheetItem"
          },
          {
            "$ref": "#/components/schemas/PriceSheetItemDigital"
          },
          {
            "$ref": "#/components/schemas/PriceSheetItemCollection"
          }
        ]
      }
    }
  },
  "description": "A single price sheet item or a collection of price sheet items to create.",
  "required": true
}

201 Created

The successfully-created Price Sheet Item object or list response.

Headers
Header Description
Location

If a single price sheet item is returned, the Location header will be present and contain the URL to the new price sheet item.

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

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": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/PriceSheetItemCollection"
            },
            {
              "$ref": "#/components/schemas/PriceSheetItem"
            },
            {
              "$ref": "#/components/schemas/PriceSheetItemDigital"
            },
            {
              "$ref": "#/components/schemas/PriceSheetItemCollection"
            }
          ]
        }
      }
    },
    "description": "The successfully-created Price Sheet Item object or list response.",
    "headers": {
      "Location": {
        "description": "If a single price sheet item is returned, the `Location` header will\nbe present and contain the URL to the new price sheet item.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes a Price Sheet Item.

Removes a specific Item from the Price Sheet.

delete
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item 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 Price Sheet Item object by ID.

Returns a specific Price Sheet Item using the ID of the item.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item 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 Price Sheet Item object.

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
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

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/PriceSheetItem"
        }
      }
    },
    "description": "A Price Sheet Item object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially updates a Price Sheet Item.

Updates a Price Sheet Item with only the provided fields being updated.

patch
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item 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 price sheet item or list of items to create.

application/vnd.shootproof+json

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": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/PriceSheetItemCollection"
          },
          {
            "$ref": "#/components/schemas/PriceSheetItem"
          },
          {
            "$ref": "#/components/schemas/PriceSheetItemDigital"
          }
        ]
      }
    }
  },
  "description": "The price sheet item or list of items to create.",
  "required": true
}

200 OK

The successfully updated Price Sheet Item.

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
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

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/PriceSheetItem"
        }
      }
    },
    "description": "The successfully updated Price Sheet Item."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Fully updates a specific Price Sheet Item.

Updates the specified Price Sheet Item using the provided data with the entire item being overwritten.

put
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item 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 price sheet item or list of items to create.

application/vnd.shootproof+json

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": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/PriceSheetItemCollection"
          },
          {
            "$ref": "#/components/schemas/PriceSheetItem"
          },
          {
            "$ref": "#/components/schemas/PriceSheetItemDigital"
          }
        ]
      }
    }
  },
  "description": "The price sheet item or list of items to create.",
  "required": true
}

200 OK

The successfully updated Price Sheet Item.

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
bleedWrap

Decimal value representing the bounds of the item that are wrapped around the item and not visible from the front.

bounds

The dimensional bounds of the price sheet item.

chargeShipping

Denotes if the price sheet item should be included when calculating shipping charges.

created

The creation date of this price sheet item.

description

A description to display to the user in order to give them more information about the item.

displayOrder

The order in which the item should be displayed in a list of items.

hasDownload

Denotes that the item includes a free digital download of the image used for the item.

hideBleedWrap

Denotes that bleed wrap should not be displayed when showing the item.

id

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

imageCount

Count of the number of images associated with the price sheet item.

images

An array of images that shows the item.

isTaxExempt

Denotes that the item price should not be included when calculating sales taxes.

labCatalogProductId nullable

If the item is lab fulfilled, the ID of the lab catalog product which was used to create the item.

labCost

Decimal value of the lab cost the studio pays to order the item.

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 price sheet item.

price

Decimal value of the price to be charged for the item.

priceSheetGroupId

The identifier of the Price Sheet Group which contains the Item. Required when creating a new Price Sheet Item.

priceSheetSubgroupId nullable

The identifier of the Price Sheet Subgroup which contains the Item. Cannot be changed after the item has been created.

shippingCharge nullable

Decimal value of any additional charge for shipping the item, in addition to any shipping for the order.

size

The dimenstions of the item.

These values are not used when update creating or updating a Lab-fulfilled Price Sheet Item.

Property Description
depth nullable

The depth of the item.

height nullable

The height of the item.

width nullable

The width of the item.

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/PriceSheetItem"
        }
      }
    },
    "description": "The successfully updated Price Sheet Item."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Updates a batch of price sheet item images.

Updates the provided properties on each of the given price sheet item images 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}/price-sheet/{priceSheetId}/item/{priceSheetItemId}/image

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item 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 collection of price sheet items images 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
displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

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 object represented.

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/PriceSheetElementImageCollectionInPatch"
      }
    }
  },
  "description": "The collection of price sheet items images to update.",
  "required": true
}

200 OK

Price Sheet Item Image 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 read-only

The creation date of the image.

displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

displayUrl nullable read-only

Display URLs for this image.

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.

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 read-only

The image file MIME type.

name read-only

The original filename of the image.

type

The type of object represented.

width read-only

The width in pixels of the image.

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 resource 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/PriceSheetElementImageCollection"
        }
      }
    },
    "description": "Price Sheet Item Image list response."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Creates a new price sheet item image object.

Creates a new price sheet item image object.

post
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}/image

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item 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

multipart/mixed
Property Description
displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

id

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

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": {
    "multipart/mixed": {
      "example": "--SP_BOUNDARY\nContent-Type: application/vnd.shootproof+json\n\n{\n    \"type\": \"price-sheet-element-image\",\n    \"displayOrder\": 1\n}\n\n--SP_BOUNDARY\nContent-Disposition: attachment; filename=image.jpg\nContent-Type: image/jpeg\n\n[binary data]\n\n--SP_BOUNDARY--",
      "schema": {
        "$ref": "#/components/schemas/PriceSheetElementImage"
      }
    }
  }
}

201 Created

The successfully-created price sheet item image object.

Headers
Header Description
Location

The URL to the newly-created price sheet item image object.

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
created read-only

The creation date of the image.

displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

displayUrl nullable read-only

Display URLs for this image.

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.

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 read-only

The image file MIME type.

name read-only

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.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/PriceSheetElementImage"
        }
      }
    },
    "description": "The successfully-created price sheet item image object.",
    "headers": {
      "Location": {
        "description": "The URL to the newly-created price sheet item image object.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Removes a single price sheet item image object.

Deletes the price sheet item image object from the item.

delete
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}/image/{priceSheetItemImageId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item identifier.

priceSheetItemImageId required

The price sheet item image 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 price sheet item image object by ID.

Returns a specific price sheet item image using the ID of the image.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}/image/{priceSheetItemImageId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item identifier.

priceSheetItemImageId required

The price sheet item image 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 price sheet item image object.

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
created read-only

The creation date of the image.

displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

displayUrl nullable read-only

Display URLs for this image.

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.

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 read-only

The image file MIME type.

name read-only

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/PriceSheetElementImage"
        }
      }
    },
    "description": "A price sheet item image object."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially updates a specific price sheet item image object.

Updates the specified price sheet item image using the provided data with the specified properties being overwritten.

patch
/studio/brand/{brandId}/price-sheet/{priceSheetId}/item/{priceSheetItemId}/image/{priceSheetItemImageId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

priceSheetId required

The price sheet identifier.

priceSheetItemId required

The price sheet item identifier.

priceSheetItemImageId required

The price sheet item image 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

application/vnd.shootproof+json
Property Description
displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

id

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

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": {
      "example": {
        "displayOrder": 4,
        "type": "price-sheet-element-image"
      },
      "schema": {
        "$ref": "#/components/schemas/PriceSheetElementImage"
      }
    }
  }
}

200 OK

The successfully-updated price sheet item image.

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
created read-only

The creation date of the image.

displayOrder

The order in which the image should be displayed in a list of other images for the related price sheet element.

displayUrl nullable read-only

Display URLs for this image.

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.

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 read-only

The image file MIME type.

name read-only

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/PriceSheetElementImage"
        }
      }
    },
    "description": "The successfully-updated price sheet item image."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Lists all custom shipping options for the price sheet.

Returns a list of all Shipping Options for the Price Sheet.

get
/studio/brand/{brandId}/price-sheet/{priceSheetId}/shipping-option

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.