Contents

Authenticated User

The Authenticated User is the user who granted your app access to their ShootProof account. Using the Authenticated User’s credentials, your app can manage their account and more through the ShootProof API.

List the authenticated user’s notifications

get
/studio/brand/{brandId}/notification

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
filterDismissed

If the value is truthy, the response will list only dismissed notifications. If the value is falsy (default), then the response contains only non-dismissed notifications.

Header Parameters

Property Description
Authentication required

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

200 OK

A collection of notifications.

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
attributes nullable read-only deprecated

Attributes are key-value pairs of data related to the notification.

WARNING! This is a free-form bag of unstructured data. The properties and values should not be relied upon by implementations; they are subject to change.

created read-only

The date on which the entity was created.

descriptor read-only

The value of the descriptor varies among notification types. In general, the descriptor may be used as a label for the entity described in the notification. For orders and invoices, the descriptor is often the total currency amount related to the notification. For contracts and events, the descriptor is the name of the contract or event.

dismissed

If the notification is dismissed, this will be true. Otherwise, it will be false. Set dismissed to true to dismiss the notification.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

message read-only

The message may be used as the notification text. For example, if the notificationType is order-placed, the message might be “Jane Doe placed a new order.”

notificationGroup read-only

The notification group refers to the type of entity this notification relates to. For example, if the notificationType is event-photo-favorited-by-event-contact, the notificationGroup will be event since the notification is related to an event.

notificationType read-only

A string identifier to indicate the type of notification described by this entity. This identifier may be one of the following strings

ShootProof Identifier Description
contract-canceled The contract indicated by the contract link relation has been canceled.
contract-signed-by-client The contract indicated by the contract link relation was signed by the client.
event-favorites-list-finalized-by-event-contact The contact indicated by the contact link relation has asked the studio to review favorited photos for the event indicated by the event link relation.
event-photo-downloaded-by-event-contact The contact indicated by the contact link relation downloaded a photo for the event indicated by the event link relation.
event-photo-favorited-by-event-contact The contact indicated by the contact link relation favorited a photo for the event indicated by the event link relation.
event-photo-hidden-by-event-contact The contact indicated by the contact link relation marked a photo as “hidden” for the event indicated by the event link relation.
event-photo-tagged-by-event-contact The contact indicated by the contact link relation tagged a photo for the event indicated by the event link relation.
invoice-past-due The invoice indicated by the invoice link relation is past due.
invoice-payment-received The brand received a payment for the invoice indicated by the invoice link relation.
order-approval-prolonged The order indicated by the order link relation has been awaiting approval for a long period of time.
order-needs-approval The order indicated by the order link relation is awaiting approval.
order-placed The order indicated by the order link relation was just placed.
order-shipped-from-lab The order indicated by the order link relation was shipped from the lab.
studio-granted-archiving-space The studio was granted more archiving space.
studio-money-balance-increased The studio’s money balance increased.
studio-photo-plan-next-bill-date-increased The studio’s next billing date changed, often due to more free time added to their plan.
studio-profit-released The studio’s money was released to their bank account.
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.

totalActiveNotifications

The total number of active (not dismissed) notifications for the authenticated user.

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/NotificationCollection"
        }
      }
    },
    "description": "A collection of notifications."
  }
}

Get a notification

