Update Schema Docs API

You could use the Update Schema Docs API to update the Schema Docs you've created.

Important: Updating the Schema Doc will not re-validate the bins if it is attached to one or more collections.

Note: Refer to Schema Docs Update Name API Documentation if you wish to rename your Schema Doc as you could only update the Schema Doc using the Update Schema Doc API.

Root

https://api.jsonbin.io/v3 

Route

/s/<SCHEMA_DOC_ID> 

Request Type

PUT

Request Headers

Below are the list of Accepted Request Headers if you are trying to Read a Schema Doc.

Request Header Value Required
Content-Type application/json Yes
X-Master-Key <X-Master-Key> Yes
Content-Type Required

Set the Content-Type header to application/json. This needs to be passed with every PUT request you make on the Update Schema Doc Route. Failing to pass this in the Header will result in an error.

X-Master-Key Required

X-Master-Key is nothing but your Core API Access Key. You will need this Key to access mostly any API end-point on JSONBin. You could find the key on the API Keys page.

Code Samples

  • cURL
  • JavaScript (ES6)
  • Python 3
  • Ruby
curl -v\
  -H "Content-Type: application/json" \
  -H "X-Schema-Doc-Name: User Validation" \
  -H "X-Master-Key: <YOUR_API_KEY>" \
  --data '<SCHEMA_VALIDATION_JSON>' \
  --request PUT \
  https://api.jsonbin.io/v3/s/<SCHEMA_DOC_ID>
let req = new XMLHttpRequest();

req.onreadystatechange = () => {
  if (req.readyState == XMLHttpRequest.DONE) {
    console.log(req.responseText);
  }
};

req.open("PUT", "https://api.jsonbin.io/v3/s/<SCHEMA_DOC_ID>", true);
req.setRequestHeader("Content-Type", "application/json");
req.setRequestHeader("X-Schema-Doc-Name", "User Validation");
req.setRequestHeader("X-Master-Key", "<YOUR_API_KEY>");
req.send(<SCHEMA_VALIDATION_JSON>);
import requests
url = 'https://api.jsonbin.io/v3/s/<SCHEMA_DOC_ID>'
headers = {
  'X-Master-Key': '<YOUR_API_KEY>'
}
data = {}

req = requests.get(url, json=data, headers=headers)
print(req.text)
require 'net/http'
require 'json'

uri = URI("https://api.jsonbin.io/v3/s/<SCHEMA_DOC_ID>")
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
  req = Net::HTTP::Put.new(uri)
  req['Content-Type'] = 'application/json'
  req['X-Master-Key'] = '<YOUR_API_KEY>'
  req.body = {<SCHEMA_VALIDATION_JSON>}.to_json

  http.request(req)
end

puts res.body

Request Response

Success Status Code: 200
{
  "record":{
    <SCHEMA_VALIDATION_JSON>
  },
  "metadata": {
    "id": "<SCHEMA_DOC_ID>",
    "name": "User Validation",
    "createdAt": <DATE / TIME>
  }
}
Error Status Code: 400, 401, 403, 404
{
  "message": "<Error Message>"
}

For more information on the error codes & errors you might possibly encounter, refer to the below section.

Error Reference

  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
You need to pass Content-Type set to application/json

You'll encounter this error if you are not passing the Content-Type header. Hence, pass the Content-Type header with a value of application/json.

You need to pass X-Master-Key in the header

You'll encounter this error if you are not passing the X-Master-Key header which is required to authenticate your request while creating Schema Docs or you've passed an incorrect key. In-order to fix this, pass the X-Master-Key header with a value of the API Key which you can find on the API Keys page.

Invalid X-Master-Key provided

You'll faec this error when the X-Master-Key is passed but the ID isn't valid.

Requests exhausted. Buy additional requests at https://jsonbin.io/pricing

You'll face this error when you've exhausted all your requests.

Schema Doc not found

Make sure you pass the correct Schema Doc ID or the Schema Doc doesn't belong to your account.

Create a Free Account

Create an Account View Pricing