The service description is the gateway to the ShootProof API. It provides your app with the information it needs to know what it can do within the ShootProof API. It does so by providing links. Your app uses these links to navigate the ShootProof API.
For more information, check out our service description guide.
/studio
We’ve got some helpful examples coming your way soon. Stay tuned!
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 service description.
When the Content-Type
of the response is application/vnd.shootproof+json
, the following properties will be available in the response body.
Property | Description |
---|---|
contentType |
An array of acceptable media types for this API service. |
links required read-only |
Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name. |
name |
The name of the API service. |
time |
The current server time for this API service. |
type |
The type of resource represented. |
{
"contentType": [
"application/vnd.shootproof+json"
],
"links": {
"brand": {
"href": "https://api.shootproof.com/studio/brand{/id}",
"templated": true
},
"email-template-type": {
"href": "https://api.shootproof.com/studio/email/template-type{/id}{?resourceType,resourceId}",
"templated": true
},
"language": {
"href": "https://api.shootproof.com/studio/language"
},
"me": {
"href": "https://api.shootproof.com/studio/me"
},
"playlist": {
"href": "https://api.shootproof.com/studio/playlist{/id}",
"templated": true
},
"price-sheet": {
"href": "https://api.shootproof.com/studio/price-sheet{/id}",
"templated": true
},
"self": {
"href": "https://api.shootproof.com/studio/"
},
"signature": {
"href": "https://api.shootproof.com/studio/signature{/id}",
"templated": true
},
"song": {
"href": "https://api.shootproof.com/studio/song"
},
"studio-music-plan": {
"href": "https://api.shootproof.com/studio/plan/music"
}
},
"name": "ShootProof Studio API",
"time": "2018-11-18T18:28:38+00:00",
"type": "service-description"
}
API errors come in two kinds of varieties: 400
s and 500
s.
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.
When the Content-Type
of the response is application/problem+json
, the following properties will be available in the response body.
Property | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
detail |
A longer description of of the error encountered. |
||||||||||||
info |
Additional information that may be provided to aid in error resolution.
|
||||||||||||
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. |
{
"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"
}
{
"detail": "You do not have permission to access the requested resource.",
"status": 403,
"title": "Forbidden",
"type": "https://developer.shootproof.com/errors#error-forbidden"
}
{
"detail": "The requested resource could not be found.",
"status": 404,
"title": "Not Found",
"type": "https://developer.shootproof.com/errors#error-not-found"
}
{
"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"
}
{
"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"
}
The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.
{
"200": {
"content": {
"application/vnd.shootproof+json": {
"example": {
"contentType": [
"application/vnd.shootproof+json"
],
"links": {
"brand": {
"href": "https://api.shootproof.com/studio/brand{/id}",
"templated": true
},
"email-template-type": {
"href": "https://api.shootproof.com/studio/email/template-type{/id}{?resourceType,resourceId}",
"templated": true
},
"language": {
"href": "https://api.shootproof.com/studio/language"
},
"me": {
"href": "https://api.shootproof.com/studio/me"
},
"playlist": {
"href": "https://api.shootproof.com/studio/playlist{/id}",
"templated": true
},
"price-sheet": {
"href": "https://api.shootproof.com/studio/price-sheet{/id}",
"templated": true
},
"self": {
"href": "https://api.shootproof.com/studio/"
},
"signature": {
"href": "https://api.shootproof.com/studio/signature{/id}",
"templated": true
},
"song": {
"href": "https://api.shootproof.com/studio/song"
},
"studio-music-plan": {
"href": "https://api.shootproof.com/studio/plan/music"
}
},
"name": "ShootProof Studio API",
"time": "2018-11-18T18:28:38+00:00",
"type": "service-description"
},
"schema": {
"$ref": "#/components/schemas/ServiceDescription"
}
}
},
"description": "The service description."
},
"default": {
"$ref": "#/components/responses/defaultError"
}
}