get
/studio/brand/{brandId}/notification/{notificationId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

notificationId required

A notification 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 notification.

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
attributes nullable read-only deprecated

Attributes are key-value pairs of data related to the notification.

WARNING! This is a free-form bag of unstructured data. The properties and values should not be relied upon by implementations; they are subject to change.

created read-only

The date on which the entity was created.

descriptor read-only

The value of the descriptor varies among notification types. In general, the descriptor may be used as a label for the entity described in the notification. For orders and invoices, the descriptor is often the total currency amount related to the notification. For contracts and events, the descriptor is the name of the contract or event.

dismissed

If the notification is dismissed, this will be true. Otherwise, it will be false. Set dismissed to true to dismiss the notification.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

message read-only

The message may be used as the notification text. For example, if the notificationType is order-placed, the message might be “Jane Doe placed a new order.”

notificationGroup read-only

The notification group refers to the type of entity this notification relates to. For example, if the notificationType is event-photo-favorited-by-event-contact, the notificationGroup will be event since the notification is related to an event.

notificationType read-only

A string identifier to indicate the type of notification described by this entity. This identifier may be one of the following strings

ShootProof Identifier Description
contract-canceled The contract indicated by the contract link relation has been canceled.
contract-signed-by-client The contract indicated by the contract link relation was signed by the client.
event-favorites-list-finalized-by-event-contact The contact indicated by the contact link relation has asked the studio to review favorited photos for the event indicated by the event link relation.
event-photo-downloaded-by-event-contact The contact indicated by the contact link relation downloaded a photo for the event indicated by the event link relation.
event-photo-favorited-by-event-contact The contact indicated by the contact link relation favorited a photo for the event indicated by the event link relation.
event-photo-hidden-by-event-contact The contact indicated by the contact link relation marked a photo as “hidden” for the event indicated by the event link relation.
event-photo-tagged-by-event-contact The contact indicated by the contact link relation tagged a photo for the event indicated by the event link relation.
invoice-past-due The invoice indicated by the invoice link relation is past due.
invoice-payment-received The brand received a payment for the invoice indicated by the invoice link relation.
order-approval-prolonged The order indicated by the order link relation has been awaiting approval for a long period of time.
order-needs-approval The order indicated by the order link relation is awaiting approval.
order-placed The order indicated by the order link relation was just placed.
order-shipped-from-lab The order indicated by the order link relation was shipped from the lab.
studio-granted-archiving-space The studio was granted more archiving space.
studio-money-balance-increased The studio’s money balance increased.
studio-photo-plan-next-bill-date-increased The studio’s next billing date changed, often due to more free time added to their plan.
studio-profit-released The studio’s money was released to their bank account.
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/Notification"
        }
      }
    },
    "description": "A notification."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update a notification

Only provide those properties that you wish to update. All other properties will remain unchanged.

patch
/studio/brand/{brandId}/notification/{notificationId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

notificationId required

A notification 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 notification object to update. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
dismissed

If the notification is dismissed, this will be true. Otherwise, it will be false. Set dismissed to true to dismiss the notification.

id

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

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/Notification"
      }
    }
  },
  "description": "The notification object to update. Only provide those properties that need\nupdating.",
  "required": true
}

200 OK

The updated notification.

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
attributes nullable read-only deprecated

Attributes are key-value pairs of data related to the notification.

WARNING! This is a free-form bag of unstructured data. The properties and values should not be relied upon by implementations; they are subject to change.

created read-only

The date on which the entity was created.

descriptor read-only

The value of the descriptor varies among notification types. In general, the descriptor may be used as a label for the entity described in the notification. For orders and invoices, the descriptor is often the total currency amount related to the notification. For contracts and events, the descriptor is the name of the contract or event.

dismissed

If the notification is dismissed, this will be true. Otherwise, it will be false. Set dismissed to true to dismiss the notification.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

message read-only

The message may be used as the notification text. For example, if the notificationType is order-placed, the message might be “Jane Doe placed a new order.”

notificationGroup read-only

The notification group refers to the type of entity this notification relates to. For example, if the notificationType is event-photo-favorited-by-event-contact, the notificationGroup will be event since the notification is related to an event.

notificationType read-only

A string identifier to indicate the type of notification described by this entity. This identifier may be one of the following strings

ShootProof Identifier Description
contract-canceled The contract indicated by the contract link relation has been canceled.
contract-signed-by-client The contract indicated by the contract link relation was signed by the client.
event-favorites-list-finalized-by-event-contact The contact indicated by the contact link relation has asked the studio to review favorited photos for the event indicated by the event link relation.
event-photo-downloaded-by-event-contact The contact indicated by the contact link relation downloaded a photo for the event indicated by the event link relation.
event-photo-favorited-by-event-contact The contact indicated by the contact link relation favorited a photo for the event indicated by the event link relation.
event-photo-hidden-by-event-contact The contact indicated by the contact link relation marked a photo as “hidden” for the event indicated by the event link relation.
event-photo-tagged-by-event-contact The contact indicated by the contact link relation tagged a photo for the event indicated by the event link relation.
invoice-past-due The invoice indicated by the invoice link relation is past due.
invoice-payment-received The brand received a payment for the invoice indicated by the invoice link relation.
order-approval-prolonged The order indicated by the order link relation has been awaiting approval for a long period of time.
order-needs-approval The order indicated by the order link relation is awaiting approval.
order-placed The order indicated by the order link relation was just placed.
order-shipped-from-lab The order indicated by the order link relation was shipped from the lab.
studio-granted-archiving-space The studio was granted more archiving space.
studio-money-balance-increased The studio’s money balance increased.
studio-photo-plan-next-bill-date-increased The studio’s next billing date changed, often due to more free time added to their plan.
studio-profit-released The studio’s money was released to their bank account.
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/Notification"
        }
      }
    },
    "description": "The updated notification."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Update a notification

put
/studio/brand/{brandId}/notification/{notificationId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

notificationId required

A notification 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 notification.

application/vnd.shootproof+json
Property Description
dismissed

If the notification is dismissed, this will be true. Otherwise, it will be false. Set dismissed to true to dismiss the notification.

id

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

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/Notification"
      }
    }
  },
  "description": "A notification.",
  "required": true
}

200 OK

The updated notification.

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
attributes nullable read-only deprecated

Attributes are key-value pairs of data related to the notification.

WARNING! This is a free-form bag of unstructured data. The properties and values should not be relied upon by implementations; they are subject to change.

created read-only

The date on which the entity was created.

descriptor read-only

The value of the descriptor varies among notification types. In general, the descriptor may be used as a label for the entity described in the notification. For orders and invoices, the descriptor is often the total currency amount related to the notification. For contracts and events, the descriptor is the name of the contract or event.

dismissed

If the notification is dismissed, this will be true. Otherwise, it will be false. Set dismissed to true to dismiss the notification.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

message read-only

The message may be used as the notification text. For example, if the notificationType is order-placed, the message might be “Jane Doe placed a new order.”

notificationGroup read-only

The notification group refers to the type of entity this notification relates to. For example, if the notificationType is event-photo-favorited-by-event-contact, the notificationGroup will be event since the notification is related to an event.

notificationType read-only

A string identifier to indicate the type of notification described by this entity. This identifier may be one of the following strings

ShootProof Identifier Description
contract-canceled The contract indicated by the contract link relation has been canceled.
contract-signed-by-client The contract indicated by the contract link relation was signed by the client.
event-favorites-list-finalized-by-event-contact The contact indicated by the contact link relation has asked the studio to review favorited photos for the event indicated by the event link relation.
event-photo-downloaded-by-event-contact The contact indicated by the contact link relation downloaded a photo for the event indicated by the event link relation.
event-photo-favorited-by-event-contact The contact indicated by the contact link relation favorited a photo for the event indicated by the event link relation.
event-photo-hidden-by-event-contact The contact indicated by the contact link relation marked a photo as “hidden” for the event indicated by the event link relation.
event-photo-tagged-by-event-contact The contact indicated by the contact link relation tagged a photo for the event indicated by the event link relation.
invoice-past-due The invoice indicated by the invoice link relation is past due.
invoice-payment-received The brand received a payment for the invoice indicated by the invoice link relation.
order-approval-prolonged The order indicated by the order link relation has been awaiting approval for a long period of time.
order-needs-approval The order indicated by the order link relation is awaiting approval.
order-placed The order indicated by the order link relation was just placed.
order-shipped-from-lab The order indicated by the order link relation was shipped from the lab.
studio-granted-archiving-space The studio was granted more archiving space.
studio-money-balance-increased The studio’s money balance increased.
studio-photo-plan-next-bill-date-increased The studio’s next billing date changed, often due to more free time added to their plan.
studio-profit-released The studio’s money was released to their bank account.
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.

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/Notification"
        }
      }
    },
    "description": "The updated notification."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Get the authenticated user

get
/studio/me

Example Request

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 authenticated user.

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 date on which this user was created.

email

The email address for this user.

firstName

The first name for this user.

hasCreditCardOnFile read-only

Indicates if the user has a credit card on file.

hasOrHadLegacySpPayments read-only

Indicates if the user has or had legacy ShootProof Payments.

id

The identifier for this user.

includesTavePlanCode

The associated (optional) Tave plan code for this user's plan.

isShootProofPayBlocked read-only

Indicates if the user has ShootProof Pay that is currently blocked.

isStudioOwner read-only

Whether the authenticated user is the owner of the studio.

lastLogin nullable read-only

The date on which this user last logged in to the Studio Panel.

lastName

The last name for this user.

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.

mfaStatus nullable read-only

The MFA status for this user.

mfaVerificationRequired read-only

Whether the authenticated user has verified their MFA.

name

The full name for this user.

permissions

An array of permission identifiers indicating the permission levels this user has within the Studio Panel.

