PUT /v4/assets/:vbid - Create/Update Asset

Create/Update Asset

Allows users to create or update asset-level metadata information. This is restricted to only content owners. All other users will be returned a 403 - Forbidden.

 

Verb/URI

PUT https://api.vitalsource.com/v4/assets/:vbid

Data Definitions

Name Usage Description Data Type Example & Details Required
vbid URL Path

Unique identifier (usually ISBN) for a VitalBook.

NOTE: If no VBID is given, then an EAN will be generated for the asset.

String L-99-99999

No

NOTE: If no VBID is given, then an EAN will be generated for the asset.

asset_status Param A data object that describes the current state of an asset. Can only be set by VST systems. Object
{
"vbk": "initialized,
"distribution": "initialized"
}
No
asset_status/vbk Param The current state of the vbk file from the build system. Can only be set by VST systems. String initialized No
asset_status/distribution Param The current distribution state of an asset. Can only be set by VST systems. String initialized No
author_name Param

The concatenation of the author_first_name and author_last_name fields. Used for display purposes in Booklist and Manage.

If a value is not passed for author_name and both author_first_name and author_last_name are, then the field will be populated as the concatenation of the author_first_name and author_last_name.

String Todd Watkins No
author_first_name Param The asset author's first name. Used for display purposes only String Todd No
author_last_name Param The asset author's last name. Used for display purposes only String Watkins No
block_search Param A flag on the asset that denotes if the asset is blocked from store search results. Can only be set by VST systems. Boolean true/false No
book_format/value Response The system value of the book format. Can only be set by VST systems. String
  • pdf
  • epub
N/A
book_format/dash2epub Response Denotes whether the book was converted to an ePub from the legacy DashML format. Can only be set by VST systems. Boolean true/false N/A
build/available Response Denotes the availability of the asset. Can only be set by VST systems. Boolean true/false N/A
build/source Response Denotes the build server of the asset. Can only be set by VST systems. String "Quasar" N/A
build/status Response Denotes the current build status of the asset. Can only be set by VST systems. String "approved" N/A
copy_drm_limit Param The maximum number of pages that can be copied into the user's paste buffer at one time. Must be -1, or 2 or greater. -1 allows unlimited copying. Integer 1 No
copyright_date Param The year that the copyright was issued for the asset. Can only be accepted as a 4 digit year. String 2021 No
cs_plus_discount Response A percentage that correlates to the cs_plus_discount_code sent as a param. String "0.00" N/A
custom Param A flag on the asset that denotes if the asset is a custom asset. Can only be set by VST systems. Boolean true/false No
description Param Is a paragraph that describes the asset that is usually provided by the publisher. String A test paragraph that accurately describes the contents of the asset No
discount_codes Param A list of discount codes. Can only be set by VST systems. Array [discount, code] No
e_isbn Param The ISBN of the electronic version of an asset String 9780323059398E No
edition Param Numerical edition of the book from 0 - 127 Integer 4 No
epub_page_labels Param Denotes whether the ePub has page labels. Can only be set by VST systems. Boolean true/false No
floe Param Denotes whether FLOE objects are embedded in the book. Can only be set by VST systems. Boolean true/false No
fro Param Also known as faculty_review_only. Denotes whether an asset is for faculty review only. Boolean true/false No
fulfillment_only Param Used by custom sets of control distribution. Used to manage whether the asset is direct-to-student Boolean true/false No
id Response Database id of the asset Integer 34 N/A
identifiers Param

Parent key to set an asset's additional ISBNs.

Arrays with values: Acts as a PATCH request. Arrays are additive, so adding new values will not replace existing values. Note that if you add an ISBN for a key, a matching 10/13 will be generated.

Empty array: Does nothing, leaves the ISBNs in place.

null: Clears the field, but will be filled in with matching ISBNs if they exist for the matching 10/13 field.

