JSON storage

 

This JSON storage service allows you to store and share JSON bins, and manipulate this data over a simple HTTP API.

You can create and share bin without account. You must create a free account to use HTTP API (in order to have an API key).

You can use this service for tutorials, sharing code examples or mocking requests. You can also use this REST API for websites, web and mobile applications on development and qualification environments.

You can see the user guide, and the API documentation to help you to use this hosting service

JSON data





Security key (Optionnal) *
Private **


* The security key is used to protect access, modification and deletion of the bin.
If security key is completed, it will be required to update and delete the bin.
The security key is required to request the private bins, but not required for the public bins.

** Private: The security key is required to request private bins.
The public bin can be requested by everyone who knows the URI without the security key.


User guide

You can use this user interface to store JSON that are accessible through the user interface and an HTTP API.

  • Copy and paste, drag and drop a JSON file or directly type in the editors above.
    You can also click on "load JSON from URL" button to load your JSON data from a URL (Must be https).
    You can also click on "Browse JSON file" button to load your JSON data from a local file.
  • If you want to protect your JSON data from modification and deletion, fill in the "security key" field.
    If you want to protect access to your JSON data, check the "private" checkbox field.
  • Clicks on "Save" button in order to save your JSON data.
    The URI to directly access this JSON will be displayed.

Note: JSON data is limited to 100 KB per bin.

You can also use a REST API, see below.

API documentation

You can download the OpenAPI definition here or consult the documentation below.

You must create an account to use the API (free). Find your API key in page "My Account".
Note: the old API (without account) is still available for former users.

Usage limits:

  • 10000 requests per month
  • Bin is limited to 100 KB
  • Quota for an account: 10 MB

  • Request JSON
  • Create JSON
  • Update JSON
  • Partially update JSON
  • Delete JSON
  • Request all bin id
GET /api/json-storage/bin/:id

Return a json bin.

Headers
Hearder codeDescriptionData typeRequired
Security-keyRequired to request a private bin.StringOptionnal
JavaScript example:
const request = new XMLHttpRequest();
request.open("GET", "https://json.extendsclass.com/bin/:id", true);
request.onreadystatechange = () => {
	alert(request.responseText);
};
request.send();
Response
Success: 200
{
	-- Your JSON data
}
Error: 404
{
	"status": 1
	"message": "Bin not found"
}
Error: 422
{
	"status": 1
	"message": "Id must be specified"
}
Error: 429
{
	"status": 1
	"message": "you have exceeded the call limit"
}

POST /api/json-storage/bin

Create a json bin.

Headers
Hearder codeDescriptionData typeRequired
Api-keyYour api key.StringRequired
Security-keyThe security key of your bin (maximum of 256 characters).
The security key allows to protect your bin against requests, modifications and deletions.
The security key is required to update and delete your bin.
The security key is required to request the private bins, but not required for the public bins.
StringOptionnal
PrivateThe security key is required to request private bins. Public by default.BooleanOptionnal
Request
{
	-- Your JSON data
}
JavaScript example:
const request = new XMLHttpRequest();
request.open("POST", "https://json.extendsclass.com/bin", true);
request.setRequestHeader("Api-key", "Your API key");
request.setRequestHeader("Security-key", "Your security key");
request.setRequestHeader("Private", "true");
request.onreadystatechange = () => {
};
request.send('{"name": "my JSON"}');
Response
Success: 201
{
	"status": 0,
	"uri": "https://json.extendsclass.com/bin/:id",
	"id": ":id"
}
Error: 401
{
	"status": 1
	"message": "Wrong API key"
}
Error: 413
{
	"status": 1
	"message": "JSON data too large"
}
Error: 413
{
	"status": 1
	"message": "Security key is too large"
}
Error: 422
{
	"status": 1
	"message": "Id can not be specified"
}
Error: 422
{
	"status": 1
	"message": "Security key is required for private bin"
}
Error: 429
{
	"status": 1
	"message": "you have exceeded the call limit"
}
GET /api/json-storage/bins

Return all bin id.

Headers
Hearder codeDescriptionData typeRequired
Api-keyYour api key.StringRequired
JavaScript example:
const request = new XMLHttpRequest();
request.open("GET", "https://json.extendsclass.com/bins", true);
request.setRequestHeader("Api-key", "Your API key");
request.onreadystatechange = () => {
	alert(request.responseText);
};
request.send();
Response
Success: 200
[
	-- Your bin id
]
Error: 401
{
	"status": 1
	"message": "Wrong API key"
}
Error: 429
{
	"status": 1
	"message": "you have exceeded the call limit"
}

PUT /api/json-storage/bin/:id

Update a json bin.

