Steemit API Portal
Steemit is the social media platform where everyone gets paid for creating and curating content.
The following API documents provide details on how to interact with the Steem blockchain database API which can get information on accounts, content, blocks and much more!
The developer portal will also serve as a toolbox for steem clients, libraries, and language wrappers.
Steemit Portal was built with Jekyll version 3.1.6, but should support newer versions as well.
Install the dependencies with Bundler:
$ bundle install
jekyll commands through Bundler to ensure you're using the right versions:
$ bundle exec jekyll serve
You can now test locally at
Optionally, when running
jekyll commands through Bundler, append
--host x.x.x.x with the external IP address of the server to be able to connect remotely:
$ bundle exec jekyll serve --host x.x.x.x
This application uses
rake (Ruby's make command) to execute maintenance tasks. You can see the complete list of tasks by typing:
$ bundle exec rake -T
When you're ready to deploy this application to production, make sure you have nothing to commit and your working tree is clean, then type:
$ bundle exec rake production:deploy
The above command will deploy the current site to
To reverse a previous bad deploy, use:
$ bundle exec rake production:rollback
Managing API Definitions
This application maintains a copy of API Definitions in
_data/apidefinitions in YAML format. The purpose of these
.yml files is to reflect details of each method.
In order to accurately synchronize the
.yml files, we've added a
rake task to evaluate the current state of the actual API, as reflected by the
This command will check the current state of the API Definitions, report any differences, and write a new
.yml file if these differences exist:
$ bundle exec rake scrape:api_defs
Definitions for: account_by_key_api, methods: 1 Definitions for: account_history_api, methods: 3 Definitions for: condenser_api, methods: 85 Definitions for: database_api, methods: 46 Definitions for: follow_api, methods: 10 Definitions for: jsonrpc, methods: 2 Definitions for: market_history_api, methods: 7 Definitions for: network_broadcast_api, methods: 3 Definitions for: tags_api, methods: 20 Definitions for: witness_api, methods: 2 Methods added or changed: 0
If you're interested in running the scrape against a different server, run the command like so:
$ TEST_NODE=<some server url> bundle exec rake scrape:api_defs
An example pointing at the steemitdev testnet:
$ TEST_NODE=https://testnet.steemitdev.com bundle exec rake scrape:api_defs
To import all new tutorials from all known tutorial repositories, which is the typical use case:
bundle exec rake scrape:tutorials
This command will check for new tutorials in
devportal-tutorials-js and import them into this project.
bundle exec rake scrape:tutorials:js
To force update on a particular tutorial, use the following command:
bundle exec rake scrape:tutorials:js[1,true]
1 represents the numerical prefix like in
true instructs the task to overwrite what's there, even if it exists.
Other Targeted imports supported are
:js using the same syntax.
bundle exec rake scrape:tutorials:py
bundle exec rake scrape:tutorials:rb
To test all
curl examples, use the following
$ bundle exec rake test:curl
Or, to test specific API namespaces, use:
$ bundle exec rake test:curl["follow_api witness_api"]
If you're interested in running this test against a different server, run the command like so
$ TEST_NODE=<some server url> bundle exec rake test:curl
An example pointing at the steemitdev testnet
$ TEST_NODE=https://testnet.steemitdev.com bundle exec rake test:curl