Simple REST for app variables and data

Use any Icetop Database URL as a REST endpoint. Append a file extension like .json or .xml and send requests from your favorite HTTPS client.

Quick Start Tool

Try our cloud-based variable tooling (iput and iget) on your OS:

Language Connectors

Icetop provides connectors with easy put and get functions:

Generic (curl)

For terminal and shell environments.

Python

Drop-in module with simple API.

Dart & Flutter

Works in Flutter with `http` dependency.

Generic PUT — Writing Data

Send a PUT request. Two query parameters matter: proj (project name) and suburl (endpoint path under the project).

curl -X PUT \
  -d '{"first": "Chris", "last": "Jack"}' \
  "https://icetop.acnodelabs.com/icetop.php?proj=family&suburl=/users/chris/name.json"

On success, the server returns 200 OK and echoes your data:

{"first": "Chris", "last": "Jack"}

To update, repeat the PUT with new data. Previous values remain recorded. You can also PUT data manually using the HTML form.

Generic GET — Reading Data

Read data with a simple GET request:

curl "https://icetop.acnodelabs.com/icetop.php?proj=family&suburl=/users/chris/name.json"

On success, the server returns 200 OK and the latest value:

{"first": "Chris", "last": "Jack"}

GET in Python — Reading Data

Download icetop.py and place it in your project folder, or fetch via curl:

curl -o icetop.py \
  "https://icetop.acnodelabs.com/icetop.php?proj=scripts&suburl=/scripts/icetop/icetop.py"

Read data with a simple function call:

import icetop

icetop.proj = "MyProject"
# Only override if required; default is icetop.acnodelabs.com
icetop.server = "icetopserver.com"

print(icetop.get("/users/jack/name.json"))

Response:

{"first": "Chris", "last": "Jack"}

PUT in Python — Writing Data

import icetop

icetop.proj = "MyProject"
icetop.put("/users/jack/name.json", '{"first": "Chris", "last": "Jack"}')
res = icetop.get("/users/jack/name.json")
print(res)

Response:

{"first": "Chris", "last": "Jack"}

To update data, repeat the PUT request with new values. Previous records remain stored.

Get in Dart & Flutter — Reading Data

Download icetop.dart and place it in your project folder, or fetch via curl:

curl -o icetop.dart \
  "https://icetop.acnodelabs.com/icetop.php?proj=scripts&suburl=/scripts/icetop/icetop.dart"

Read data:

import 'icetop.dart';

IceTop.proj = 'MyProject';
// Only override if required; default is icetop.acnodelabs.com
IceTop.server = 'icetopserver.com';

final resp = IceTop().Get('/users/jack/name.json');

Response:

{"first": "Chris", "last": "Jack"}

Put in Dart & Flutter — Writing Data

import 'icetop.dart';

IceTop.proj = 'MyProject';
// Only override if required; default is icetop.acnodelabs.com
IceTop.server = 'icetopserver.com';

final resp = IceTop().Put('/users/jack/name.json', '{"first": "Chris", "last": "Jack"}');

Response:

{"first": "Chris", "last": "Jack"}

Flutter: add dependency http: ^0.13.5 in your pubspec.yaml.