NAV
JavaScript Ruby Python Go cURL

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:

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:

Base URLs:

Authentication

The Quoter API uses OAuth 2.0 Client Credentials Flow for authentication:

  1. Generate your OAuth Client ID and Secret for your Quoter account in Account > API Keys. You must be an Account Owner to have access.
  2. Send a request to POST /auth/oauth/authorize with the request body containing your client_id, secret, and grant_type: client_credentials to obtain an access_token and a refresh_token. See the Authorization documentation for a more detailed example.
  3. To perform an authenticated request, send the access_token value as a bearer token via the request header: "Authorization: Bearer {access_token}".
  4. The access_token is valid for 1 hour. To obtain a new access and refresh token pair, send a request to POST /auth/refresh with the request body containing your refresh_token. The refresh_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.
email 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 email
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 email
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 email
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 email
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:

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
email 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
email 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
email 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