Permission Description
account.payment-read The user may view the studio account's plan & billing information.
account.payment-withdrawal The user may request payment withdrawals on behalf of the studio.
account.read The user may view studio account settings (e.g. contact info, users, etc.).
account.update The user may update studio account settings (e.g. contact info, users, etc.).
brand-theme.create The user may create themes.
brand-theme.read The user may view themes.
brand-theme.update The user may edit themes.
brand.homepage-update The user may edit the client galleries homepage for a brand.
contact.create The user may create contacts.
contact.read The user may view contacts.
contact.update The user may edit contacts.
contract.create The user may create contracts.
contract.read The user may view contracts.
contract.update The user may edit contracts.
email-template.create The user may create email templates and automation groups.
email-template.read The user may view email templates and automation groups.
email-template.update The user may edit email templates and automation groups.
event-defaults.create The user may create default settings for events.
event-defaults.read The user may view default settings for events.
event-defaults.update The user may edit default settings for events.
event-photo.create The user may create event photos.
event-photo.update The user may edit event photos.
event.create The user may create events.
event.created-only The user may only view/edit/delete events they created.
event.delete The user may delete events.
event.read The user may view events.
event.update The user may edit events.
invoice.create The user may create invoices.
invoice.read The user may view invoices.
invoice.update The user may edit invoices.
mobile-app.create The user may create mobile apps.
mobile-app.read The user may view mobile apps.
mobile-app.update The user may edit mobile apps.
order.read The user may view orders.
order.update The user may edit orders.
playlist.read The user may view music playlists.
playlist.update The user may edit music playlists.
price-sheet.create The user may create price sheets.
price-sheet.read The user may view price sheets.
price-sheet.update The user may edit price sheets.
report.event-visitors-read The user may view the "Event Visitors" report.
report.invoices-read The user may view the "Invoices" report.
report.items-read The user may view the "Top-Selling Items" report.
report.orders-read The user may view the "Orders" report.
report.sales-read The user may view the "Sales" report.
tool.read The user may view the available downloadable tools (i.e. Desktop Uploader).
watermark.create The user may create watermarks.
watermark.read The user may view watermarks.
watermark.update The user may edit watermarks.
settings
Property Description
key
value nullable
signature

A signature.

studio read-only

The studio to which the authenticated user belongs.

Property Description
cardOnFile nullable

Information about the studio's credit card on file

country

The country code for this studio.

created

The date on which this studio was created.

emailRecipientsAllowed read-only

Studio users are allowed to send email through their ShootProof account for a variety of actions. Some of these allow the studio user to specify the email addresses of recipients. In these cases, this property indicates the maximum number of recipients the studio is allowed to add to a single email message. It is for information purposes only; ShootProof enforces this at the API, resulting in an appropriate error message if more than the allowed number of recipients are provided.

emailVerification

Information about email verification, if needed.

galleryUrl

The base URL for this studio's default brand.

hasExifSearch

Whether the studio has EXIF photo keyword searching enabled.

hasPaymentGateway

Whether the studio has a payment gateway set up.

isEligibleToSpPay

Whether the studio is eligible to use ShootProof Pay.

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.

musicPlan nullable read-only

A music plan assigned to a studio.

photoPlan read-only

A photo plan assigned to a studio.

photosInQueueCount

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

promoCode nullable

The promo code that has been applied to this studio.

referral read-only

The referral property provides information regarding the number of other studios the current studio has referred, the credit the studio can earn, how much they've earned so far, and a URL the studio may use when referring others to ShootProof, so that they can get the referral credit when the others sign up for an account.

type

The type of object represented.

whatCanWeHelpYouWith nullable

What are you hoping we can help you with?

trialDaysRemaining nullable

The numeric identifier of the trial days remaining in this user's plan.

type

The type of object represented.

userStatus read-only

A human-readable string describing this user's status.

userStatusId

The numeric identifier for this user's status.

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/AuthenticatedUser"
        }
      }
    },
    "description": "The authenticated user."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update user-settable features of the authenticated user

patch
/studio/me

Example Request

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

Updating user-settable studio attributes

application/vnd.shootproof+json
Property Description
firstName

User's given name

lastName

User's family name

settings

User's settings

Property Description
key
value nullable

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": {
        "properties": {
          "firstName": {
            "description": "User's given name",
            "example": "Yoshi",
            "type": "string"
          },
          "lastName": {
            "description": "User's family name",
            "example": "Smith",
            "type": "string"
          },
          "settings": {
            "description": "User's settings",
            "items": {
              "properties": {
                "key": {
                  "enum": [
                    "gallery-index-view-type",
                    "marketing-opt-in",
                    "mobile-apps-index-view-type",
                    "nav-collapsed",
                    "nav-opt-in",
                    "dashboard-settings"
                  ],
                  "type": "string"
                },
                "value": {
                  "nullable": true,
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        }
      }
    }
  },
  "description": "Updating user-settable studio attributes",
  "required": true
}

200 OK

The authenticated user.

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 date on which this user was created.

email

The email address for this user.

firstName

The first name for this user.

hasCreditCardOnFile read-only

Indicates if the user has a credit card on file.

hasOrHadLegacySpPayments read-only

Indicates if the user has or had legacy ShootProof Payments.

id

The identifier for this user.

includesTavePlanCode