Headers
Hearder codeDescriptionData typeRequired
Security-keyRequired to update a bin protected by a security key.StringOptionnal
Request
{
	-- Your JSON data updated
}
JavaScript example:
const request = new XMLHttpRequest();
request.open("PUT", "https://json.extendsclass.com/bin/:id", true);
request.setRequestHeader("Security-key", "Your security key");
request.onreadystatechange = () => {
};
request.send('{"name": "my updated JSON"}');
Response
Success: 200
{
	"status": 0,
	"data": -- your JSON data updated
}
Error: 401
{
	"status": 1
	"message": "Wrong security key"
}
Error: 404
{
	"status": 1
	"message": "Bin not found"
}
Error: 413
{
	"status": 1
	"message": "JSON data too large"
}
Error: 422
{
	"status": 1
	"message": "Id must be specified"
}
Error: 429
{
	"status": 1
	"message": "you have exceeded the call limit"
}
PATCH /api/json-storage/bin/:id

Partially update a json bin with JSON Merge Patch (default) or JSON PATCH.

Headers
Hearder codeDescriptionData typeRequired
Security-keyRequired to update a bin protected by a security key.StringOptionnal
Content-typeIf you want to use the JSON-PATCH format then put the value: application/json-patch+jsonStringOptionnal
Request
{
	-- Your JSON Merge Patch
}
JavaScript example:
const request = new XMLHttpRequest();
request.open("PATCH", "https://json.extendsclass.com/bin/:id", true);
request.setRequestHeader("Content-type", "application/merge-patch+json");
request.setRequestHeader("Security-key", "Your security key");
request.onreadystatechange = () => {
};
request.send('{"name": "my JSON Merge Patch", "name2": null}');
JavaScript example with JSON-PATCH:
const request = new XMLHttpRequest();
request.open("PATCH", "https://json.extendsclass.com/bin/:id", true);
request.setRequestHeader("Content-type", "application/json-patch+json");
request.setRequestHeader("Security-key", "Your security key");
request.onreadystatechange = () => {
};
request.send('[{"op":"add","path":"/arr/1","value":12}]');
Response
Success: 200
{
	"status": 0,
	"data": -- your JSON data updated
}
Error: 400 (For JSON PATCH Only)
{
	"status": 1
	"message": "Path '/arr2/1' not found"
}
Error: 401
{
	"status": 1
	"message": "Wrong security key"
}
Error: 404
{
	"status": 1
	"message": "Bin not found"
}
Error: 413
{
	"status": 1
	"message": "JSON data too large"
}
Error: 422
{
	"status": 1
	"message": "Id must be specified"
}
Error: 429
{
	"status": 1
	"message": "you have exceeded the call limit"
}
DELETE /api/json-storage/bin/:id

Delete a json bin.

Headers
Hearder codeDescriptionData typeRequired
Security-keyRequired to delete a bin protected by a security key.StringOptionnal
JavaScript example:
const request = new XMLHttpRequest();
request.open("DELETE", "https://json.extendsclass.com/bin/:id", true);
request.setRequestHeader("security-key", "Your security key");
request.onreadystatechange = () => {
};
request.send();
Response
Success: 200
{
	"status": 0
}
Error: 401
{
	"status": 1
	"message": "Wrong security key"
}
Error: 404
{
	"status": 1
	"message": "Bin not found"
}
Error: 422
{
	"status": 1
	"message": "Id must be specified"
}
Error: 429
{
	"status": 1
	"message": "you have exceeded the call limit"
}

The HTTP API supports cross-origin resource sharing (CORS requests are accepted from any origin), you will not have any cross domain issues.

Why store JSON ?

Sometimes we needed a quick location to store a configuration file or data. We do not always have the possibility to easily make these data available online

This hosting service allows you to do this, store and make available online :)



Load JSON data
URL
Security key
Please enter the security key in order to view your private bin:
You can report a bug or give feedback by adding a comment (below) or by clicking "Contact me" link (at the top right hand corner of the page).

Comments




Dev App Store-2020-03-29 23:26
I din't catch exactly hot I can use my pricate key afte the /bin/ section help me


Dev-2020-03-30 00:09
Hello I am having hard time to understanding how I can pass and get this request , so my question is, jow can I add my key after /bin/?


Cyril (Admin)-2020-05-31 10:03
Hello, you must put your key in a http header "Security-key".
Javascript code: request.setRequestHeader("Security-key", "Your security key");


snthsnth-2020-05-30 21:44
What do you mean by partially update?


Cyril (Admin)-2020-05-31 10:02
Hi, this allows to partially update the stored json, without having to send the object completely;
More information here: https://tools.ietf.org/html/rfc7386


aoesnth-2020-05-31 23:04
That was what I was thinking, thanks. When using PUT and not sure what PATCH was, I thought I would have to make a GET request, add some JSON in it, and "PUT" that in the bin.


nthnth-2020-06-01 00:11
Could you please turn the storage you said can be put in a bin (100 ko) into a unit that's more common, like KB?


