Quoter API Reference v0.1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Welcome to Quoter's API Documentation. Please note that our API is actively being developed. As such, there is currently limited support for Quoter's resource types and while unlikely, you might expect some breaking changes (we will avoid them at all costs of course).
The API currently supports managing Items and associated resource types such as:
- Categories
- Contacts
- Item Group Item Assignments
- Item Groups
- Item Option Values
- Item Options
- Item Tiers
- Line Items
- Manufacturers
- Quote Templates
- Quotes
- Suppliers
If you are interested in API functionality not yet available, please let us know as it will help us prioritize our API roadmap.
The Quoter API follows the standard RESTful JSON API design. For each resource type, we support the following endpoints:
- List
GET /{resource}
- Create
POST /{resource}
- Delete
DELETE /{resource}/{id}
- Fetch
GET /{resource}/{id}
- Update
PATCH /{resource}/{id}
Base URLs:
Authentication
The Quoter API uses OAuth 2.0 Client Credentials Flow for authentication:
- Generate your OAuth Client ID and Secret for your Quoter account in Account > API Keys. You must be an Account Owner to have access.
- Send a request to
POST /auth/oauth/authorize
with the request body containing yourclient_id
,secret
, andgrant_type: client_credentials
to obtain anaccess_token
and arefresh_token
. See the Authorization documentation for a more detailed example. - To perform an authenticated request, send the
access_token
value as a bearer token via the request header: "Authorization: Bearer{access_token}
". - The
access_token
is valid for 1 hour. To obtain a new access and refresh token pair, send a request toPOST /auth/refresh
with the request body containing yourrefresh_token
. Therefresh_token
is valid for 24 hours. See the Authorization documentation for a more detailed example.
Errors
In case of errors (4XX
or 5XX
HTTP status codes), the API returns an error response body with a key
, title
, and detail
indicating what went wrong.
For example, an authorization error will return a status of 401
with the response:
{
"errors": [
{
"key": "ERR_AUTHORIZATION_TOKEN_INVALID",
"title": "Unauthorized",
"detail": "Authorization token is invalid"
}
]
}
HTTP Response Codes
The Quoter API uses conventional HTTP response codes to indicate whether an API request succeeded or failed.
HTTP Code | Meaning |
---|---|
200 | Success -- Your request was successfully processed; the result is included in the response body. For POST requests. |
204 | No Content -- You request was successfully processed; call a GET to retrieve the updated results. For PATCH/DELETE requests. |
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API credentials are invalid. |
403 | Forbidden -- You do not have permission to access the requested resource. |
404 | Not Found -- The specified resource could not be found. |
422 | Unprocessable Entity -- The request format is incorrect. See error content for details. |
429 | Too Many Requests -- You've reached your rate limit. Try again later. |
500 | Internal Server Error -- We had a problem with our server. Try again later or contact support. |
Pagination
List endpoints support pagination via the page
and limit
query string parameters.
For example, if you want to request the first 10 records, you might perform the request GET https://api.quoter.com/v1/items?page=1&limit=10
,
then to request the next 10 records, GET https://api.quoter.com/v1/items?page=2&limit=10
.
By default, list endpoints support a limit
value of up to 100 records. Some endpoints may support different limit
values for performance, which will be documented separately.
List endpoint response bodies will always contain a data
member, which contains an array of the requested resources, and a has_more
member, which is a boolean value indicating whether there is more data in subsequent pages.
Partial Updates (PATCH)
The Quoter API's resource update (PATCH
) endpoints follow the standard HTTP PATCH
conventions, meaning that partial/sparse updates may be performed on a record. In other words, for PATCH
endpoints, you only need to send the request fields that you wish to update, instead of the entire resource.
If a field is omitted from the request body, or a null
value is sent when updating a resource, the resource's existing value will be retained.
To clear/remove a field from a resource, send the empty value for the field's corresponding type:
Field Type | Empty Value |
---|---|
array | [] |
boolean | false |
number | 0 |
string | "" |
Rate Limiting
To ensure performance stability of the API for all users, Quoter enforces a rate limit of 5 requests per second.
Requests that exceed this limit will receive a 429: Too many requests
error response.
Response Fields
Nearly all API endpoints support a fields
query string parameter, which allows you to specify which return field(s) you would like to receive in the response body. We recommend only requesting return fields that you require for optimal performance.
For example, if you want to retrieve only the ID and name of an Item, you could perform the request GET https://api.quoter.com/v1/items?fields=id,name
.
Authorization
Authorize an Access and Refresh Token.
Code samples
const inputBody = '{
"client_id": "cid_asdf1234",
"client_secret": "topsecret",
"grant_type": "client_credentials"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://api.quoter.com/v1/auth/oauth/authorize',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://api.quoter.com/v1/auth/oauth/authorize',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://api.quoter.com/v1/auth/oauth/authorize', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/auth/oauth/authorize", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/auth/oauth/authorize \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /auth/oauth/authorize
Body parameter
{
"client_id": "cid_asdf1234",
"client_secret": "topsecret",
"grant_type": "client_credentials"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AuthorizationRequest | true | none |
Example responses
200 Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cMErWtEf7DxCXJl8C9q0L7ttkm-Ex54UWHsOCMGbtUc"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Authorization successful. | AuthorizationResponse |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Refresh Access and Refresh Tokens.
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: refresh_token'
};
fetch('https://api.quoter.com/v1/auth/refresh',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: refresh_token'
}
result = RestClient.post 'https://api.quoter.com/v1/auth/refresh',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: refresh_token'
}
r = requests.post('https://api.quoter.com/v1/auth/refresh', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: refresh_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/auth/refresh", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/auth/refresh \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: refresh_token'
POST /auth/refresh
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: refresh_token |
Example responses
200 Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cMErWtEf7DxCXJl8C9q0L7ttkm-Ex54UWHsOCMGbtUc"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Authorization successful. | AuthorizationResponse |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
Categories
List Categories
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/categories',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/categories',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/categories', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/categories \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /categories
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | One or more response fields, separated by commas. |
parent_category_id | query | string | false | Filter records by those associated with parent_category_id. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
Authorization | header | string | true | Bearer: access_token |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
fields | parent_category_id |
fields | parent_category |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
Example responses
200 Response
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Categories found. | CategoryList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Category
Code samples
const inputBody = '{
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/categories',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/categories',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/categories', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/categories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/categories \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /categories
Body parameter
{
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | One or more response fields, separated by commas. |
Authorization | header | string | true | Bearer: access_token |
body | body | CategoryCreateRequest | true | Request body to create a Category. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
fields | parent_category_id |
fields | parent_category |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Category created. | Category |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Category
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/categories/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/categories/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/categories/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/categories/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/categories/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /categories/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Category
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/categories/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/categories/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/categories/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/categories/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/categories/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /categories/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | One or more response fields, separated by commas. |
Authorization | header | string | true | Bearer: access_token |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
fields | parent_category_id |
fields | parent_category |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Category found. | Category |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Category
Code samples
const inputBody = '{
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/categories/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/categories/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/categories/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/categories/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/categories/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /categories/{ID}
Body parameter
{
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | One or more response fields, separated by commas. |
Authorization | header | string | true | Bearer: access_token |
body | body | CategoryUpdateRequest | true | Request body to update a Category. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
fields | parent_category_id |
fields | parent_category |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Category updated. | Category |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Contacts
List Contacts
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/contacts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/contacts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/contacts', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/contacts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/contacts \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /contacts
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
address | query | string | false | Filter records by those associated with billing_address. |
address[cont] | query | string | false | Filter records by those whose billing_address contains the value. |
city | query | string | false | Filter records by those associated with billing_city. |
city[cont] | query | string | false | Filter records by those whose billing_city contains the value. |
country_iso | query | string | false | Filter records by those associated with billing_country_iso. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
query | string | false | Filter records by those associated with email. | |
email[cont] | query | string | false | Filter records by those whose email contains the value. |
first_name | query | string | false | Filter records by those associated with first_name. |
first_name[cont] | query | string | false | Filter records by those whose first_name contains the value. |
last_name | query | string | false | Filter records by those associated with last_name. |
last_name[cont] | query | string | false | Filter records by those whose last_name contains the value. |
mobile_phone | query | string | false | Filter records by those associated with mobile_phone. |
mobile_phone[cont] | query | string | false | Filter records by those whose mobile_phone contains the value. |
postal_code | query | string | false | Filter records by those associated by billing_postal_code. |
postal_code[cont] | query | string | false | Filter records by those whose billing_postal_code contains the value. |
region_iso | query | string | false | Filter records by those associated with billing_region_iso. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
organization | query | string | false | Filter records by those associated with organization. |
organization[cont] | query | string | false | Filter records by those whose organization contains the value. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | billing_address |
fields | billing_address2 |
fields | billing_city |
fields | billing_country_iso |
fields | billing_postal_code |
fields | billing_region_iso |
fields | created_at |
fields | |
fields | first_name |
fields | id |
fields | last_name |
fields | mobile_phone |
fields | modified_at |
fields | organization |
fields | shipping_address |
fields | shipping_address2 |
fields | shipping_city |
fields | shipping_country_iso |
fields | shipping_email |
fields | shipping_first_name |
fields | shipping_label |
fields | shipping_last_name |
fields | shipping_organization |
fields | shipping_phone |
fields | shipping_postal_code |
fields | shipping_region_iso |
fields | title |
fields | website |
fields | work_phone |
Example responses
200 Response
{
"data": [
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"created_at": "string",
"email": "contact@quoter.com",
"first_name": "John",
"id": "cont_OcThl0ega2lTV4afll6qFrMDMBYyu",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"modified_at": "date-time",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Contacts found. | ContactList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Contact
Code samples
const inputBody = '{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"email": "contact@quoter.com",
"first_name": "John",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/contacts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/contacts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/contacts', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/contacts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/contacts \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /contacts
Body parameter
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"email": "contact@quoter.com",
"first_name": "John",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | One or more response fields, separated by commas. |
Authorization | header | string | true | Bearer: access_token |
body | body | ContactCreateRequest | true | Request body to create a Contact. |
Enumerated Values
Parameter | Value |
---|---|
fields | billing_address |
fields | billing_address2 |
fields | billing_city |
fields | billing_country_iso |
fields | billing_postal_code |
fields | billing_region_iso |
fields | created_at |
fields | |
fields | first_name |
fields | id |
fields | last_name |
fields | mobile_phone |
fields | modified_at |
fields | organization |
fields | shipping_address |
fields | shipping_address2 |
fields | shipping_city |
fields | shipping_country_iso |
fields | shipping_email |
fields | shipping_first_name |
fields | shipping_label |
fields | shipping_last_name |
fields | shipping_organization |
fields | shipping_phone |
fields | shipping_postal_code |
fields | shipping_region_iso |
fields | title |
fields | website |
fields | work_phone |
Example responses
200 Response
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"created_at": "string",
"email": "contact@quoter.com",
"first_name": "John",
"id": "cont_OcThl0ega2lTV4afll6qFrMDMBYyu",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"modified_at": "date-time",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Contact created. | Contact |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Contact
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/contacts/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/contacts/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/contacts/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/contacts/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/contacts/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /contacts/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | string | false | One or more response fields, separated by commas. |
Authorization | header | string | true | Bearer: access_token |
Enumerated Values
Parameter | Value |
---|---|
fields | billing_address |
fields | billing_address2 |
fields | billing_city |
fields | billing_country_iso |
fields | billing_postal_code |
fields | billing_region_iso |
fields | created_at |
fields | |
fields | first_name |
fields | id |
fields | last_name |
fields | mobile_phone |
fields | modified_at |
fields | organization |
fields | shipping_address |
fields | shipping_address2 |
fields | shipping_city |
fields | shipping_country_iso |
fields | shipping_email |
fields | shipping_first_name |
fields | shipping_label |
fields | shipping_last_name |
fields | shipping_organization |
fields | shipping_phone |
fields | shipping_postal_code |
fields | shipping_region_iso |
fields | title |
fields | website |
fields | work_phone |
Example responses
200 Response
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"created_at": "string",
"email": "contact@quoter.com",
"first_name": "John",
"id": "cont_OcThl0ega2lTV4afll6qFrMDMBYyu",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"modified_at": "date-time",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Contact found. | Contact |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Contact
Code samples
const inputBody = '{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"email": "contact@quoter.com",
"first_name": "John",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/contacts/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/contacts/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/contacts/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/contacts/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/contacts/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /contacts/{ID}
Body parameter
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"email": "contact@quoter.com",
"first_name": "John",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ContactUpdateRequest | true | Request body to update a Contact. |
Enumerated Values
Parameter | Value |
---|---|
fields | billing_address |
fields | billing_address2 |
fields | billing_city |
fields | billing_country_iso |
fields | billing_postal_code |
fields | billing_region_iso |
fields | created_at |
fields | |
fields | first_name |
fields | id |
fields | last_name |
fields | mobile_phone |
fields | modified_at |
fields | organization |
fields | shipping_address |
fields | shipping_address2 |
fields | shipping_city |
fields | shipping_country_iso |
fields | shipping_email |
fields | shipping_first_name |
fields | shipping_label |
fields | shipping_last_name |
fields | shipping_organization |
fields | shipping_phone |
fields | shipping_postal_code |
fields | shipping_region_iso |
fields | title |
fields | website |
fields | work_phone |
Example responses
200 Response
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"created_at": "string",
"email": "contact@quoter.com",
"first_name": "John",
"id": "cont_OcThl0ega2lTV4afll6qFrMDMBYyu",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"modified_at": "date-time",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Contact found. | Contact |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Item Group Item Assignments
List Item Group Item Assignments
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_group_item_assignments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_group_item_assignments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_group_item_assignments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_group_item_assignments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_group_item_assignments \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_group_item_assignments
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
item_group_id | query | string | false | Filter records by those associated with item_group_id. |
item_id | query | string | false | Filter records by those associated with item_id. |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | item_group_id |
fields | item_id |
fields | modified_at |
sort_by | -created_at |
sort_by | -modified_at |
sort_by | -id |
sort_by | created_at |
sort_by | modified_at |
sort_by | id |
Example responses
200 Response
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igia_1lylwamEQiFCXsDnDl3M4xQsJiH",
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"modified_at": "2019-08-24T14:15:22Z"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Group Item Assignments found. | ItemGroupItemAssignmentList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Item Group Item Assignment
Code samples
const inputBody = '{
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_group_item_assignments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/item_group_item_assignments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/item_group_item_assignments', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/item_group_item_assignments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/item_group_item_assignments \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /item_group_item_assignments
Body parameter
{
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemGroupItemAssignmentCreateRequest | true | Request body to create an Item Group Item Assignment. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | item_group_id |
fields | item_id |
fields | modified_at |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igia_1lylwamEQiFCXsDnDl3M4xQsJiH",
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"modified_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Group Item Assignment created. | ItemGroupItemAssignment |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Item Group Item Assignment
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_group_item_assignments/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/item_group_item_assignments/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/item_group_item_assignments/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/item_group_item_assignments/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/item_group_item_assignments/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /item_group_item_assignments/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Item Group Item Assignment
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_group_item_assignments/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_group_item_assignments/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_group_item_assignments/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_group_item_assignments/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_group_item_assignments/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_group_item_assignments/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | item_group_id |
fields | item_id |
fields | modified_at |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igia_1lylwamEQiFCXsDnDl3M4xQsJiH",
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"modified_at": "2019-08-24T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Group Item Assignment found. | ItemGroupItemAssignment |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Item Groups
List Item Groups
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_groups', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_groups \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_groups
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
Example responses
200 Response
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igrp_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "West Coast"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Groups found. | ItemGroupList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Item Group
Code samples
const inputBody = '{
"name": "West Coast"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_groups',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/item_groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/item_groups', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/item_groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/item_groups \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /item_groups
Body parameter
{
"name": "West Coast"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemGroupCreateRequest | true | Request body to create a Item Group. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igrp_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "West Coast"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Group created. | ItemGroup |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Item Group
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_groups/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/item_groups/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/item_groups/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/item_groups/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/item_groups/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /item_groups/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Item Group
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_groups/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_groups/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_groups/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_groups/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_groups/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_groups/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igrp_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "West Coast"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Group found. | ItemGroup |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Item Group
Code samples
const inputBody = '{
"name": "West Coast"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_groups/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/item_groups/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/item_groups/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/item_groups/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/item_groups/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /item_groups/{ID}
Body parameter
{
"name": "West Coast"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemGroupUpdateRequest | true | Request body to update a Item Group. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igrp_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "West Coast"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Group found. | ItemGroup |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Item Option Values
List Item Option Values
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_option_values',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_option_values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_option_values', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_option_values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_option_values \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_option_values
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | item_option_id |
fields | modified_at |
fields | name |
fields | price_decimal |
fields | pricing_scheme |
fields | sort_order |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | -sort_order |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
sort_by | sort_order |
Example responses
200 Response
{
"data": [
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "iov_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option Values found. | ItemOptionValueList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Item Option Value
Code samples
const inputBody = '{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount",
"sort_order": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_option_values',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/item_option_values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/item_option_values', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/item_option_values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/item_option_values \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /item_option_values
Body parameter
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount",
"sort_order": 1
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemOptionValueCreateRequest | true | Request body to create an Item Option Value. |
Enumerated Values
Parameter | Value |
---|---|
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | item_option_id |
fields | modified_at |
fields | name |
fields | price_decimal |
fields | pricing_scheme |
fields | sort_order |
Example responses
200 Response
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "iov_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option Value created. | ItemOptionValue |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Item Option Value
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_option_values/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/item_option_values/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/item_option_values/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/item_option_values/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/item_option_values/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /item_option_values/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Item Option Value
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_option_values/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_option_values/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_option_values/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_option_values/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_option_values/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_option_values/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | item_option_id |
fields | modified_at |
fields | name |
fields | price_decimal |
fields | pricing_scheme |
fields | sort_order |
Example responses
200 Response
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "iov_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option Value found. | ItemOptionValue |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Item Option Value
Code samples
const inputBody = '{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount",
"sort_order": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_option_values/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/item_option_values/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/item_option_values/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/item_option_values/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/item_option_values/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /item_option_values/{ID}
Body parameter
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount",
"sort_order": 1
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemOptionValueUpdateRequest | true | Request body to update an Item Option Value. |
Enumerated Values
Parameter | Value |
---|---|
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | item_option_id |
fields | modified_at |
fields | name |
fields | price_decimal |
fields | pricing_scheme |
fields | sort_order |
Example responses
200 Response
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "iov_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option Value found. | ItemOptionValue |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Item Options
List Item Options
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_options',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_options',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_options', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_options", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_options \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_options
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_multiple_values |
fields | created_at |
fields | description |
fields | extended_description |
fields | id |
fields | item_id |
fields | modified_at |
fields | name |
fields | required |
fields | sort_order |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | -sort_order |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
sort_by | sort_order |
Example responses
200 Response
{
"data": [
{
"allow_multiple_values": false,
"created_at": "2019-08-24T14:15:22Z",
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Options found. | ItemOptionList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Item Option
Code samples
const inputBody = '{
"allow_multiple_values": false,
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"name": "Disk Size",
"required": false,
"sort_order": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_options',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/item_options',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/item_options', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/item_options", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/item_options \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /item_options
Body parameter
{
"allow_multiple_values": false,
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemOptionCreateRequest | true | Request body to create an Item Option. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_multiple_values |
fields | created_at |
fields | description |
fields | extended_description |
fields | id |
fields | item_id |
fields | modified_at |
fields | name |
fields | required |
fields | sort_order |
Example responses
200 Response
{
"allow_multiple_values": false,
"created_at": "2019-08-24T14:15:22Z",
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option created. | ItemOption |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Item Option
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_options/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/item_options/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/item_options/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/item_options/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/item_options/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /item_options/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Item Option
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_options/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_options/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_options/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_options/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_options/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_options/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_multiple_values |
fields | created_at |
fields | description |
fields | extended_description |
fields | id |
fields | item_id |
fields | modified_at |
fields | name |
fields | required |
fields | sort_order |
Example responses
200 Response
{
"allow_multiple_values": false,
"created_at": "2019-08-24T14:15:22Z",
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option found. | ItemOption |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Item Option
Code samples
const inputBody = '{
"allow_multiple_values": true,
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"name": "Disk Size",
"required": true,
"sort_order": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_options/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/item_options/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/item_options/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/item_options/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/item_options/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /item_options/{ID}
Body parameter
{
"allow_multiple_values": true,
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"name": "Disk Size",
"required": true,
"sort_order": 1
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemOptionUpdateRequest | true | Request body to update an Item Option. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_multiple_values |
fields | created_at |
fields | description |
fields | extended_description |
fields | id |
fields | item_id |
fields | modified_at |
fields | name |
fields | required |
fields | sort_order |
Example responses
200 Response
{
"allow_multiple_values": false,
"created_at": "2019-08-24T14:15:22Z",
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Option found. | ItemOption |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Item Tiers
List Item Tiers
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_tiers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_tiers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_tiers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_tiers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_tiers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_tiers
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
item_id | query | string | false | Filter records by those associated with item_id. |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | lower_boundary |
fields | modified_at |
fields | price_decimal |
sort_by | -created_at |
sort_by | -lower_boundary |
sort_by | -modified_at |
sort_by | -id |
sort_by | created_at |
sort_by | lower_boundary |
sort_by | modified_at |
sort_by | id |
Example responses
200 Response
{
"data": [
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "tier_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Tiers found. | ItemTierList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Item Tier
Code samples
const inputBody = '{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_tiers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/item_tiers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/item_tiers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/item_tiers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/item_tiers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /item_tiers
Body parameter
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemTierCreateRequest | true | Request body to create an Item Tier. |
Enumerated Values
Parameter | Value |
---|---|
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | lower_boundary |
fields | modified_at |
fields | price_decimal |
Example responses
200 Response
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "tier_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Tier created. | ItemTier |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Item Tier
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_tiers/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/item_tiers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/item_tiers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/item_tiers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/item_tiers/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /item_tiers/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Item Tier
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_tiers/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/item_tiers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/item_tiers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/item_tiers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/item_tiers/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /item_tiers/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | lower_boundary |
fields | modified_at |
fields | price_decimal |
Example responses
200 Response
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "tier_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Tier found. | ItemTier |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Item Tier
Code samples
const inputBody = '{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 1,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/item_tiers/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/item_tiers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/item_tiers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/item_tiers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/item_tiers/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /item_tiers/{ID}
Body parameter
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 1,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemTierUpdateRequest | true | Request body to update an Item Tier. |
Enumerated Values
Parameter | Value |
---|---|
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | id |
fields | item_id |
fields | lower_boundary |
fields | modified_at |
fields | price_decimal |
Example responses
200 Response
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "tier_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item Tier found. | ItemTier |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Items
List Items
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/items',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/items',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/items', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/items \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /items
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
category_id | query | string | false | Filter records by those associated with category_id. |
code | query | string | false | Filter records by those whose code value is equal to. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
manufacturer_id | query | string | false | Filter records by those associated with manufacturer_id. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
sku | query | string | false | Filter records by those whose sku value is equal to. |
supplier_id | query | string | false | Filter records by those associated with supplier_id. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_decimal_quantities |
fields | category |
fields | category_id |
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | description |
fields | id |
fields | internal_note |
fields | manufacturer |
fields | manufacturer_id |
fields | modified_at |
fields | name |
fields | percentage_price_category_ids |
fields | percentage_price_decimal |
fields | price_decimal |
fields | pricing_scheme |
fields | quantity_help_tip |
fields | recurring |
fields | recurring_interval |
fields | restrict_discounting |
fields | show_option_prices |
fields | sku |
fields | supplier |
fields | supplier_id |
fields | taxable |
fields | weight_decimal |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
Example responses
200 Response
{
"data": [
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Items found. | ItemList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Item
Code samples
const inputBody = '{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/items',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/items',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/items', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/items \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /items
Body parameter
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemCreateRequest | true | Request body to create an Item. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_decimal_quantities |
fields | category |
fields | category_id |
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | description |
fields | id |
fields | internal_note |
fields | manufacturer |
fields | manufacturer_id |
fields | modified_at |
fields | name |
fields | percentage_price_category_ids |
fields | percentage_price_decimal |
fields | price_decimal |
fields | pricing_scheme |
fields | quantity_help_tip |
fields | recurring |
fields | recurring_interval |
fields | restrict_discounting |
fields | show_option_prices |
fields | sku |
fields | supplier |
fields | supplier_id |
fields | taxable |
fields | weight_decimal |
Example responses
200 Response
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item created. | Item |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Item
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/items/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/items/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/items/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/items/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/items/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /items/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Item
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/items/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/items/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/items/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/items/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/items/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /items/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_decimal_quantities |
fields | category |
fields | category_id |
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | description |
fields | id |
fields | internal_note |
fields | manufacturer |
fields | manufacturer_id |
fields | modified_at |
fields | name |
fields | percentage_price_category_ids |
fields | percentage_price_decimal |
fields | price_decimal |
fields | pricing_scheme |
fields | quantity_help_tip |
fields | recurring |
fields | recurring_interval |
fields | restrict_discounting |
fields | show_option_prices |
fields | sku |
fields | supplier |
fields | supplier_id |
fields | taxable |
fields | weight_decimal |
Example responses
200 Response
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item found. | Item |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Item
Code samples
const inputBody = '{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/items/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/items/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/items/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/items/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/items/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /items/{ID}
Body parameter
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ItemUpdateRequest | true | Request body to update an Item. |
Enumerated Values
Parameter | Value |
---|---|
fields | allow_decimal_quantities |
fields | category |
fields | category_id |
fields | code |
fields | cost_decimal |
fields | cost_type |
fields | created_at |
fields | description |
fields | id |
fields | internal_note |
fields | manufacturer |
fields | manufacturer_id |
fields | modified_at |
fields | name |
fields | percentage_price_category_ids |
fields | percentage_price_decimal |
fields | price_decimal |
fields | pricing_scheme |
fields | quantity_help_tip |
fields | recurring |
fields | recurring_interval |
fields | restrict_discounting |
fields | show_option_prices |
fields | sku |
fields | supplier |
fields | supplier_id |
fields | taxable |
fields | weight_decimal |
Example responses
200 Response
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Item updated. | Item |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Line Items
Create Line Item
Code samples
const inputBody = '{
"category": "Desktop",
"descriptoin": "Sample Description",
"manufacturer": "Acme Corp",
"name": "Sample Item",
"part_number": "string",
"quantity": 10,
"quote_id": "quot_2r5WHEQLKFsyKdyIj5daPCp7mjF",
"recurring": true,
"supplier": "Acme supplier",
"supplier_sku": "string",
"taxable": true,
"unit_cost": 0,
"unit_price": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/line_items',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/line_items',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/line_items', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/line_items", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/line_items \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /line_items
Body parameter
{
"category": "Desktop",
"descriptoin": "Sample Description",
"manufacturer": "Acme Corp",
"name": "Sample Item",
"part_number": "string",
"quantity": 10,
"quote_id": "quot_2r5WHEQLKFsyKdyIj5daPCp7mjF",
"recurring": true,
"supplier": "Acme supplier",
"supplier_sku": "string",
"taxable": true,
"unit_cost": 0,
"unit_price": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
body | body | LineItemCreateRequest | true | Request body to create a Line Item. |
Example responses
200 Response
{
"category": "Desktop",
"created_at": "2019-08-24T14:15:22Z",
"description": "Item Description",
"id": "litm_2r5WHJ1RvX8aCEyhQA6VhWpLuAb",
"manufacturer": "Acme Corp",
"modified_at": "2019-08-24T14:15:22Z",
"name": "My Item",
"part_number": "string",
"quantity": 0,
"recurring": true,
"supplier": "Acme Supplier",
"supplier_sku": "string",
"taxable": true,
"unit_cost": 0,
"unit_price": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Line Item created. | LineItem |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Manufacturers
List Manufacturers
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/manufacturers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/manufacturers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/manufacturers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/manufacturers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/manufacturers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /manufacturers
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
Example responses
200 Response
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "manu_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Samsung"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Manufacturers found. | ManufacturerList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Manufacturer
Code samples
const inputBody = '{
"name": "Samsung"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/manufacturers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/manufacturers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/manufacturers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/manufacturers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/manufacturers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /manufacturers
Body parameter
{
"name": "Samsung"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ManufacturerCreateRequest | true | Request body to create a Manufacturer. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "manu_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Samsung"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Manufacturer created. | Manufacturer |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Manufacturer
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/manufacturers/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/manufacturers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/manufacturers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/manufacturers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/manufacturers/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /manufacturers/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Manufacturer
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/manufacturers/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/manufacturers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/manufacturers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/manufacturers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/manufacturers/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /manufacturers/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "manu_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Samsung"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Manufacturer found. | Manufacturer |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Manufacturer
Code samples
const inputBody = '{
"name": "Samsung"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/manufacturers/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/manufacturers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/manufacturers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/manufacturers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/manufacturers/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /manufacturers/{ID}
Body parameter
{
"name": "Samsung"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | ManufacturerUpdateRequest | true | Request body to update a Manufacturer. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "manu_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Samsung"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Manufacturer found. | Manufacturer |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Quote Templates
List Quote Templates
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/quote_templates',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/quote_templates',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/quote_templates', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/quote_templates", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/quote_templates \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /quote_templates
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
title | query | string | false | Filter records by those whose title is equal to. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
sort_by | -created_at |
sort_by | -modified_at |
sort_by | -publid_id |
sort_by | -title |
sort_by | created_at |
sort_by | modified_at |
sort_by | publid_id |
sort_by | title |
Example responses
200 Response
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "tmpl_2lf68j5opaIrjmZmPZUwUXxP3R3",
"modified_at": "2019-08-24T14:15:22Z",
"slug": "sample-template",
"title": "Sample Template"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Quote Templates found. | QuoteTemplateList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Quotes
List Quotes
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/quotes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/quotes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/quotes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/quotes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/quotes \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /quotes
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
custom_number | query | string | false | Filter records by those whose custom_number value is equal to. |
custom_number[cont] | query | string | false | Filter records by those whose custom_number contains the value. |
draft | query | boolean | false | Filter records by those whose draft value is equal to. |
email_status | query | string | false | Filter records by those whose email_status value is equal to. |
expired_at[gt] | query | date-time | false | Filter records by those whose expired_at timestamp is greater than. |
expired_at[lt] | query | date-time | false | Filter records by those whose expired_at timestamp is less than. |
ids | query | string | false | Filter records by those whose id is contained in the comma separated list. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name contains the value. |
recurring_interval | query | string | false | Filter records by those whose recurring interval is equal to. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
status | query | string | false | Filter records by those whose status value is equal to. |
uuid | query | string | false | Filter records by those whose uuid value is equal to. |
won_at[gt] | query | date-time | false | Filter records by those whose won_at timestamp is greater than. |
won_at[lt] | query | date-time | false | Filter records by those whose won_at timestamp is less than. |
Enumerated Values
Parameter | Value |
---|---|
sort_by | -created_at |
sort_by | -expired_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | -won_at |
sort_by | created_at |
sort_by | expired_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
sort_by | won_at |
Example responses
200 Response
{
"data": [
{
"annual_cost_decimal": null,
"annual_discount_decimal": null,
"annual_discounted_subtotal_decimal": null,
"annual_margin_decimal": null,
"annual_subtotal_decimal": null,
"annual_tax_total_decimal": null,
"annual_total_decimal": null,
"annual_upfront_payments": null,
"billing_address_1": "4289 Reserve St",
"billing_address_2": null,
"billing_city": "Lakefield",
"billing_country_iso": "CA",
"billing_first_name": "John",
"billing_last_name": "Doe",
"billing_organization": "Microsoft",
"billing_region_iso": "ON",
"contact_id": "cont_1yTKYdrjvY7R04NDq57ZpufLFjk",
"created_at": "2019-08-24T14:15:22Z",
"currency_iso": "CAD",
"custom_number": "Quote Custom Number",
"draft": false,
"email_first_sent_at": null,
"email_last_sent_at": null,
"email_status": "sent",
"expired_at": "2019-08-24T14:15:22Z",
"flagged": false,
"id": "quot_2TSEPTEfnooIhvA83l78R0nEqR5",
"internal_notes": "some internal notes",
"modified_at": "2019-08-24T14:15:22Z",
"monthly_cost_decimal": "30.10",
"monthly_discount_decimal": "4.00",
"monthly_discounted_subtotal_decimal": "50.10",
"monthly_margin_decimal": "15.00",
"monthly_subtotal_decimal": "60.00",
"monthly_tax_total_decimal": "9.68",
"monthly_total_decimal": "61.00",
"monthly_upfront_payments": "1",
"name": "Sample Quote",
"number": "13",
"one_time_cost_decimal": "2.00",
"one_time_discount_decimal": "6.00",
"one_time_discounted_subtotal_decimal": "8.00",
"one_time_margin_decimal": "2.00",
"one_time_subtotal_decimal": "6.00",
"one_time_tax_total_decimal": "1.75",
"one_time_total_decimal": "10.75",
"owner_first_name": "Walter",
"owner_id": "user_2TSEPTEfnooIhvA83l78R0nEqR5",
"owner_last_name": "Melon",
"quarterly_cost_decimal": null,
"quarterly_discount_decimal": null,
"quarterly_discounted_subtotal_decimal": null,
"quarterly_margin_decimal": null,
"quarterly_subtotal_decimal": null,
"quarterly_tax_total_decimal": null,
"quarterly_total_decimal": null,
"quarterly_upfront_payments": null,
"revision": "3",
"semi_annual_cost_decimal": null,
"semi_annual_discount_decimal": null,
"semi_annual_discounted_subtotal_decimal": null,
"semi_annual_margin_decimal": null,
"semi_annual_subtotal_decimal": null,
"semi_annual_tax_total_decimal": null,
"semi_annual_total_decimal": null,
"semi_annual_upfront_payments": null,
"shipping_address_1": "2130 Thurston Dr",
"shipping_address_2": null,
"shipping_city": "Orleans",
"shipping_country_iso": "CA",
"shipping_decimal": "1.00",
"shipping_first_name": "Jane",
"shipping_last_name": "Doe",
"shipping_organization": "FedEx",
"shipping_region_iso": "ON",
"status": "pending",
"upfront_cost_decimal": "50.00",
"upfront_discount_decimal": "6.00",
"upfront_discounted_subtotal_decimal": "154.00",
"upfront_margin_decimal": "30.00",
"upfront_subtotal_decimal": "160.00",
"upfront_tax_total_decimal": "15.75",
"upfront_total_decimal": "173.00",
"uuid": "1436-e2a121e6-d4b3-4d6b-9ad3-e8b877f8580f",
"won_at": "2019-08-24T14:15:22Z"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Quotes found. | QuoteList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Quote
Code samples
const inputBody = '{
"appended_content": "Appended content goes here",
"contact_id": "cont_2r5WGA5WDExgSYmnZp0TVVQqFLA",
"cover_letter": "Cover letter details go here",
"currency_abbr": "CAD",
"name": "Draft Quote 1",
"template_id": "tmpl_2r5WHEQLKFsyKdyIj5daPCp7mjF"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/quotes',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/quotes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/quotes', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/quotes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/quotes \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /quotes
Current limitations:
- All quotes will be a create as a Draft Quote
- Any Item associated to the supplied Quote Template will not result in a matching Line Item being created for the Quote.
- File attachments and custom fields associated with a Quote Template are also not being created for the Quote.
- Draft Quotes are created with the owner set as the user that created the API key in Quoter. Following the link provided in the response will only work for authenticated Quoter Users with Sales Manager and above permissions.
Body parameter
{
"appended_content": "Appended content goes here",
"contact_id": "cont_2r5WGA5WDExgSYmnZp0TVVQqFLA",
"cover_letter": "Cover letter details go here",
"currency_abbr": "CAD",
"name": "Draft Quote 1",
"template_id": "tmpl_2r5WHEQLKFsyKdyIj5daPCp7mjF"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
body | body | QuoteCreateRequest | true | Request body to create a Draft Quote. |
Example responses
200 Response
{
"id": "quot_2r5CZzZNKjHlB7FvizOgceEHUhK",
"url": "https://development.quoter.com/admin/quotes/draft_by_public_id/quot_2r5CZzZNKjHlB7FvizOgceEHUhK"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Quote created. | QuoteCreateResponse |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Suppliers
List Suppliers
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/suppliers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/suppliers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/suppliers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/suppliers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/suppliers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /suppliers
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
created_at[gt] | query | date-time | false | Filter records by those whose created_at timestamp is greater than. |
created_at[lt] | query | date-time | false | Filter records by those whose created_at timestamp is less than. |
modified_at[gt] | query | date-time | false | Filter records by those whose modified_at timestamp is greater than. |
modified_at[lt] | query | date-time | false | Filter records by those whose modified_at timestamp is less than. |
name | query | string | false | Filter records by those whose name value is equal to. |
name[cont] | query | string | false | Filter records by those whose name value contains. |
limit | query | integer | false | Limit the number of records to return. Limit ranges from 1 to 100, and defaults to 100. |
page | query | integer | false | Pagination record offset. Page starts at 1. |
fields | query | string | false | One or more response fields, separated by commas. |
sort_by | query | string | false | One or more sort fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
sort_by | -created_at |
sort_by | -id |
sort_by | -modified_at |
sort_by | -name |
sort_by | created_at |
sort_by | id |
sort_by | modified_at |
sort_by | name |
Example responses
200 Response
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "sup_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Newegg"
}
],
"has_more": false,
"total_count": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Suppliers found. | SupplierList |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Create Supplier
Code samples
const inputBody = '{
"name": "Newegg"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/suppliers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.post 'https://api.quoter.com/v1/suppliers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.post('https://api.quoter.com/v1/suppliers', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.quoter.com/v1/suppliers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X POST https://api.quoter.com/v1/suppliers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
POST /suppliers
Body parameter
{
"name": "Newegg"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | SupplierCreateRequest | true | Request body to create a Supplier. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "sup_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Newegg"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Supplier created. | Supplier |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Delete Supplier
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/suppliers/{ID}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.delete 'https://api.quoter.com/v1/suppliers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.delete('https://api.quoter.com/v1/suppliers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.quoter.com/v1/suppliers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X DELETE https://api.quoter.com/v1/suppliers/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
DELETE /suppliers/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
Example responses
401 Response
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | Record deleted. | None |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Fetch Supplier
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/suppliers/{ID}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.get 'https://api.quoter.com/v1/suppliers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.get('https://api.quoter.com/v1/suppliers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.quoter.com/v1/suppliers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X GET https://api.quoter.com/v1/suppliers/{ID} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
GET /suppliers/{ID}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "sup_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Newegg"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Supplier found. | Supplier |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Update Supplier
Code samples
const inputBody = '{
"name": "Newegg"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer: access_token'
};
fetch('https://api.quoter.com/v1/suppliers/{ID}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer: access_token'
}
result = RestClient.patch 'https://api.quoter.com/v1/suppliers/{ID}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer: access_token'
}
r = requests.patch('https://api.quoter.com/v1/suppliers/{ID}', headers = headers)
print(r.json())
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer: access_token"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.quoter.com/v1/suppliers/{ID}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
# You can also use wget
curl -X PATCH https://api.quoter.com/v1/suppliers/{ID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer: access_token'
PATCH /suppliers/{ID}
Body parameter
{
"name": "Newegg"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Authorization | header | string | true | Bearer: access_token |
fields | query | string | false | One or more response fields, separated by commas. |
body | body | SupplierUpdateRequest | true | Request body to update a Supplier. |
Enumerated Values
Parameter | Value |
---|---|
fields | created_at |
fields | id |
fields | modified_at |
fields | name |
Example responses
200 Response
{
"created_at": "2019-08-24T14:15:22Z",
"id": "sup_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Newegg"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Supplier found. | Supplier |
401 | Unauthorized | Authorization invalid. | ErrorResponse |
404 | Not Found | Record not found. | ErrorResponse |
422 | Unprocessable Entity | Validation error in request. | ErrorResponse |
Schemas
AuthorizationRequest
{
"client_id": "cid_asdf1234",
"client_secret": "topsecret",
"grant_type": "client_credentials"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
client_id | string | true | none | none |
client_secret | string | true | none | none |
grant_type | string | true | none | none |
AuthorizationResponse
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cMErWtEf7DxCXJl8C9q0L7ttkm-Ex54UWHsOCMGbtUc"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
access_token | string | false | none | none |
refresh_token | string | false | none | none |
Category
{
"created_at": "2019-08-24T14:15:22Z",
"id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
parent_category | string | false | none | none |
parent_category_id | string | false | none | none |
CategoryCreateRequest
{
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
parent_category | string | false | none | none |
parent_category_id | string | false | none | none |
CategoryList
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Category] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
CategoryUpdateRequest
{
"name": "SSDs",
"parent_category": "Storage Devices",
"parent_category_id": "cat_1jAEZdbtkbLFBAU1Tt0ouKpiBUe"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
parent_category | string | false | none | Cannot be provided with parent_category_id. |
parent_category_id | string | false | none | Cannot be provided with parent_category. |
Contact
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"created_at": "string",
"email": "contact@quoter.com",
"first_name": "John",
"id": "cont_OcThl0ega2lTV4afll6qFrMDMBYyu",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"modified_at": "date-time",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
billing_address | string | false | none | none |
billing_address2 | string | false | none | none |
billing_city | string | false | none | none |
billing_country_iso | string | false | none | none |
billing_postal_code | string | false | none | none |
billing_region_iso | string | false | none | none |
created_at | string(data-time) | false | none | none |
string | false | none | none | |
first_name | string | false | none | none |
id | string | false | none | none |
last_name | string | false | none | none |
mobile_phone | string | false | none | none |
modified_at | string | false | none | none |
organization | string | false | none | none |
shipping_address | string | false | none | none |
shipping_address2 | string | false | none | none |
shipping_city | string | false | none | none |
shipping_country_iso | string | false | none | none |
shipping_email | string | false | none | none |
shipping_first_name | string | false | none | none |
shipping_label | string | false | none | none |
shipping_last_name | string | false | none | none |
shipping_organization | string | false | none | none |
shipping_phone | string | false | none | none |
shipping_postal_code | string | false | none | none |
shipping_region_iso | string | false | none | none |
title | string | false | none | none |
website | string | false | none | none |
work_phone | string | false | none | none |
ContactCreateRequest
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"email": "contact@quoter.com",
"first_name": "John",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
billing_address | string | false | none | none |
billing_address2 | string | false | none | none |
billing_city | string | false | none | none |
billing_country_iso | string | true | none | none |
billing_postal_code | string | false | none | none |
billing_region_iso | string | false | none | none |
string | true | none | none | |
first_name | string | true | none | none |
last_name | string | true | none | none |
mobile_phone | string | false | none | none |
organization | string | true | none | none |
shipping_address | string | false | none | none |
shipping_address2 | string | false | none | none |
shipping_city | string | false | none | none |
shipping_country_iso | string | false | none | none |
shipping_email | string | false | none | none |
shipping_first_name | string | false | none | none |
shipping_label | string | false | none | none |
shipping_last_name | string | false | none | none |
shipping_organization | string | false | none | none |
shipping_phone | string | false | none | none |
shipping_postal_code | string | false | none | none |
shipping_region_iso | string | false | none | none |
title | string | false | none | none |
website | string | false | none | none |
work_phone | string | false | none | none |
ContactList
{
"data": [
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"created_at": "string",
"email": "contact@quoter.com",
"first_name": "John",
"id": "cont_OcThl0ega2lTV4afll6qFrMDMBYyu",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"modified_at": "date-time",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Contact] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ContactUpdateRequest
{
"billing_address": "1021 W Hastings St",
"billing_address2": "#3200",
"billing_city": "Vancouver",
"billing_country_iso": "CA",
"billing_postal_code": "V5P-523",
"billing_region_iso": "BC",
"email": "contact@quoter.com",
"first_name": "John",
"last_name": "Doe",
"mobile_phone": "(604) 539-5319",
"organization": "Quoter",
"shipping_address": "1021 W Hastings St",
"shipping_address2": "#3200",
"shipping_city": "Vancouver",
"shipping_country_iso": "CA",
"shipping_email": "contact@quoter.com",
"shipping_first_name": "John",
"shipping_label": "label",
"shipping_last_name": "C/O John Doe",
"shipping_organization": "Quoter",
"shipping_phone": "(604) 539-5319",
"shipping_postal_code": "V5P-523",
"shipping_region_iso": "BC",
"title": "Mr.",
"website": "quoter.com",
"work_phone": "(604) 539-5319"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
billing_address | string | false | none | none |
billing_address2 | string | false | none | none |
billing_city | string | false | none | none |
billing_country_iso | string | false | none | none |
billing_postal_code | string | false | none | none |
billing_region_iso | string | false | none | none |
string | false | none | none | |
first_name | string | false | none | none |
last_name | string | false | none | none |
mobile_phone | string | false | none | none |
organization | string | false | none | none |
shipping_address | string | false | none | none |
shipping_address2 | string | false | none | none |
shipping_city | string | false | none | none |
shipping_country_iso | string | false | none | none |
shipping_email | string | false | none | none |
shipping_first_name | string | false | none | none |
shipping_label | string | false | none | none |
shipping_last_name | string | false | none | none |
shipping_organization | string | false | none | none |
shipping_phone | string | false | none | none |
shipping_postal_code | string | false | none | none |
shipping_region_iso | string | false | none | none |
title | string | false | none | none |
website | string | false | none | none |
work_phone | string | false | none | none |
ErrorResponse
{
"errors": [
{
"detail": "Pagination page requested too high.",
"status": 400,
"title": "Bad Request"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [object] | false | none | none |
» detail | string | false | none | none |
» status | integer | false | none | none |
» title | string | false | none | none |
Item
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allow_decimal_quantities | boolean | false | none | none |
category | string | false | none | Required; cannot be provided with category_id. |
category_id | string | false | none | Required; cannot be provided with category. |
code | string | false | none | none |
cost_decimal | string | false | none | If provided, pricing_scheme must be flat, per_unit, or percentage. |
cost_type | string | false | none | If provided, pricing_scheme must be flat, per_unit, or percentage; required if cost is provided. Defaults to amount if not specified. |
created_at | string(date-time) | false | none | none |
description | string | false | none | none |
id | string | false | none | none |
internal_note | string | false | none | none |
manufacturer | string | false | none | Cannot be provided with manufacturer_id. |
manufacturer_id | string | false | none | Cannot be provided with manufacturer. |
modified_at | string(date-time) | false | none | none |
name | string | false | none | required |
percentage_price_category_ids | [string] | false | none | If provided, pricing_scheme must be percentage; required if pricing_scheme is percentage. |
percentage_price_decimal | string | false | none | If provided, pricing_scheme must be percentage; required if pricing scheme is percentage. |
price_decimal | string | false | none | If provided, pricing_scheme must be flat or per_unit; validate decimal. |
pricing_scheme | string | false | none | Defaults to per_unit if omitted. |
quantity_help_tip | string | false | none | none |
recurring | boolean | false | none | none |
recurring_interval | string | false | none | If provided, recurring must be true; required if recurring is true. |
restrict_discounting | boolean | false | none | none |
show_option_prices | boolean | false | none | none |
sku | string | false | none | none |
supplier | string | false | none | Cannot be provided with supplier_id. |
supplier_id | string | false | none | Cannot be provided with supplier. |
taxable | boolean | false | none | Defaults to per_unit if omitted. |
weight_decimal | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
pricing_scheme | per_unit |
pricing_scheme | flat |
pricing_scheme | tiered_volume |
pricing_scheme | tiered_stepped |
pricing_scheme | percentage |
recurring_interval | monthly |
recurring_interval | quarterly |
recurring_interval | semi_annually |
recurring_interval | annually |
ItemCreateRequest
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allow_decimal_quantities | boolean | false | none | none |
category | string | false | none | Required; cannot be provided with category_id. |
category_id | string | true | none | Required; cannot be provided with category. |
code | string | false | none | none |
cost_decimal | string | false | none | If provided, pricing_scheme must be flat, per_unit, or percentage. |
cost_type | string | false | none | If provided, pricing_scheme must be flat, per_unit, or percentage; required if cost is provided. Defaults to amount if not specified. |
description | string | false | none | none |
internal_note | string | false | none | none |
manufacturer | string | false | none | Cannot be provided with manufacturer_id. |
manufacturer_id | string | false | none | Cannot be provided with manufacturer. |
name | string | true | none | none |
percentage_price_category_ids | [string] | false | none | If provided, pricing_scheme must be percentage; required if pricing_scheme is percentage. |
percentage_price_decimal | string | false | none | If provided, pricing_scheme must be percentage; required if pricing scheme is percentage. |
price_decimal | string | false | none | If provided, pricing_scheme must be flat or per_unit; validate decimal. |
pricing_scheme | string | false | none | Defaults to per_unit if omitted. |
quantity_help_tip | string | false | none | none |
recurring | boolean | false | none | none |
recurring_interval | string | false | none | If provided, recurring must be true; required if recurring is true. |
restrict_discounting | boolean | false | none | none |
show_option_prices | boolean | false | none | none |
sku | string | false | none | none |
supplier | string | false | none | Cannot be provided with supplier_id. |
supplier_id | string | false | none | Cannot be provided with supplier. |
taxable | boolean | false | none | Defaults to per_unit if omitted. |
weight_decimal | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
pricing_scheme | per_unit |
pricing_scheme | flat |
pricing_scheme | tiered_volume |
pricing_scheme | tiered_stepped |
pricing_scheme | percentage |
recurring_interval | monthly |
recurring_interval | quarterly |
recurring_interval | semi_annually |
recurring_interval | annually |
ItemGroup
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igrp_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "West Coast"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
ItemGroupCreateRequest
{
"name": "West Coast"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
ItemGroupItemAssignment
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igia_1lylwamEQiFCXsDnDl3M4xQsJiH",
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"modified_at": "2019-08-24T14:15:22Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
item_group_id | string | false | none | none |
item_id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
ItemGroupItemAssignmentCreateRequest
{
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
item_group_id | string | true | none | none |
item_id | string | true | none | none |
ItemGroupItemAssignmentList
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igia_1lylwamEQiFCXsDnDl3M4xQsJiH",
"item_group_id": "igrp_1lqyMI1VF074qctA1lpvhFK3PuY",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"modified_at": "2019-08-24T14:15:22Z"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [ItemGroupItemAssignment] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ItemGroupList
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "igrp_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "West Coast"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [ItemGroup] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ItemGroupUpdateRequest
{
"name": "West Coast"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
ItemList
{
"data": [
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"modified_at": "2019-08-24T14:15:22Z",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Item] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ItemOption
{
"allow_multiple_values": false,
"created_at": "2019-08-24T14:15:22Z",
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allow_multiple_values | boolean | false | none | none |
created_at | string(date-time) | false | none | none |
description | string | false | none | none |
extended_description | string | false | none | none |
id | string | false | none | none |
item_id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
required | boolean | false | none | none |
sort_order | integer | false | none | none |
ItemOptionCreateRequest
{
"allow_multiple_values": false,
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allow_multiple_values | boolean | false | none | none |
description | string | false | none | none |
extended_description | string | false | none | none |
item_id | string | true | none | none |
name | string | true | none | none |
required | boolean | false | none | none |
sort_order | integer | false | none | none |
ItemOptionList
{
"data": [
{
"allow_multiple_values": false,
"created_at": "2019-08-24T14:15:22Z",
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Disk Size",
"required": false,
"sort_order": 0
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [ItemOption] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ItemOptionUpdateRequest
{
"allow_multiple_values": true,
"description": "<p>Standard description</p>",
"extended_description": "<p>Longer description.</p>",
"name": "Disk Size",
"required": true,
"sort_order": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allow_multiple_values | boolean | false | none | none |
description | string | false | none | none |
extended_description | string | false | none | none |
name | string | false | none | none |
required | boolean | false | none | none |
sort_order | integer | false | none | none |
ItemOptionValue
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "iov_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | none |
cost_decimal | string | false | none | none |
cost_type | string | false | none | Defaults to amount if not specified. |
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
item_id | string | false | none | none |
item_option_id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
price_decimal | string | false | none | none |
pricing_scheme | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
pricing_scheme | amount |
pricing_scheme | percentage |
pricing_scheme | compound_percentage |
ItemOptionValueCreateRequest
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount",
"sort_order": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | none |
cost_decimal | string | false | none | none |
cost_type | string | false | none | Defaults to amount if not specified. |
item_option_id | string | true | none | none |
name | string | true | none | none |
price_decimal | string | false | none | none |
pricing_scheme | string | false | none | none |
sort_order | integer | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
pricing_scheme | amount |
pricing_scheme | percentage |
pricing_scheme | compound_percentage |
ItemOptionValueList
{
"data": [
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "iov_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_option_id": "iopt_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [ItemOptionValue] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ItemOptionValueUpdateRequest
{
"code": "MPN123",
"cost_decimal": "50.50",
"cost_type": "amount",
"name": "1TB",
"price_decimal": "50.50",
"pricing_scheme": "amount",
"sort_order": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | none |
cost_decimal | string | false | none | none |
cost_type | string | false | none | Defaults to amount if an empty value is specified. |
name | string | false | none | none |
price_decimal | string | false | none | none |
pricing_scheme | string | false | none | none |
sort_order | integer | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
pricing_scheme | amount |
pricing_scheme | percentage |
pricing_scheme | compound_percentage |
ItemTier
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "tier_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
cost_decimal | string | false | none | none |
cost_type | string | false | none | Required if cost_decimal is provided. Defaults to amount if not specified. |
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
item_id | string | false | none | none |
lower_boundary | integer | false | none | A lower_boundary of 0 must exist before other values can be created. An existing lower_boundary of 0 cannot be updated. |
modified_at | string(date-time) | false | none | none |
price_decimal | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
ItemTierCreateRequest
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
cost_decimal | string | false | none | none |
cost_type | string | false | none | Required if cost_decimal is provided. Defaults to amount if not specified. |
created_at | string(date-time) | false | none | none |
item_id | string | true | none | none |
lower_boundary | integer | true | none | A lower_boundary of 0 must exist before other values can be created. |
modified_at | string(date-time) | false | none | none |
price_decimal | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
ItemTierList
{
"data": [
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"id": "tier_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 0,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [ItemTier] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ItemTierUpdateRequest
{
"cost_decimal": "50.50",
"cost_type": "amount",
"created_at": "2019-08-24T14:15:22Z",
"item_id": "item_OcThl0eqYyTVQzll6qFrMDMBYyu",
"lower_boundary": 1,
"modified_at": "2019-08-24T14:15:22Z",
"price_decimal": "50.50"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
cost_decimal | string | false | none | none |
cost_type | string | false | none | Required if cost_decimal is provided. Defaults to amount if not specified. |
created_at | string(date-time) | false | none | none |
item_id | string | false | none | none |
lower_boundary | integer | false | none | An existing lower_boundary of 0 cannot be updated. |
modified_at | string(date-time) | false | none | none |
price_decimal | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
ItemUpdateRequest
{
"allow_decimal_quantities": true,
"category": "SSDs",
"category_id": "cat_OcThl8SOeE8w6JYUznfrnQGdp94",
"code": "MZ-V7S1T0B/AM",
"cost_decimal": 50.5,
"cost_type": "amount",
"description": "The 970 EVO Plus reaches sequential read/write speeds up to 3,500/3,300 MB/s, up to 53% faster than the 970 EVO.",
"internal_note": "Check warehouse for inventory before ordering.",
"manufacturer": "Samsung",
"manufacturer_id": "manu_OcThlEWcbhAG52u3vLJodwnV88k",
"name": "SAMSUNG 970 EVO PLUS M.2 2280 1TB PCIe Gen 3.0 x4",
"percentage_price_category_ids": [
"cat_OcThlTV6Tama8RH5Zh4Jfw1fhJC"
],
"percentage_price_decimal": 50.5,
"price_decimal": 50.5,
"pricing_scheme": "per_unit",
"quantity_help_tip": "Enter the number of units required.",
"recurring": true,
"recurring_interval": "annually",
"restrict_discounting": true,
"show_option_prices": true,
"sku": "N82E16820147743",
"supplier": "Newegg",
"supplier_id": "sup_OcThlLwzLAM7m5eK1WEKkXUQZtm",
"taxable": true,
"weight_decimal": 50.5
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
allow_decimal_quantities | boolean | false | none | none |
category | string | false | none | Cannot be provided with category_id. |
category_id | string | false | none | Cannot be provided with category. |
code | string | false | none | none |
cost_decimal | string | false | none | If provided, pricing_scheme must be flat, per_unit, or percentage. |
cost_type | string | false | none | If provided, pricing_scheme must be flat, per_unit, or percentage; required if cost is provided. Defaults to amount if an empty value is specified. |
description | string | false | none | none |
internal_note | string | false | none | none |
manufacturer | string | false | none | Cannot be provided with manufacturer_id. |
manufacturer_id | string | false | none | Cannot be provided with manufacturer. |
name | string | false | none | none |
percentage_price_category_ids | [string] | false | none | If provided, pricing_scheme must be percentage; required if pricing_scheme is percentage. |
percentage_price_decimal | string | false | none | If provided, pricing_scheme must be percentage; required if pricing scheme is percentage. |
price_decimal | string | false | none | If provided, pricing_scheme must be flat or per_unit; validate decimal. |
pricing_scheme | string | false | none | Defaults to per_unit if omitted. |
quantity_help_tip | string | false | none | none |
recurring | boolean | false | none | none |
recurring_interval | string | false | none | If provided, recurring must be true; required if recurring is true. |
restrict_discounting | boolean | false | none | none |
show_option_prices | boolean | false | none | none |
sku | string | false | none | none |
supplier | string | false | none | Cannot be provided with supplier_id. |
supplier_id | string | false | none | Cannot be provided with supplier. |
taxable | boolean | false | none | Defaults to per_unit if omitted. |
weight_decimal | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
cost_type | amount |
cost_type | percentage |
pricing_scheme | per_unit |
pricing_scheme | flat |
pricing_scheme | tiered_volume |
pricing_scheme | tiered_stepped |
pricing_scheme | percentage |
recurring_interval | monthly |
recurring_interval | quarterly |
recurring_interval | semi_annually |
recurring_interval | annually |
LineItem
{
"category": "Desktop",
"created_at": "2019-08-24T14:15:22Z",
"description": "Item Description",
"id": "litm_2r5WHJ1RvX8aCEyhQA6VhWpLuAb",
"manufacturer": "Acme Corp",
"modified_at": "2019-08-24T14:15:22Z",
"name": "My Item",
"part_number": "string",
"quantity": 0,
"recurring": true,
"supplier": "Acme Supplier",
"supplier_sku": "string",
"taxable": true,
"unit_cost": 0,
"unit_price": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
category | string | false | none | none |
created_at | string(date-time) | false | none | none |
description | string | false | none | none |
id | string | false | none | none |
manufacturer | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
part_number | string | false | none | none |
quantity | number | false | none | none |
recurring | boolean | false | none | none |
supplier | string | false | none | none |
supplier_sku | string | false | none | none |
taxable | boolean | false | none | none |
unit_cost | number | false | none | none |
unit_price | number | false | none | none |
LineItemCreateRequest
{
"category": "Desktop",
"descriptoin": "Sample Description",
"manufacturer": "Acme Corp",
"name": "Sample Item",
"part_number": "string",
"quantity": 10,
"quote_id": "quot_2r5WHEQLKFsyKdyIj5daPCp7mjF",
"recurring": true,
"supplier": "Acme supplier",
"supplier_sku": "string",
"taxable": true,
"unit_cost": 0,
"unit_price": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
category | string | true | none | none |
descriptoin | string | false | none | none |
manufacturer | string | false | none | none |
name | string | true | none | none |
part_number | string | false | none | none |
quantity | number | true | none | none |
quote_id | string | true | none | none |
recurring | boolean | false | none | none |
supplier | string | false | none | none |
supplier_sku | string | false | none | none |
taxable | boolean | false | none | none |
unit_cost | number | false | none | none |
unit_price | number | false | none | none |
Manufacturer
{
"created_at": "2019-08-24T14:15:22Z",
"id": "manu_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Samsung"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
ManufacturerCreateRequest
{
"name": "Samsung"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
ManufacturerList
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "manu_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Samsung"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Manufacturer] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
ManufacturerUpdateRequest
{
"name": "Samsung"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
Quote
{
"annual_cost_decimal": null,
"annual_discount_decimal": null,
"annual_discounted_subtotal_decimal": null,
"annual_margin_decimal": null,
"annual_subtotal_decimal": null,
"annual_tax_total_decimal": null,
"annual_total_decimal": null,
"annual_upfront_payments": null,
"billing_address_1": "4289 Reserve St",
"billing_address_2": null,
"billing_city": "Lakefield",
"billing_country_iso": "CA",
"billing_first_name": "John",
"billing_last_name": "Doe",
"billing_organization": "Microsoft",
"billing_region_iso": "ON",
"contact_id": "cont_1yTKYdrjvY7R04NDq57ZpufLFjk",
"created_at": "2019-08-24T14:15:22Z",
"currency_iso": "CAD",
"custom_number": "Quote Custom Number",
"draft": false,
"email_first_sent_at": null,
"email_last_sent_at": null,
"email_status": "sent",
"expired_at": "2019-08-24T14:15:22Z",
"flagged": false,
"id": "quot_2TSEPTEfnooIhvA83l78R0nEqR5",
"internal_notes": "some internal notes",
"modified_at": "2019-08-24T14:15:22Z",
"monthly_cost_decimal": "30.10",
"monthly_discount_decimal": "4.00",
"monthly_discounted_subtotal_decimal": "50.10",
"monthly_margin_decimal": "15.00",
"monthly_subtotal_decimal": "60.00",
"monthly_tax_total_decimal": "9.68",
"monthly_total_decimal": "61.00",
"monthly_upfront_payments": "1",
"name": "Sample Quote",
"number": "13",
"one_time_cost_decimal": "2.00",
"one_time_discount_decimal": "6.00",
"one_time_discounted_subtotal_decimal": "8.00",
"one_time_margin_decimal": "2.00",
"one_time_subtotal_decimal": "6.00",
"one_time_tax_total_decimal": "1.75",
"one_time_total_decimal": "10.75",
"owner_first_name": "Walter",
"owner_id": "user_2TSEPTEfnooIhvA83l78R0nEqR5",
"owner_last_name": "Melon",
"quarterly_cost_decimal": null,
"quarterly_discount_decimal": null,
"quarterly_discounted_subtotal_decimal": null,
"quarterly_margin_decimal": null,
"quarterly_subtotal_decimal": null,
"quarterly_tax_total_decimal": null,
"quarterly_total_decimal": null,
"quarterly_upfront_payments": null,
"revision": "3",
"semi_annual_cost_decimal": null,
"semi_annual_discount_decimal": null,
"semi_annual_discounted_subtotal_decimal": null,
"semi_annual_margin_decimal": null,
"semi_annual_subtotal_decimal": null,
"semi_annual_tax_total_decimal": null,
"semi_annual_total_decimal": null,
"semi_annual_upfront_payments": null,
"shipping_address_1": "2130 Thurston Dr",
"shipping_address_2": null,
"shipping_city": "Orleans",
"shipping_country_iso": "CA",
"shipping_decimal": "1.00",
"shipping_first_name": "Jane",
"shipping_last_name": "Doe",
"shipping_organization": "FedEx",
"shipping_region_iso": "ON",
"status": "pending",
"upfront_cost_decimal": "50.00",
"upfront_discount_decimal": "6.00",
"upfront_discounted_subtotal_decimal": "154.00",
"upfront_margin_decimal": "30.00",
"upfront_subtotal_decimal": "160.00",
"upfront_tax_total_decimal": "15.75",
"upfront_total_decimal": "173.00",
"uuid": "1436-e2a121e6-d4b3-4d6b-9ad3-e8b877f8580f",
"won_at": "2019-08-24T14:15:22Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
annual_cost_decimal | string¦null | false | none | none |
annual_discount_decimal | string¦null | false | none | none |
annual_discounted_subtotal_decimal | string¦null | false | none | none |
annual_margin_decimal | string¦null | false | none | none |
annual_subtotal_decimal | string¦null | false | none | none |
annual_tax_total_decimal | string¦null | false | none | none |
annual_total_decimal | string¦null | false | none | none |
annual_upfront_payments | string¦null | false | none | none |
billing_address_1 | string¦null | false | none | none |
billing_address_2 | string¦null | false | none | none |
billing_city | string¦null | false | none | none |
billing_country_iso | string¦null | false | none | none |
billing_first_name | string¦null | false | none | none |
billing_last_name | string¦null | false | none | none |
billing_organization | string¦null | false | none | none |
billing_region_iso | string¦null | false | none | none |
contact_id | string | false | none | none |
created_at | string(date-time) | false | none | none |
currency_iso | string | false | none | none |
custom_number | string¦null | false | none | none |
draft | boolean | false | none | none |
email_first_sent_at | date-time¦null | false | none | none |
email_last_sent_at | date-time¦null | false | none | none |
email_status | string | false | none | none |
expired_at | string(date-time) | false | none | none |
flagged | boolean | false | none | none |
id | string | false | none | none |
internal_notes | string | false | none | none |
modified_at | string(date-time) | false | none | none |
monthly_cost_decimal | string¦null | false | none | none |
monthly_discount_decimal | string¦null | false | none | none |
monthly_discounted_subtotal_decimal | string¦null | false | none | none |
monthly_margin_decimal | string¦null | false | none | none |
monthly_subtotal_decimal | string¦null | false | none | none |
monthly_tax_total_decimal | string¦null | false | none | none |
monthly_total_decimal | string¦null | false | none | none |
monthly_upfront_payments | string¦null | false | none | none |
name | string | false | none | none |
number | string | false | none | none |
one_time_cost_decimal | string¦null | false | none | none |
one_time_discount_decimal | string¦null | false | none | none |
one_time_discounted_subtotal_decimal | string¦null | false | none | none |
one_time_margin_decimal | string¦null | false | none | none |
one_time_subtotal_decimal | string¦null | false | none | none |
one_time_tax_total_decimal | string¦null | false | none | none |
one_time_total_decimal | string¦null | false | none | none |
owner_first_name | string¦null | false | none | none |
owner_id | string | false | none | none |
owner_last_name | string¦null | false | none | none |
quarterly_cost_decimal | string¦null | false | none | none |
quarterly_discount_decimal | string¦null | false | none | none |
quarterly_discounted_subtotal_decimal | string¦null | false | none | none |
quarterly_margin_decimal | string¦null | false | none | none |
quarterly_subtotal_decimal | string¦null | false | none | none |
quarterly_tax_total_decimal | string¦null | false | none | none |
quarterly_total_decimal | string¦null | false | none | none |
quarterly_upfront_payments | string¦null | false | none | none |
revision | string | false | none | none |
semi_annual_cost_decimal | string¦null | false | none | none |
semi_annual_discount_decimal | string¦null | false | none | none |
semi_annual_discounted_subtotal_decimal | string¦null | false | none | none |
semi_annual_margin_decimal | string¦null | false | none | none |
semi_annual_subtotal_decimal | string¦null | false | none | none |
semi_annual_tax_total_decimal | string¦null | false | none | none |
semi_annual_total_decimal | string¦null | false | none | none |
semi_annual_upfront_payments | string¦null | false | none | none |
shipping_address_1 | string¦null | false | none | none |
shipping_address_2 | string¦null | false | none | none |
shipping_city | string¦null | false | none | none |
shipping_country_iso | string¦null | false | none | none |
shipping_decimal | string¦null | false | none | none |
shipping_first_name | string¦null | false | none | none |
shipping_last_name | string¦null | false | none | none |
shipping_organization | string¦null | false | none | none |
shipping_region_iso | string¦null | false | none | none |
status | string | false | none | none |
upfront_cost_decimal | string¦null | false | none | none |
upfront_discount_decimal | string¦null | false | none | none |
upfront_discounted_subtotal_decimal | string¦null | false | none | none |
upfront_margin_decimal | string | false | none | none |
upfront_subtotal_decimal | string¦null | false | none | none |
upfront_tax_total_decimal | string¦null | false | none | none |
upfront_total_decimal | string | false | none | none |
uuid | string | false | none | none |
won_at | string(date-time) | false | none | none |
QuoteCreateRequest
{
"appended_content": "Appended content goes here",
"contact_id": "cont_2r5WGA5WDExgSYmnZp0TVVQqFLA",
"cover_letter": "Cover letter details go here",
"currency_abbr": "CAD",
"name": "Draft Quote 1",
"template_id": "tmpl_2r5WHEQLKFsyKdyIj5daPCp7mjF"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
appended_content | string | false | none | none |
contact_id | string | true | none | none |
cover_letter | string | false | none | none |
currency_abbr | string | false | none | none |
name | string | false | none | none |
template_id | string | true | none | none |
QuoteCreateResponse
{
"id": "quot_2r5CZzZNKjHlB7FvizOgceEHUhK",
"url": "https://development.quoter.com/admin/quotes/draft_by_public_id/quot_2r5CZzZNKjHlB7FvizOgceEHUhK"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
url | string | false | none | none |
QuoteList
{
"data": [
{
"annual_cost_decimal": null,
"annual_discount_decimal": null,
"annual_discounted_subtotal_decimal": null,
"annual_margin_decimal": null,
"annual_subtotal_decimal": null,
"annual_tax_total_decimal": null,
"annual_total_decimal": null,
"annual_upfront_payments": null,
"billing_address_1": "4289 Reserve St",
"billing_address_2": null,
"billing_city": "Lakefield",
"billing_country_iso": "CA",
"billing_first_name": "John",
"billing_last_name": "Doe",
"billing_organization": "Microsoft",
"billing_region_iso": "ON",
"contact_id": "cont_1yTKYdrjvY7R04NDq57ZpufLFjk",
"created_at": "2019-08-24T14:15:22Z",
"currency_iso": "CAD",
"custom_number": "Quote Custom Number",
"draft": false,
"email_first_sent_at": null,
"email_last_sent_at": null,
"email_status": "sent",
"expired_at": "2019-08-24T14:15:22Z",
"flagged": false,
"id": "quot_2TSEPTEfnooIhvA83l78R0nEqR5",
"internal_notes": "some internal notes",
"modified_at": "2019-08-24T14:15:22Z",
"monthly_cost_decimal": "30.10",
"monthly_discount_decimal": "4.00",
"monthly_discounted_subtotal_decimal": "50.10",
"monthly_margin_decimal": "15.00",
"monthly_subtotal_decimal": "60.00",
"monthly_tax_total_decimal": "9.68",
"monthly_total_decimal": "61.00",
"monthly_upfront_payments": "1",
"name": "Sample Quote",
"number": "13",
"one_time_cost_decimal": "2.00",
"one_time_discount_decimal": "6.00",
"one_time_discounted_subtotal_decimal": "8.00",
"one_time_margin_decimal": "2.00",
"one_time_subtotal_decimal": "6.00",
"one_time_tax_total_decimal": "1.75",
"one_time_total_decimal": "10.75",
"owner_first_name": "Walter",
"owner_id": "user_2TSEPTEfnooIhvA83l78R0nEqR5",
"owner_last_name": "Melon",
"quarterly_cost_decimal": null,
"quarterly_discount_decimal": null,
"quarterly_discounted_subtotal_decimal": null,
"quarterly_margin_decimal": null,
"quarterly_subtotal_decimal": null,
"quarterly_tax_total_decimal": null,
"quarterly_total_decimal": null,
"quarterly_upfront_payments": null,
"revision": "3",
"semi_annual_cost_decimal": null,
"semi_annual_discount_decimal": null,
"semi_annual_discounted_subtotal_decimal": null,
"semi_annual_margin_decimal": null,
"semi_annual_subtotal_decimal": null,
"semi_annual_tax_total_decimal": null,
"semi_annual_total_decimal": null,
"semi_annual_upfront_payments": null,
"shipping_address_1": "2130 Thurston Dr",
"shipping_address_2": null,
"shipping_city": "Orleans",
"shipping_country_iso": "CA",
"shipping_decimal": "1.00",
"shipping_first_name": "Jane",
"shipping_last_name": "Doe",
"shipping_organization": "FedEx",
"shipping_region_iso": "ON",
"status": "pending",
"upfront_cost_decimal": "50.00",
"upfront_discount_decimal": "6.00",
"upfront_discounted_subtotal_decimal": "154.00",
"upfront_margin_decimal": "30.00",
"upfront_subtotal_decimal": "160.00",
"upfront_tax_total_decimal": "15.75",
"upfront_total_decimal": "173.00",
"uuid": "1436-e2a121e6-d4b3-4d6b-9ad3-e8b877f8580f",
"won_at": "2019-08-24T14:15:22Z"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Quote] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
QuoteTemplate
{
"created_at": "2019-08-24T14:15:22Z",
"id": "tmpl_2lf68j5opaIrjmZmPZUwUXxP3R3",
"modified_at": "2019-08-24T14:15:22Z",
"slug": "sample-template",
"title": "Sample Template"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
slug | string | false | none | none |
title | string | false | none | none |
QuoteTemplateList
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "tmpl_2lf68j5opaIrjmZmPZUwUXxP3R3",
"modified_at": "2019-08-24T14:15:22Z",
"slug": "sample-template",
"title": "Sample Template"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [QuoteTemplate] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
Supplier
{
"created_at": "2019-08-24T14:15:22Z",
"id": "sup_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Newegg"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | false | none | none |
id | string | false | none | none |
modified_at | string(date-time) | false | none | none |
name | string | false | none | none |
SupplierCreateRequest
{
"name": "Newegg"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
SupplierList
{
"data": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": "sup_1jAEZdbtkbLFBAU1Tt0ouKpiBUe",
"modified_at": "2019-08-24T14:15:22Z",
"name": "Newegg"
}
],
"has_more": false,
"total_count": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Supplier] | false | none | none |
has_more | boolean | false | none | none |
total_count | integer | false | none | none |
SupplierUpdateRequest
{
"name": "Newegg"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |