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
* 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.
You can use this user interface to store JSON that are accessible through the user interface and an HTTP API.
Note: JSON data is limited to 100 KB per bin.
You can also use a REST API, see below.
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:
Return a json bin.
HeadersHearder code | Description | Data type | Required |
---|---|---|---|
Security-key | Required to request a private bin. | String | Optionnal |
const request = new XMLHttpRequest(); request.open("GET", "https://json.extendsclass.com/bin/:id", true); request.onreadystatechange = () => { alert(request.responseText); }; request.send();
{ -- Your JSON data }
{ "status": 1 "message": "Bin not found" }
{ "status": 1 "message": "Id must be specified" }
{ "status": 1 "message": "you have exceeded the call limit" }
Create a json bin.
HeadersHearder code | Description | Data type | Required |
---|---|---|---|
Api-key | Your api key. | String | Required |
Security-key | The 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. | String | Optionnal |
Private | The security key is required to request private bins. Public by default. | Boolean | Optionnal |
{ -- Your JSON data }
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"}');
{ "status": 0, "uri": "https://json.extendsclass.com/bin/:id", "id": ":id" }
{ "status": 1 "message": "Wrong API key" }
{ "status": 1 "message": "JSON data too large" }
{ "status": 1 "message": "Security key is too large" }
{ "status": 1 "message": "Id can not be specified" }
{ "status": 1 "message": "Security key is required for private bin" }
{ "status": 1 "message": "you have exceeded the call limit" }
Return all bin id.
HeadersHearder code | Description | Data type | Required |
---|---|---|---|
Api-key | Your api key. | String | Required |
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();
[ -- Your bin id ]
{ "status": 1 "message": "Wrong API key" }
{ "status": 1 "message": "you have exceeded the call limit" }
Update a json bin.
HeadersHearder code | Description | Data type | Required |
---|---|---|---|
Security-key | Required to update a bin protected by a security key. | String | Optionnal |
{ -- Your JSON data updated }
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"}');
{ "status": 0, "data": -- your JSON data updated }
{ "status": 1 "message": "Wrong security key" }
{ "status": 1 "message": "Bin not found" }
{ "status": 1 "message": "JSON data too large" }
{ "status": 1 "message": "Id must be specified" }
{ "status": 1 "message": "you have exceeded the call limit" }
Partially update a json bin with JSON Merge Patch (default) or JSON PATCH.
HeadersHearder code | Description | Data type | Required |
---|---|---|---|
Security-key | Required to update a bin protected by a security key. | String | Optionnal |
Content-type | If you want to use the JSON-PATCH format then put the value: application/json-patch+json | String | Optionnal |
{ -- Your JSON Merge Patch }
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}');
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}]');
{ "status": 0, "data": -- your JSON data updated }
{ "status": 1 "message": "Path '/arr2/1' not found" }
{ "status": 1 "message": "Wrong security key" }
{ "status": 1 "message": "Bin not found" }
{ "status": 1 "message": "JSON data too large" }
{ "status": 1 "message": "Id must be specified" }
{ "status": 1 "message": "you have exceeded the call limit" }
Delete a json bin.
HeadersHearder code | Description | Data type | Required |
---|---|---|---|
Security-key | Required to delete a bin protected by a security key. | String | Optionnal |
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();
{ "status": 0 }
{ "status": 1 "message": "Wrong security key" }
{ "status": 1 "message": "Bin not found" }
{ "status": 1 "message": "Id must be specified" }
{ "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.
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 :)
Comments
Dev App Store-2020-03-29 23:26
Dev-2020-03-30 00:09
Cyril (Admin)-2020-05-31 10:03
Javascript code: request.setRequestHeader("Security-key", "Your security key");
snthsnth-2020-05-30 21:44
Cyril (Admin)-2020-05-31 10:02
More information here: https://tools.ietf.org/html/rfc7386
aoesnth-2020-05-31 23:04
nthnth-2020-06-01 00:11
snthsnth-2020-06-01 19:57
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
snthsnth-2020-06-02 03:18
snthsnth-2020-06-02 03:18
snthsnth-2020-06-05 21:43
Cyril (Admin)-2020-06-07 15:43
snthsnth-2020-06-08 04:04
Jerry-2020-09-11 09:44
Cyril (Admin)-2020-09-11 23:00
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
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
there is a documention, see section "API documentation".
Note: there are limitations in the number of calls.
Anonymous-2020-10-23 16:55
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
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
Dev stud-2020-12-06 14:06
Cyril (admin)-2020-12-06 15:07
can you email me (contact@extendsclass.com) with your api key and your endpoint ? Thanks.
Michael-2021-06-04 14:16
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
Sora Shiro-2021-01-09 15:23
Cyril (Admin)-2021-02-11 18:40
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
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
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
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
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
Cyril (Admin)-2021-03-14 10:59
This information is now displayed on this page.
Developer-2021-06-03 09:15
André-2022-02-26 16:22
{"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
idul-2022-03-25 07:02