The associated (optional) Tave plan code for this user's plan.

isShootProofPayBlocked read-only

Indicates if the user has ShootProof Pay that is currently blocked.

isStudioOwner read-only

Whether the authenticated user is the owner of the studio.

lastLogin nullable read-only

The date on which this user last logged in to the Studio Panel.

lastName

The last name for this user.

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.

mfaStatus nullable read-only

The MFA status for this user.

mfaVerificationRequired read-only

Whether the authenticated user has verified their MFA.

name

The full name for this user.

permissions

An array of permission identifiers indicating the permission levels this user has within the Studio Panel.

Permission Description
account.payment-read The user may view the studio account's plan & billing information.
account.payment-withdrawal The user may request payment withdrawals on behalf of the studio.
account.read The user may view studio account settings (e.g. contact info, users, etc.).
account.update The user may update studio account settings (e.g. contact info, users, etc.).
brand-theme.create The user may create themes.
brand-theme.read The user may view themes.
brand-theme.update The user may edit themes.
brand.homepage-update The user may edit the client galleries homepage for a brand.
contact.create The user may create contacts.
contact.read The user may view contacts.
contact.update The user may edit contacts.
contract.create The user may create contracts.
contract.read The user may view contracts.
contract.update The user may edit contracts.
email-template.create The user may create email templates and automation groups.
email-template.read The user may view email templates and automation groups.
email-template.update The user may edit email templates and automation groups.
event-defaults.create The user may create default settings for events.
event-defaults.read The user may view default settings for events.
event-defaults.update The user may edit default settings for events.
event-photo.create The user may create event photos.
event-photo.update The user may edit event photos.
event.create The user may create events.
event.created-only The user may only view/edit/delete events they created.
event.delete The user may delete events.
event.read The user may view events.
event.update The user may edit events.
invoice.create The user may create invoices.
invoice.read The user may view invoices.
invoice.update The user may edit invoices.
mobile-app.create The user may create mobile apps.
mobile-app.read The user may view mobile apps.
mobile-app.update The user may edit mobile apps.
order.read The user may view orders.
order.update The user may edit orders.
playlist.read The user may view music playlists.
playlist.update The user may edit music playlists.
price-sheet.create The user may create price sheets.
price-sheet.read The user may view price sheets.
price-sheet.update The user may edit price sheets.
report.event-visitors-read The user may view the "Event Visitors" report.
report.invoices-read The user may view the "Invoices" report.
report.items-read The user may view the "Top-Selling Items" report.
report.orders-read The user may view the "Orders" report.
report.sales-read The user may view the "Sales" report.
tool.read The user may view the available downloadable tools (i.e. Desktop Uploader).
watermark.create The user may create watermarks.
watermark.read The user may view watermarks.
watermark.update The user may edit watermarks.
settings
Property Description
key
value nullable
signature

A signature.

studio read-only

The studio to which the authenticated user belongs.

Property Description
cardOnFile nullable

Information about the studio's credit card on file

country

The country code for this studio.

created

The date on which this studio was created.

emailRecipientsAllowed read-only

Studio users are allowed to send email through their ShootProof account for a variety of actions. Some of these allow the studio user to specify the email addresses of recipients. In these cases, this property indicates the maximum number of recipients the studio is allowed to add to a single email message. It is for information purposes only; ShootProof enforces this at the API, resulting in an appropriate error message if more than the allowed number of recipients are provided.

emailVerification

Information about email verification, if needed.

galleryUrl

The base URL for this studio's default brand.

hasExifSearch

Whether the studio has EXIF photo keyword searching enabled.

hasPaymentGateway

Whether the studio has a payment gateway set up.

isEligibleToSpPay

Whether the studio is eligible to use ShootProof Pay.

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.

musicPlan nullable read-only

A music plan assigned to a studio.

photoPlan read-only

A photo plan assigned to a studio.

photosInQueueCount

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

promoCode nullable

The promo code that has been applied to this studio.

referral read-only

The referral property provides information regarding the number of other studios the current studio has referred, the credit the studio can earn, how much they've earned so far, and a URL the studio may use when referring others to ShootProof, so that they can get the referral credit when the others sign up for an account.

type

The type of object represented.

whatCanWeHelpYouWith nullable

What are you hoping we can help you with?

trialDaysRemaining nullable

The numeric identifier of the trial days remaining in this user's plan.

type

The type of object represented.

userStatus read-only

A human-readable string describing this user's status.

userStatusId

The numeric identifier for this user's status.

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/AuthenticatedUser"
        }
      }
    },
    "description": "The authenticated user."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Remove the authenticated user’s signature