snthsnth-2020-06-01 19:57
I have found a bug, which is that you cannot fetch/GET the JSON data due to CORS "NO-ACCESS CONTROL ORIGIN HEADER" policy, which I found using devtool's inspect element.
You mind to disable it? Because right now I have to use a proxy (http://cors-anywhere.herokuapp.com/<Thebin>)
More information here: https://medium.com/@dtkatz/3-ways-to-fix-the-cors-error-and-how-access-control-allow-origin-works-d97d55946d9


Cyril (Admin)-2020-06-01 21:55
It is fixed, I added the header "Access-Control-Allow-Origin".


snthsnth-2020-06-02 03:18
For some reason it is showing this error


snthsnth-2020-06-02 03:18
It is showing this error: https://backendonfrontend.kudos.repl.co/Capture.PNG


snthsnth-2020-06-05 21:43
Are you solving it?


Cyril (Admin)-2020-06-07 15:43
Sorry ... Yes, it is fixed!


snthsnth-2020-06-08 04:04
Thank you


Jerry-2020-09-11 09:44
Where/how do I use my API key? I suppose in the header of the request, but only Security-Key is documented.


Cyril (Admin)-2020-09-11 23:00
Hello,

Yes, you have to send the api key in the header, but only when you create a bin (See "Create JSON" in the documentation).


Béla-2020-10-23 11:21
Hello,
thank you for your free site! I'm trying to use it in my app.
When logging in, how do I access my bins, how do I create new ones or delete old ones.


Cyril (Admin)-2020-10-23 13:49
Hello,
there is a documention, see section "API documentation".
Note: there are limitations in the number of calls.


Anonymous-2020-10-23 16:55
Thank you for your reply! I am sorry, I wasn't very clear. What I meant was, when I open my account through a browser, is there a way to access my bins?
I forgot some of my ID's and don't know how to find my data.
And is there an easy way to get from my account to this page? It seems I always have to return to the extendsclass.homepage and from there go to the json storage.

I managed to access download and upload data via a Unity3d program using your API. Thanks a million for that!! Really great servic!


Cyril (Admin)-2020-10-26 21:50
Hi,

I added a new endpoint to retrieve all id linked to your API key: /api/json-storage/bins
I'm looking to list the id's on this page soon.
Regards,



Béla-2020-10-28 09:23
Wow. Thank you. That's much appreciated!


Dev stud-2020-12-06 14:06
{"status": 1, "message": "you have exceeded the call limit (10000)"} i got this response after only 10-15 calls


Cyril (admin)-2020-12-06 15:07
Hello,

can you email me (contact@extendsclass.com) with your api key and your endpoint ? Thanks.


Michael-2021-06-04 14:16
Hej, having same issue right after saving the bin
https://json.extendsclass.com/bin/70d93e8e1a41 (random data)
Using Volley and getting: E/Volley: [903] NetworkUtility.shouldRetryException: Unexpected response code 429 in Android Studio.
Thank you in advance for the assistance.
Br, Michael


Sora Shiro-2021-01-07 13:53
how can i get latest version of my bin?


Sora Shiro-2021-01-09 15:23
Admins pls help me, I have a bin, I use "get" on PC and get latest bin but when I try to do it on android, data isn't refresh, I use Vue


Cyril (Admin)-2021-02-11 18:40
Hello,
Sorry for my late response. You can only get the lastest version.
Vue should probably use a cache for performance. It should be seen to indicate not to use the cache.


Gobi-2021-01-17 18:53
I have tried Request, Create, (partially & ) Update and Delete Json, All works! Wonderful.

But to my case, I don't know how to solve it, by which function I have to use?

I have a bin:

{ users: [
{"name": "Albert", "age": "27"}
]}

and I want to add {"name": "May", "age": "25"} to the bin and want it become:

{ users: [
{"name": "Albert", "age": "27"},
{"name": "May", "age": "25"}
]}

What should I do?


Cyril (Admin)-2021-02-11 18:44
Hello,
JSON Merge Patch does not allow to add, remove, or change array elements except by explicitly replacing the whole array :(
The solution would be that I implement JSON PATCH!


Cyril (Admin)-2021-02-11 23:15
Hi,

I added JSON Patch format!

You must put the value "application/json-patch+json" in the "content-type" header.

And you payload must be:
[{"op":"add","path":"/users/1","value":{"name":"May","age":"25"}}]


Dan-2021-03-02 04:56
Is it possible to see how much of the 10000 request quota has been used (or is remaining)?

I don't think I'm anywhere near it, but I'd like to be able to estimate how much use I could have before I hit the limit.


Cyril (admin)-2021-03-14 09:32
Hello, good idea, it is noted!


Cyril (Admin)-2021-03-14 10:59
Done! The endpoint /api/json-storage/bins returns the header "X-Counter" which contains the quoto used.
This information is now displayed on this page.


Developer-2021-06-03 09:15
How to get response in fetch() or any async apis in javascript?


André-2022-02-26 16:22
I'm getting

{"status": 1, "message": "you have exceeded the call limit (10000)"}

right after creating the endpoint https://json.extendsclass.com/bin/dad1f8acac3e


Cyril (Admin)-2022-02-26 18:36
Hi, It is fixed (Some people abuse the service a bit ... sorry).


idul-2022-03-25 07:02
Does bin get deleted after a period of time?