Object
{
 "e_isbn_10": [
  "0123456789",
  "123456789X"
 ],
 "e_isbn_13": [
  "9780123456789",
  "9781234567890"
 ],
 "print_isbn_10": null,
 "print_isbn_13": null,
 "vbid10_alias" [],
 "vbid13_alias" []
}
No
imprint_id Param ID of the imprint to which this asset should belong Integer 24

Yes, on Create

 

No, on Update

imprint/id Response Unique identifier of the company-owned imprint Integer 1 N/A
imprint/name Response Name of the company-owned imprint String VitalSource Technologies N/A
imprint/resource_url Response API link to more information about the imprint String https://manage-dev.vitalsource.com/api/v4/imprints/1597 N/A
isbn Response Asset's ISBN String 978163234534 N/A
isbn_canonical Response The asset's ISBN without dashes String 978163234534 N/A
kind Param The asset's kind String book No
kind/id Response Unique identifier of the kind Integer 1 N/A
kind/value Response Name of the kind String   N/A
language Param Language code of the asset String ENG No
lifetime_print_limit Response

The amount of book pages a user is able to print over the course of their ownership, expressed as a percentage between 10-100. 

Can only be set by VST systems.

Integer 50 N/A
login_url Param Used by Online Resource and Online Resource Bundles to direct bookshelf users for SSO String https://www.vitalsource.com/signin No
off_sale_date Param The date to pull an asset out of distribution String (ISO-8061) 2025-12-31 No
on_sale_date Param The date to put an asset into distribution String (ISO-8061) 2020-12-31 No
parent_isbn Param The ISBN of the parent asset, if the VBID is one chapter of many String 978163234534 No
print_drm_limit Param The maximum number of pages that can be copied into the user's paste buffer at one time. Must be -1, or 2 or greater. -1 allows unlimited printing. Integer 1 No
print_isbn Param The ISBN that is used for the assets in their print distributions String 9780721604220 No
publication_date Param The date of publication for the asset String (ISO-8061) 2020-12-31 No
publisher/city Response The city in which the publisher/owning company is based String New York N/A
publisher/name Response The name of the publisher/owning company String McGraw Hill Higher Education (US) N/A
related_products/next_edition Param ISBN representing the asset that is the next edition String 978163234534 No
related_products/previous_edition Param ISBN representing the asset that is the previous edition String 978163234532 No
sales_rights Param A data object with the various right types and jurisdictions Object
"sales_rights": {
 "exclusive_rights": ["CA", "US"],
 "non_exclusive_rights": ["WORLD"],
 "not_for_sale": ["ROW"]
}
No
sampleable Param A flag on the asset that allows instructors to view the content without purchase Boolean true/false No
title Param The asset's title String Little Women

Yes, on Create

 

No, on Update

subtitle Param The asset's subtitle String Moving Beyond Capitalism for Our Health No
prices Param The list of JSON price objects Object
[{
 "currency": "USD",
 "duration": 30,
 "type": "digital_list_price",
 "amount": 5.99,
 "tax_inclusive": false
}]
No
prices/currency Param

Currency.

Note: currently we use this value to set the product store settings. This will not be supported long term.

String USD Required for each price JSON object in the prices array
prices/duration Param If price is a for a rental, then a duration needs to be specified Integer 90 Required for each price JSON object in the prices array, if setting a rental price
prices/type Param The type of price String digital_list_price Required for each price JSON object in the prices array
prices/amount Param The value of the price Decimal 5.99 Required for each price JSON object in the prices array
prices/tax_inclusive Param Describes if the price has tax included Boolean true/false No
variants Response An array of all the products of an asset, singles, rentals, etc... Array
[{
  "product_id": 1,
  "sku": 978123456,
  "duration": perpetual,
  "online_duration": 180 days,
  "updated": "2017-06-22T14:43:32Z",
  "prices": [{
      "price": 1.25,
      "currency": "USD",
      "type": "digital_list_price"
  }]
}]
N/A
variants/product_id Response The database product id Integer 3 N/A
variants/sku Response The SKU of the product String 9780123456789R90 N/A
variants/channel_ids Param An array of channel id info Array
"channel_ids": [
 {
  "sku": "9780123456789",
  "channel_id_inclusive_access": null
 }
]
No
variants/channel_ids/channel Response The channel corresponding to the node's channel identifier String inclusive_access N/A
variants/channel_ids/identifier Response The identifier for a node corresponding to the channel in that node String 9780333333333333 N/A
variants/channel_ids/sku Param The SKU for which you are setting the channel identifier String 9780123456789R180 No