If you need to remove a user’s signature, you may send a DELETE request to this resource to detach their signature.

Please note, this does not completely delete the signature if, for example, it has already been used to sign a contract, etc. Everything signed with the signature before it was removed will remained signed with that signature.

delete
/studio/me/signature

Example Request

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 authenticated user’s signature was successfully detached from the user.

Headers
Header Description
Content-Location

The URL to the resource represented in the body of the response.

Response Body

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

Properties
Property Description
created read-only

The date on which this user was created.

email

The email address for this user.

firstName

The first name for this user.

hasCreditCardOnFile read-only

Indicates if the user has a credit card on file.

hasOrHadLegacySpPayments read-only

Indicates if the user has or had legacy ShootProof Payments.

id

The identifier for this user.

includesTavePlanCode

The associated (optional) Tave plan code for this user's plan.

isShootProofPayBlocked read-only

Indicates if the user has ShootProof Pay that is currently blocked.

isStudioOwner read-only

Whether the authenticated user is the owner of the studio.

lastLogin nullable read-only

The date on which this user last logged in to the Studio Panel.

lastName

The last name for this user.

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.

mfaStatus nullable read-only

The MFA status for this user.

mfaVerificationRequired read-only

Whether the authenticated user has verified their MFA.

name

The full name for this user.

permissions

An array of permission identifiers indicating the permission levels this user has within the Studio Panel.

Permission Description
account.payment-read The user may view the studio account's plan & billing information.
account.payment-withdrawal The user may request payment withdrawals on behalf of the studio.
account.read The user may view studio account settings (e.g. contact info, users, etc.).
account.update The user may update studio account settings (e.g. contact info, users, etc.).
brand-theme.create The user may create themes.
brand-theme.read The user may view themes.
brand-theme.update The user may edit themes.
brand.homepage-update The user may edit the client galleries homepage for a brand.
contact.create The user may create contacts.
contact.read The user may view contacts.
contact.update The user may edit contacts.
contract.create The user may create contracts.
contract.read The user may view contracts.
contract.update The user may edit contracts.
email-template.create The user may create email templates and automation groups.
email-template.read The user may view email templates and automation groups.
email-template.update The user may edit email templates and automation groups.
event-defaults.create The user may create default settings for events.
event-defaults.read The user may view default settings for events.
event-defaults.update The user may edit default settings for events.
event-photo.create The user may create event photos.
event-photo.update The user may edit event photos.
event.create The user may create events.
event.created-only The user may only view/edit/delete events they created.
event.delete The user may delete events.
event.read The user may view events.
event.update The user may edit events.
invoice.create The user may create invoices.
invoice.read The user may view invoices.
invoice.update The user may edit invoices.
mobile-app.create The user may create mobile apps.
mobile-app.read The user may view mobile apps.
mobile-app.update The user may edit mobile apps.
order.read The user may view orders.
order.update The user may edit orders.
playlist.read The user may view music playlists.
playlist.update The user may edit music playlists.
price-sheet.create The user may create price sheets.
price-sheet.read The user may view price sheets.
price-sheet.update The user may edit price sheets.
report.event-visitors-read The user may view the "Event Visitors" report.
report.invoices-read The user may view the "Invoices" report.
report.items-read The user may view the "Top-Selling Items" report.
report.orders-read The user may view the "Orders" report.
report.sales-read The user may view the "Sales" report.
tool.read The user may view the available downloadable tools (i.e. Desktop Uploader).
watermark.create The user may create watermarks.
watermark.read The user may view watermarks.
watermark.update The user may edit watermarks.
settings
Property Description
key
value nullable
signature

A signature.

studio read-only

The studio to which the authenticated user belongs.

Property Description
cardOnFile nullable

Information about the studio's credit card on file

country

The country code for this studio.

created

The date on which this studio was created.

emailRecipientsAllowed read-only

Studio users are allowed to send email through their ShootProof account for a variety of actions. Some of these allow the studio user to specify the email addresses of recipients. In these cases, this property indicates the maximum number of recipients the studio is allowed to add to a single email message. It is for information purposes only; ShootProof enforces this at the API, resulting in an appropriate error message if more than the allowed number of recipients are provided.

emailVerification

Information about email verification, if needed.

galleryUrl

The base URL for this studio's default brand.

hasExifSearch

Whether the studio has EXIF photo keyword searching enabled.

hasPaymentGateway

Whether the studio has a payment gateway set up.

isEligibleToSpPay

Whether the studio is eligible to use ShootProof Pay.

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.

musicPlan nullable read-only

A music plan assigned to a studio.

photoPlan read-only

A photo plan assigned to a studio.

photosInQueueCount

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

promoCode nullable

The promo code that has been applied to this studio.

referral read-only

The referral property provides information regarding the number of other studios the current studio has referred, the credit the studio can earn, how much they've earned so far, and a URL the studio may use when referring others to ShootProof, so that they can get the referral credit when the others sign up for an account.

type

The type of object represented.

whatCanWeHelpYouWith nullable

What are you hoping we can help you with?

trialDaysRemaining nullable

The numeric identifier of the trial days remaining in this user's plan.

type

The type of object represented.

userStatus read-only

A human-readable string describing this user's status.

userStatusId

The numeric identifier for this user's status.

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/AuthenticatedUser"
        }
      }
    },
    "description": "The authenticated user’s signature was successfully detached from the\nuser.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the resource represented in the body of the response.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  }
}

Add a signature for the authenticated user

After creating a signature, you can attach that signature to the authenticated user using this resource with a PUT request.

put
/studio/me/signature

Example Request

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

An object containing the signature ID for the signature you wish to attach to the authenticated user.

application/vnd.shootproof+json
Property Description
signatureId

The signature identifier.

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": {
        "properties": {
          "signatureId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              },
              {
                "description": "The signature identifier."
              }
            ]
          }
        },
        "type": "object"
      }
    }
  },
  "description": "An object containing the signature ID for the signature you wish to\nattach to the authenticated user.",
  "required": true
}

200 OK

The signature was successfully attached to the authenticated user.

Headers
Header Description
Content-Location

The URL to the resource represented in the body of the response.

Response Body

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

Properties
Property Description
created read-only

The date on which this user was created.

email

The email address for this user.

firstName

The first name for this user.

hasCreditCardOnFile read-only

Indicates if the user has a credit card on file.

hasOrHadLegacySpPayments read-only

Indicates if the user has or had legacy ShootProof Payments.

id

The identifier for this user.

includesTavePlanCode

The associated (optional) Tave plan code for this user's plan.

isShootProofPayBlocked read-only

Indicates if the user has ShootProof Pay that is currently blocked.

isStudioOwner read-only

Whether the authenticated user is the owner of the studio.

lastLogin nullable read-only

The date on which this user last logged in to the Studio Panel.

lastName

The last name for this user.

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.

mfaStatus nullable read-only

The MFA status for this user.

mfaVerificationRequired read-only

Whether the authenticated user has verified their MFA.

name

The full name for this user.

permissions

An array of permission identifiers indicating the permission levels this user has within the Studio Panel.

Permission Description
account.payment-read The user may view the studio account's plan & billing information.
account.payment-withdrawal The user may request payment withdrawals on behalf of the studio.
account.read The user may view studio account settings (e.g. contact info, users, etc.).
account.update The user may update studio account settings (e.g. contact info, users, etc.).
brand-theme.create The user may create themes.
brand-theme.read The user may view themes.
brand-theme.update The user may edit themes.
brand.homepage-update The user may edit the client galleries homepage for a brand.
contact.create The user may create contacts.
contact.read The user may view contacts.
contact.update The user may edit contacts.
contract.create The user may create contracts.
contract.read The user may view contracts.
contract.update The user may edit contracts.
email-template.create The user may create email templates and automation groups.
email-template.read The user may view email templates and automation groups.
email-template.update The user may edit email templates and automation groups.
event-defaults.create The user may create default settings for events.
event-defaults.read The user may view default settings for events.
event-defaults.update The user may edit default settings for events.
event-photo.create The user may create event photos.
event-photo.update The user may edit event photos.
event.create The user may create events.
event.created-only The user may only view/edit/delete events they created.
event.delete The user may delete events.
event.read The user may view events.
event.update The user may edit events.
invoice.create The user may create invoices.
invoice.read The user may view invoices.
invoice.update The user may edit invoices.
mobile-app.create The user may create mobile apps.
mobile-app.read The user may view mobile apps.
mobile-app.update The user may edit mobile apps.
order.read The user may view orders.
order.update The user may edit orders.
playlist.read The user may view music playlists.
playlist.update The user may edit music playlists.
price-sheet.create The user may create price sheets.
price-sheet.read The user may view price sheets.
price-sheet.update The user may edit price sheets.
report.event-visitors-read The user may view the "Event Visitors" report.
report.invoices-read The user may view the "Invoices" report.
report.items-read The user may view the "Top-Selling Items" report.
report.orders-read The user may view the "Orders" report.
report.sales-read The user may view the "Sales" report.
tool.read The user may view the available downloadable tools (i.e. Desktop Uploader).
watermark.create The user may create watermarks.
watermark.read The user may view watermarks.
watermark.update The user may edit watermarks.
settings
Property Description
key
value nullable
signature