variants/channel_ids

/channel_id_{{channel_name}}

Param

This is the identifier which you are trying to set for the SKU in the current node. To identify the channel, you must include both the channel_id_ and the the system name of the channel.

Currently the only supported channel for channel IDs is inclusive_access, making the only accepted value currently channel_id_inclusive_access.

String channel_id_inclusive_access No
variants/duration Response The duration the product can be kept for String 90 days N/A
variants/online_duration Response The online duration the product can be kept for String perpetual N/A
variants/updated Response The date the product was updated DateTime 2017-06-22T14:43:32Z N/A
variants/prices Response An array of price objects Array
[{
 "price": 1.25,
 "currency": "USD",
 "type": "digital_list_price"
}]
N/A
variants/prices/price Response The price of product Decimal 1.25 N/A
variants/prices/currency Response Currency of the price String USD N/A
variants/prices/type Response Type of price String digital_list_price N/A
variants/prices/company_id Response The ids of the companies that can use the price. _all means the price is good for all companies. A number is a price just for that company. String
  • _all
  • 214
N/A
vcs_authored Param Denotes if an EPUB was created by the VitalSource Studio ebook authoring tool. Can only be set by VST systems. Boolean true/false

No

callback_url Param Used by customer to be notified when ingestion finishes String "https://www.example.com/callback"

No

url Param A remote URL pointing to an EPUB or PDF file. Supplying a URL will trigger a file ingestion attempt. String  "https://www.example.com/filename"

No

Request Headers

X-VitalSource-API-Key: ALLNUMBERSANDCAPS
Accept: application/json

Request Body

{
 "copy_drm_limit": "2",
 "cs_plus_discount_code": "1",
 "edition": 2,
 "imprint_id": 1,
 "identifiers": { 
  "e_isbn_10": [
   "0123456789", 
   "123456789X"
  ],
  "e_isbn_13": [
   "9780123456789", 
   "9781234567890"
  ],
  "print_isbn_10": null,
  "print_isbn_13": null,
  "vbid10_alias": [],
  "vbid13_alias": [],
 }
 "kind": "book",
 "language": "ENG",
 "login_url": "https://www.vitalsource.com",
 "print_drm_limit": "2",
 "print_isbn": "9780123456789",
 "prices": [{
  "currency": "USD",
  "duration": "30",
  "type": "digital_list_price",
  "amount": "9.99",
  "tax_inclusive": "false"
 }], 
 "related_products": {
  "next_edition": "3410341003",
  "previous_edition": "3410341005",
 },
 "title": "The Medical Directory 2015, Two Volume Set",
 "sales_rights": {
  "exclusive_rights": ["CA", "US", "ROW", "WORLD"],
  "non_exclusive_rights": [],
  "not_for_sale": null
 },
 "subtitle": "Moving Beyond Capitalism for Our Health"
}

Response Body

{
 "vbid": "9780123456789",
 "author_name": "Todd Watkins",
 "author_first_name": "Todd",
 "author_last_name": "Watkins",
 "block_search": false,
 "book_format": {
  "name": "Page Fidelity",
  "value": "pdf",
  "dash2epub": false
 },
 "copy_drm_limit": 5,
 "copyright_date": "2009",
 "created": "2019-05-16T19:43:57Z",
 "cs_plus_discount": "50.00",
 "custom": false,
 "description": "A test paragraph that accurately describes the contents of the asset",
 "discount_codes": [
  "01",
  "AWS",
  "2020B2"
 ],
 "e_isbn": "9780323059398E",
 "edition": 4,
 "epub_page_labels": true,
 "floe": true,
 "fro": false,
 "fulfillment_only": true,
 "id": 340614,
 "identifiers": { 
  "e_isbn_10": [
   "0123456789", 
   "123456789X"
  ],
  "e_isbn_13": [
   "9780123456789", 
   "9781234567890"
  ],
  "print_isbn_10": [],
  "print_isbn_13": [],
  "vbid10_alias": [],
  "vbid13_alias": [],
 }
 "imprint": {
  "id": 1234,
  "name": "The Best Imprint",
  "resource_url": "https://manage.vitalsource.com/api/v4/imprints/1234"
 },
 "isbn": "3410341004",
 "isbn_canonical": "3410341004",
 "kind": {
  "id": 1,
  "value": "book"
 },
 "language": "English",
 "lifetime_print_limit": 50,
 "login_url": "https://www.vitalsource.com",
 "off_sale_date": "2029-12-31",
 "on_sale_date": "2029-12-31",
 "parent_id": "9780234501",
 "print_drm_limit": -1,
 "print_isbn": "9780123456789",
 "publication_date": "2009-12-31",
 "publisher": {
  "id": 1240,
  "city": "Chicago",
  "name": "Cody Test"
 },
 "related_products": {
  "next_edition": "3410341003",
  "previous_edition": "3410341005",
 },
 "title": "The Medical Directory 2015, Two Volume Set",
 "sales_rights": {
   "exclusive_rights": ["CA", "US", "ROW", "WORLD"],
   "non_exclusive_rights": [],
   "not_for_sale": null
 },
 "sampleable": false
 "title": "What a Wonderful Title",
 "subtitle": "Almost As Good As The Subtitle",
 "variants": [
  {
   "product_id": 638855,
   "sku": "3410341004",
   "channel_ids": [
   {
    "channel": "inclusive_access",
    "identifier": "identifier1"
   },
  {
   "channel": "vst_sampling",
   "identifier": "identifier2"
  }
 ],
 "duration": "perpetual",
 "online_duration": "365 days",
 "updated": "2019-05-23T18:55:57Z",
 "prices": [
 {
  "price": "10.00",
  "currency": "USD",
  "type": "digital_list_price",
  "company_id": "_all"
 },
 {
  "price": "20.00",
  "currency": "USD",
  "type": "agency_price",
  "company_id": "_all"
 },
 {
  "price": "20.00",
  "currency": "USD",
  "type": "print_list_price",
  "company_id": "_all"
 }
 ]
 },
 {
 "product_id": 639011,
 "sku": "3410341004R180",
 "channel_ids": [
 {
  "channel": "inclusive_access",
  "identifier": "identifier3"
 }
 ],
 "duration": "180 days",
 "online_duration": "180 days",
 "updated": "2019-05-22T18:08:47Z",
 "prices": [
 {
  "price": "404.00",
  "currency": "AUD",
  "type": "digital_list_price",
  "company_id": "_all"
 },
 {
  "price": "303.00",
  "currency": "GBP",
  "type": "digital_list_price",
  "company_id": "_all"
 },
 {
  "price": "30.00",
  "currency": "USD",
  "type": "digital_list_price",
  "company_id": "_all"
 },
 {
  "price": "10.00",
  "currency": "USD",
  "type": "agency_price",
  "company_id": "_all"
 },
{
 "price": "20.00",
 "currency": "USD",
 "type": "print_list_price",
 "company_id": "_all"
 }
 ]
 }
 ],
 "vcs_authored": true
}

Response Codes and Messages

HTTP & Error Codes Message
200 OK
500 Internal Server Error - Something went wrong with the server.
403 Forbidden - User not authorized. User is not the content owner or does not have access through set or manual rights.
422 User input error (See message for specific details)

 

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.