A signature.

studio read-only

The studio to which the authenticated user belongs.

Property Description
cardOnFile nullable

Information about the studio's credit card on file

country

The country code for this studio.

created

The date on which this studio was created.

emailRecipientsAllowed read-only

Studio users are allowed to send email through their ShootProof account for a variety of actions. Some of these allow the studio user to specify the email addresses of recipients. In these cases, this property indicates the maximum number of recipients the studio is allowed to add to a single email message. It is for information purposes only; ShootProof enforces this at the API, resulting in an appropriate error message if more than the allowed number of recipients are provided.

emailVerification

Information about email verification, if needed.

galleryUrl

The base URL for this studio's default brand.

hasExifSearch

Whether the studio has EXIF photo keyword searching enabled.

hasPaymentGateway

Whether the studio has a payment gateway set up.

isEligibleToSpPay

Whether the studio is eligible to use ShootProof Pay.

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.

musicPlan nullable read-only

A music plan assigned to a studio.

photoPlan read-only

A photo plan assigned to a studio.

photosInQueueCount

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

promoCode nullable

The promo code that has been applied to this studio.

referral read-only

The referral property provides information regarding the number of other studios the current studio has referred, the credit the studio can earn, how much they've earned so far, and a URL the studio may use when referring others to ShootProof, so that they can get the referral credit when the others sign up for an account.

type

The type of object represented.

whatCanWeHelpYouWith nullable

What are you hoping we can help you with?

trialDaysRemaining nullable

The numeric identifier of the trial days remaining in this user's plan.

type

The type of object represented.

userStatus read-only

A human-readable string describing this user's status.

userStatusId

The numeric identifier for this user's status.

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/AuthenticatedUser"
        }
      }
    },
    "description": "The signature was successfully attached to the authenticated user.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the resource represented in the body of the response.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Create a signature

post
/studio/signature

Example Request

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 signature to create.

application/vnd.shootproof+json
Property Description
signaturePaths

The SVG paths that define this signature.

svgViewbox

The SVG viewbox that defines the dimensions of this signature.

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/Signature"
      }
    }
  },
  "description": "The signature to create.",
  "required": true
}

201 Created

The newly-created signature.

Headers
Header Description
Location

The URL to the newly-created signature.

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 date on which the entity was created.

id read-only

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.

publicId read-only

The public identifier for this signature (may be used in the portal website).

signaturePaths

The SVG paths that define this signature.

svgViewbox

The SVG viewbox that defines the dimensions of this signature.

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

Get a signature

get
/studio/signature/{signatureId}

Example Request

Header Parameters

Property Description
Accept

Optionally, you may provide an Accept header with a value of image/svg+xml to be redirected to an SVG representation of the signature.

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

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 date on which the entity was created.

id read-only

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.

publicId read-only

The public identifier for this signature (may be used in the portal website).

signaturePaths

The SVG paths that define this signature.

svgViewbox

The SVG viewbox that defines the dimensions of this signature.

type

The type of resource represented.

Alternate Response Body

When the Content-Type of the response is image/svg+xml, the following properties will be available in the response body.

Properties
A signature represented as an SVG image.
"<svg viewBox=\"0 0 430 150\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path stroke=\"black\" stroke-width=\"2\" fill=\"none\" shape-rendering=\"auto\" stroke-linejoin=\"round\" d=\"M125.5,66 L125.5,66 L126.5,66 L127.5,66 L127.5,66 L128.5,66 L129.5,66 L129.5,66 L129.5,66 L130.5,66 L130.5,66 L130.5,66 L131.5,66 L131.5,66 L132.5,65 L132.5,65 L132.5,65 L132.5,65\"></path>\n</svg>"

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/Signature"
        }
      },
      "image/svg+xml": {
        "examples": {
          "svg": {
            "summary": "A signature represented as an SVG image.",
            "value": "<svg viewBox=\"0 0 430 150\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path stroke=\"black\" stroke-width=\"2\" fill=\"none\" shape-rendering=\"auto\" stroke-linejoin=\"round\" d=\"M125.5,66 L125.5,66 L126.5,66 L127.5,66 L127.5,66 L128.5,66 L129.5,66 L129.5,66 L129.5,66 L130.5,66 L130.5,66 L130.5,66 L131.5,66 L131.5,66 L132.5,65 L132.5,65 L132.5,65 L132.5,65\"></path>\n</svg>"
          }
        },
        "schema": {
          "title": "A signature represented as an SVG image.",
          "type": "string"
        }
      }
    },
    "description": "The signature."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}