diff --git a/_apidefinitions/broadcast-ops-communities.md b/_apidefinitions/broadcast-ops-communities.md
index 6de557fb9ce21ce96d2f61af11aebc78654a7079..63615ccfb4bff165436140e9fe2963d63625bcb5 100644
--- a/_apidefinitions/broadcast-ops-communities.md
+++ b/_apidefinitions/broadcast-ops-communities.md
@@ -32,6 +32,9 @@ Ops:
 {% if op.disabled %}
 <li class="warning"><strong><small>Disabled</small></strong></li>
 {% endif %}
+{% if op.client_docs %}
+<li class="info"><strong><small>SDK Reference</small></strong>{% for client_doc in op.client_docs %}<small>{{ client_doc | markdownify }}</small>{% endfor %}</li>
+{% endif %}
 {% assign keywords = op.name | keywordify | escape %}
 {% assign search_url = '/search/?q=' | append: keywords | split: '_' | join: ' ' %}
 <li class="info"><strong><small><a href="{{ search_url | relative_url }}">Related <i class="fas fa-search fa-xs"></i></a></small></strong></li>
diff --git a/_apidefinitions/broadcast-ops.md b/_apidefinitions/broadcast-ops.md
index 37ca95dc5393d3930d781c7b6260db05a4940a61..f8f9b51b4ab6bcb5be79fa379884193aea5ae3ad 100644
--- a/_apidefinitions/broadcast-ops.md
+++ b/_apidefinitions/broadcast-ops.md
@@ -44,6 +44,9 @@ Virtual Ops:
 {% if op.disabled %}
 <li class="warning"><strong><small>Disabled</small></strong></li>
 {% endif %}
+{% if op.client_docs %}
+<li class="info"><strong><small>SDK Reference</small></strong>{% for client_doc in op.client_docs %}<small>{{ client_doc | markdownify }}</small>{% endfor %}</li>
+{% endif %}
 {% assign keywords = op.name | keywordify | escape %}
 {% assign search_url = '/search/?q=' | append: keywords | split: '_' | join: ' ' %}
 <li class="info"><strong><small><a href="{{ search_url | relative_url }}">Related <i class="fas fa-search fa-xs"></i></a></small></strong></li>
diff --git a/_data/apidefinitions/account_by_key_api.yml b/_data/apidefinitions/account_by_key_api.yml
index 4b66e95f27f45fe225f0230a71bfffa27472c6d2..21380659b52b26f351730fba771153d036bd5e01 100644
--- a/_data/apidefinitions/account_by_key_api.yml
+++ b/_data/apidefinitions/account_by_key_api.yml
@@ -14,3 +14,7 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"account_by_key_api.get_key_references", "params":{"keys":["STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH"]},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-key-references)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-key-references)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/account_history_api.yml b/_data/apidefinitions/account_history_api.yml
index 42ed5e3c1cbb78785e334685acf53cb0bbf4ac6b..462b93340f19d2ef8cdfb397fb29fd9d14b64634 100644
--- a/_data/apidefinitions/account_history_api.yml
+++ b/_data/apidefinitions/account_history_api.yml
@@ -28,6 +28,10 @@
       expected_curl_responses:
         - Could not find API account_history_api
         - Could not find API account_history_api
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-history)'
+        - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-account-history)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
     - api_method: account_history_api.get_ops_in_block
       purpose: Returns all operations contained in a block.
       parameter_json: {"block_num":0,"only_virtual":false}
@@ -49,6 +53,10 @@
       expected_curl_responses:
         - Could not find API account_history_api
         - Could not find API account_history_api
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-ops-in-block)'
+        - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-ops-in-block)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
     - api_method: account_history_api.get_transaction
       deprecated: true
       purpose: Returns the details of a transaction based on a transaction id.
@@ -69,6 +77,10 @@
         - '{"jsonrpc":"2.0", "method":"account_history_api.get_transaction", "params":{"id":"6fde0190a97835ea6d9e651293e90c89911f933c"}, "id":1}'
       expected_curl_responses:
         - Could not find API account_history_api
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-transaction)'
+        - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-transaction)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
     - api_method: account_history_api.enum_virtual_ops
       since: Mysterious Future
       purpose: 
@@ -85,3 +97,5 @@
             "op": {}
           }]
         }
+      client_docs:
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/block_api.yml b/_data/apidefinitions/block_api.yml
index 578df641b874e9453d449c3811fa140e9e607d2d..6017e92f99830c05ebc3c50f7be113134810e574 100644
--- a/_data/apidefinitions/block_api.yml
+++ b/_data/apidefinitions/block_api.yml
@@ -43,6 +43,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"block_api.get_block", "params":{"block_num":62396745},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-block)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-block)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/BlockApi)'
   - api_method: block_api.get_block_header
     purpose: "Retrieve a block header of the referenced block, or null if no matching
       block was found.\n\n**Parameters:**\n  \n  * `block_num:int` - Height of the
@@ -68,3 +72,7 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"block_api.get_block_header", "params":{"block_num":62396745},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-block-header)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-block-header)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/BlockApi)'
diff --git a/_data/apidefinitions/bridge.yml b/_data/apidefinitions/bridge.yml
index 7377644bcc750670b71e816473ecae9b746f61a5..ff764a31af71c665475ebebbd69b0fc0cc7a49d5 100644
--- a/_data/apidefinitions/bridge.yml
+++ b/_data/apidefinitions/bridge.yml
@@ -99,9 +99,323 @@
       }]
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"bridge.account_notifications", "params":{"account":"alice","limit":100}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_account_notifications)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.does_user_follow_any_lists
+    purpose: Checks if a given observer follows any blacklists or mute lists.
+    parameter_json: '{"observer":"alice"}'
+    expected_response_json: |
+      false
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.does_user_follow_any_lists", "params":{"observer":"alice"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_does_user_follow_any_lists)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.get_account_posts
+    purpose: |
+      Lists posts related to a given account.
+      
+      * `sort` - Supported values:
+        * `blog` - top posts authored by given account (excluding posts to communities - unless explicitely reblogged) plus reblogs ranked by creation/reblog time
+        * `feed` - top posts from blogs of accounts that given account is following ranked by creation/reblog time, not older than last month
+        * `posts` - op posts authored by given account, newer first   comments - replies authored by given account, newer first
+        * `replies` - replies to posts of given account, newer first
+        * `payout` - all posts authored by given account that were not yet cashed out
+      * `account`: account name, points to valid account
+      * `start_author`: author account name, if passed must be passed with `start_permlink` [optional]
+      * `start_permlink`: post permlink of given author, point to valid post, paging mechanism [optional]
+      * `limit`: if omitted the server will use the default value of 20 [optional]
+      * `observer`: ignored for `blog`, feed and `replies`, otherwise when passed has to point to valid account used to fill blacklist stats and mark posts of authors blacklisted by observer, at this time ignored [optional] 
+    parameter_json: {"sort":"blog", "account": "alice", "limit": 1}
+    expected_response_json: |
+      [
+        {
+          "post_id": 101867403,
+          "author": "hiveio",
+          "permlink": "around-the-hive-reflections",
+          "category": "hiveecosystem",
+          "title": "Around the Hive: Reflections",
+          "body": "It's been a busy year so far for developers on Hive. Layer 2 solutions are in progress, key optimization is an ongoing priority ...",
+          "json_metadata": {
+            "tags": [
+              "hiveecosystem"
+            ],
+            "users": [
+              "blocktrades",
+              "howo"
+            ],
+            "image": [
+              "https://images.hive.blog/768x0/https://files.peakd.com/file/peakd-hive/hiveio/pKjrNcbK-Hive-Wallpaper-1920x1080.png",
+              "https://images.hive.blog/DQmR3iwCn9yvwXDXfuNjmMX6FrjAvFfYQWgA4QRckpens1j/hive%20dividers-02.png"
+            ],
+            "links": [
+              "https://gitlab.syncad.com/hive/hive-whitepaper/-/blob/master/technical-vision/infographic.pdf"
+            ],
+            "app": "hiveblog/0.1",
+            "format": "markdown",
+            "description": "The strength of Hive lies in our decentralization."
+          },
+          "created": "2021-02-14T08:16:03",
+          "updated": "2021-02-14T08:16:03",
+          "depth": 0,
+          "children": 15,
+          "net_rshares": 93531156115025,
+          "is_paidout": true,
+          "payout_at": "2021-02-21T08:16:03",
+          "payout": 0,
+          "pending_payout_value": "0.000 HBD",
+          "author_payout_value": "0.000 HBD",
+          "curator_payout_value": "0.000 HBD",
+          "promoted": "0.000 HBD",
+          "replies": [],
+          "author_reputation": 69.29,
+          "stats": {
+            "hide": false,
+            "gray": false,
+            "total_votes": 129,
+            "flag_weight": 0
+          },
+          "url": "/hiveecosystem/@hiveio/around-the-hive-reflections",
+          "beneficiaries": [],
+          "max_accepted_payout": "0.000 HBD",
+          "percent_hbd": 10000,
+          "active_votes": [],
+          "blacklists": []
+        }
+      ]
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.get_account_posts", "params":{"sort":"blog", "account": "alice", "limit": 1}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_get_account_posts)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.get_community_context
+    purpose: Gets the role, subscription status, and title for a given account in a given community.
+    parameter_json: {"name": "hive-111111", "account": "therealwolf"}
+    expected_response_json: {"role":"admin","subscribed":true,"title":"Witness: @therealwolf"}
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.get_community_context", "params":{"name": "hive-111111", "account": "therealwolf"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_get_community_context)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.get_discussion
+    purpose: Gives a flattened discussion tree starting at given post.
+    parameter_json: {"author": "hiveio", "permlink": "around-the-hive-reflections", "observer": "alice"}
+    expected_response_json: |
+      {"hiveio/around-the-hive-reflections":
+        {
+          "post_id": 101867403,
+          "author": "hiveio",
+          "permlink": "around-the-hive-reflections",
+          "category": "hiveecosystem",
+          "title": "Around the Hive: Reflections",
+          "body": "It's been a busy year so far for developers on Hive. Layer 2 solutions are in progress, key optimization is an ongoing priority ...",
+          "json_metadata": {
+            "tags": [
+              "hiveecosystem"
+            ],
+            "users": [
+              "blocktrades",
+              "howo"
+            ],
+            "image": [
+              "https://images.hive.blog/768x0/https://files.peakd.com/file/peakd-hive/hiveio/pKjrNcbK-Hive-Wallpaper-1920x1080.png",
+              "https://images.hive.blog/DQmR3iwCn9yvwXDXfuNjmMX6FrjAvFfYQWgA4QRckpens1j/hive%20dividers-02.png"
+            ],
+            "links": [
+              "https://gitlab.syncad.com/hive/hive-whitepaper/-/blob/master/technical-vision/infographic.pdf"
+            ],
+            "app": "hiveblog/0.1",
+            "format": "markdown",
+            "description": "The strength of Hive lies in our decentralization."
+          },
+          "created": "2021-02-14T08:16:03",
+          "updated": "2021-02-14T08:16:03",
+          "depth": 0,
+          "children": 15,
+          "net_rshares": 93531156115025,
+          "is_paidout": true,
+          "payout_at": "2021-02-21T08:16:03",
+          "payout": 0,
+          "pending_payout_value": "0.000 HBD",
+          "author_payout_value": "0.000 HBD",
+          "curator_payout_value": "0.000 HBD",
+          "promoted": "0.000 HBD",
+          "replies": [],
+          "author_reputation": 69.29,
+          "stats": {
+            "hide": false,
+            "gray": false,
+            "total_votes": 129,
+            "flag_weight": 0
+          },
+          "url": "/hiveecosystem/@hiveio/around-the-hive-reflections",
+          "beneficiaries": [],
+          "max_accepted_payout": "0.000 HBD",
+          "percent_hbd": 10000,
+          "active_votes": [],
+          "blacklists": []
+        }
+      }
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.get_discussion", "params":{"author": "hiveio", "permlink": "around-the-hive-reflections", "observer": "alice"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_get_discussion)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.get_follow_list
+    purpose: |
+      Returns blacklisted/muted accounts or list of blacklists/mute lists followed by a given observer.
+      
+      * `observer` - valid account
+      * `follow_type` - Supported values:
+        * `follow_blacklist`
+        * `follow_muted`
+    parameter_json: {"observer": "blocktrades", "follow_type": "follow_blacklist"}
+    expected_response_json: [{"name":"hive.blog","blacklist_description":"","muted_list_description":""}]
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.get_follow_list", "params":{"observer": "blocktrades", "follow_type": "follow_blacklist"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_get_follow_list)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.get_profile
+    purpose: |
+      Gets profile
+      
+      * `account` - valid account
+      * `observer` - valid account [optional]
+    parameter_json: {"account": "alice", "observer": "bob"}
+    expected_response_json: |
+      {
+          "id": 241,
+          "name": "alice",
+          "created": "2016-03-25T15:09:27",
+          "active": "2016-04-29T22:28:00",
+          "post_count": 0,
+          "reputation": 25,
+          "blacklists": [],
+          "stats": {
+            "rank": 0,
+            "following": 0,
+            "followers": 431
+          },
+          "metadata": {
+            "profile": {
+              "name": "",
+              "about": "",
+              "website": "",
+              "location": "",
+              "cover_image": "",
+              "profile_image": "",
+              "blacklist_description": "",
+              "muted_list_description": ""
+            }
+          },
+          "context": {
+            "followed": false
+          }
+        }
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.get_profile", "params":{"account": "alice", "observer": "bob"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_get_profile)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.list_communities
+    purpose: |
+      Gets community
+      
+      * `last` - name of community; paging mechanism [optional]
+      * `limit` - limit number of listed communities, default: `100` [optional]
+      * `query` - filters against `title` and `about` community fields [optional]
+      * `sort` - default: `rank` [optional]
+        * `rank` - sort by community rank
+        * `new` - sort by newest community
+        * `subs` - sort by subscriptions
+      * `observer` - a valid account [optional]
+    parameter_json: {"limit": 1, "query": "wall street bets"}
+    expected_response_json: |
+      [
+        {
+          "id": 1432978,
+          "name": "hive-103566",
+          "title": "Wall Street Bets",
+          "about": "Wall Street Bets - In Case Reddit Shuts Down.",
+          "lang": "en",
+          "type_id": 1,
+          "is_nsfw": false,
+          "subscribers": 6,
+          "sum_pending": 0,
+          "num_pending": 0,
+          "num_authors": 0,
+          "created_at": "2021-01-28 18:34:09",
+          "avatar_url": "",
+          "context": {},
+          "admins": [
+            "spitr"
+          ]
+        }
+      ]
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.list_communities", "params":{"limit": 1, "query": "wall street bets"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_list_communities)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.list_pop_communities
+    purpose: |
+      Gets a list of popular communities.
+      
+      * `limit` - limit number of listed communities, default: `25` [optional]
+    parameter_json: {"limit": 10}
+    expected_response_json:
+      [
+        ["hive-167922", "LeoFinance"],
+        ["hive-194913", "Photography Lovers"],
+        ["hive-148441", "GEMS"],
+        ["hive-196037", "DTube"],
+        ["hive-196708", "Hive Pets"],
+        ["hive-120586", "Foodies Bee Hive"],
+        ["hive-140217", "Hive Gaming"],
+        ["hive-174578", "OCD"],
+        ["hive-129496", "Nerday"],
+        ["hive-193816", "Music"]
+      ]
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.list_pop_communities", "params":{"limit": 10}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_list_pop_communities)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
+  - api_method: bridge.list_subscribers
+    purpose: |
+      Gets a list of subscribers for a given community.
+      
+      * `community` - community category name
+      * `last` - name of subscriber; paging mechanism [optional]
+      * `limit` - limit number of listed subscribers, default: `100` [optional]
+    parameter_json: {"community": "hive-111111", "limit": 10}
+    expected_response_json: |
+      [
+        ["gatticus", "guest", null, "2021-02-18 13:15:42"],
+        ["thewarkettle", "guest", null, "2021-02-15 22:04:36"],
+        ["darkflame", "guest", null, "2021-02-14 00:30:12"],
+        ["oiuygtfrd76543", "guest", null, "2021-02-01 19:35:03"],
+        ["bhattg", "guest", null, "2021-02-01 18:39:06"],
+        ["elenahornfilm", "guest", null, "2021-02-01 09:19:54"],
+        ["mrhappypants", "guest", null, "2021-02-01 01:03:48"],
+        ["petrahaller", "guest", null, "2021-02-01 00:08:09"],
+        ["hgregoria", "guest", null, "2021-01-29 18:46:12"],
+        ["theblockabout", "guest", null, "2021-01-29 15:21:48"]
+      ]
+    curl_examples:
+      - '{"jsonrpc":"2.0", "method":"bridge.list_subscribers", "params":{"community": "hive-111111", "limit": 10}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_list_subscribers)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
   - api_method: bridge.list_community_roles
     purpose: |
       List community roles and labels for each account in the community.
+      
+      * `community` - community category name
+      * `last` - name of subscriber; paging mechanism [optional]
+      * `limit` - limit number of listed subscribers, default: `100` [optional]
     parameter_json: '{"community":"hive-123456"}'
     expected_response_json: |
       [
@@ -110,20 +424,31 @@
       ]
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"bridge.list_community_roles", "params":{"community":"hive-123456"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_list_community_roles)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
   - api_method: bridge.list_all_subscriptions
     purpose: |
-      List all subscriptions to a community for an account.
+      List all subscriptions, titles, and roles to a community for an account.
+      
+      * `account`: account name, points to valid account
     parameter_json: '{"account":"alice"}'
     expected_response_json: |
       [
-        ["hive-123456", "Wonderland"],
-        ["hive-654321", "Tulgey Wood"]
+        ["hive-123456", "Wonderland", "guest", ""],
+        ["hive-654321", "Tulgey Wood", "admin", "Mrs. Vex"]
       ]
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"bridge.list_all_subscriptions", "params":{"account":"alice"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_list_all_subscriptions)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
   - api_method: bridge.get_community
     purpose: |
       Get community details.
+      
+      * `name` - community category name
+      * `observer` - valid account [optional]
     parameter_json: '{"name":"hive-123456","observer":"alice"}'
     expected_response_json: 
       {
@@ -137,12 +462,14 @@
         "subscribers": 0,
         "sum_pending": 0,
         "num_pending": 0,
+        "num_authors": 0,
         "created_at": "2019-10-27 08:28:54",
         "context": {
           "role": "admin",
           "title": "Miss",
           "subscribed": true
         },
+        "avatar_url": "",
         "description": "",
         "flag_text": "",
         "settings": {},
@@ -153,3 +480,6 @@
     }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"bridge.get_community", "params":{"name":"hive-123456","observer":"alice"}, "id":1}'
+    client_docs:
+      - '[openApi](https://gitlab.syncad.com/hive/hivemind/-/blob/pczempiel_openapi_bridge/openApi/client/docs/DefaultApi.md#bridge_get_community)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Bridge)'
diff --git a/_data/apidefinitions/broadcast_ops.yml b/_data/apidefinitions/broadcast_ops.yml
index f882d3ac2423131c6fa4d7e9cb1977b658869807..f290ac1ab30c5cac729c91e917eaaddf7261b97a 100644
--- a/_data/apidefinitions/broadcast_ops.yml
+++ b/_data/apidefinitions/broadcast_ops.yml
@@ -76,6 +76,12 @@
           weight
       json_examples:
         - '["vote", {"voter":"hiveio","author":"alice","permlink":"a-post-by-alice","weight":10000}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestvote)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#vote)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#vote)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.vote)'
     - name: comment
       virtual: false
       purpose: |
@@ -161,6 +167,12 @@
           json_metadata
       json_examples:
         - '["comment",{"parent_author":"","parent_permlink":"steem","author":"alice","permlink":"a-post-by-alice","title":"A Post By Alice","body":"This is my post.","json_metadata":"{\"tags\":[\"hiveio\",\"example\",\"tags\"]}"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestpost)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#comment)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#comment)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.comment)'
     - name: transfer
       virtual: false
       purpose: |
@@ -182,6 +194,12 @@
           memo
       json_examples:
         - '["transfer",{"from":"hiveio","to":"alice","amount":{"amount":"10","precision":3,"nai":"@@000000021"},"memo":"Thanks for all the fish."}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requesttransfer)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#transfer)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#transfer)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.transfer)'
     - name: transfer_to_vesting
       virtual: false
       purpose: |
@@ -202,6 +220,11 @@
           amount
       json_examples:
         - '["transfer_to_vesting",{"from":"alice","to":"","amount":{"amount":"357000","precision":3,"nai":"@@000000021"}}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestpowerup)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#transfer-to-vesting)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.transfer_to_vesting)'
     - name: withdraw_vesting
       virtual: false
       purpose: |
@@ -225,6 +248,11 @@
           vesting_shares
       json_examples:
         - '["withdraw_vesting",{"account":"hiveio","vesting_shares":{"amount":"200000000000","precision":6,"nai":"@@000000037"}}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestpowerdown)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#withdraw-vesting)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.withdraw_vesting)'
     - name: limit_order_create
       virtual: false
       purpose: |
@@ -242,6 +270,10 @@
           expiration
       json_examples:
         - '["limit_order_create",{"owner":"hiveio","orderid":10,"amount_to_sell":{"amount":"9950","precision":3,"nai":"@@000000021"},"min_to_receive":{"amount":"3500","precision":3,"nai":"@@000000013"},"fill_or_kill":false,"expiration":"2035-10-29T06:32:22"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#limit-order-create)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.limit_order_create)'
     - name: limit_order_cancel
       virtual: false
       purpose: |
@@ -254,6 +286,10 @@
           orderid
       json_examples:
         - '["limit_order_cancel",{"owner":"hiveio","orderid":10}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#limit-order-cancel)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.limit_order_cancel)'
     - name: price
       virtual: false
       purpose:
@@ -277,6 +313,10 @@
           exchange_rate
       json_examples:
         - '["feed_publish",{"publisher":"alice","exchange_rate":{"base":{"amount":"1000","precision":3,"nai":"@@000000013"},"quote":{"amount":"1000000","precision":3,"nai":"@@000000021"}}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#feed-publish)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.feed_publish)'
     - name: convert
       virtual: false
       purpose: |
@@ -291,6 +331,10 @@
           amount
       json_examples:
         - '["convert",{"owner":"hiveio","requestid":1467592156,"amount":{"amount":"5000","precision":3,"nai":"@@000000013"}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#convert)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.convert)'
     - name: account_create
       virtual: false
       purpose:
@@ -308,6 +352,10 @@
           json_metadata
       json_examples:
         - '["account_create",{"fee":{"amount":"0","precision":3,"nai":"@@000000021"},"creator":"hiveio","new_account_name":"alice","owner":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5b4i9gBqvh4sbgrooXPu2dbGLewNPZkXeuNeBjyiswnu2szgXx",1]]},"active":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7ko5nzqaYfjbD4tKWGmiy3xtT9eQFZ3Pcmq5JmygTRptWSiVQy",1]]},"posting":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5xAKxnMT2y9VoVJdF63K8xRQAohsiQy9bA33aHeyMB5vgkzaay",1]]},"memo_key":"STM8ZSyzjPm48GmUuMSRufkVYkwYbZzbxeMysAVp7KFQwbTf98TcG","json_metadata":"{}"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#account-create)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.account_create)'
     - name: create_claimed_account
       since: HF20
       virtual: false
@@ -326,6 +374,10 @@
           json_metadata
       json_examples:
         - '["create_claimed_account",{"creator":"hiveio","new_account_name":"alice","owner":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5b4i9gBqvh4sbgrooXPu2dbGLewNPZkXeuNeBjyiswnu2szgXx",1]]},"active":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7ko5nzqaYfjbD4tKWGmiy3xtT9eQFZ3Pcmq5JmygTRptWSiVQy",1]]},"posting":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5xAKxnMT2y9VoVJdF63K8xRQAohsiQy9bA33aHeyMB5vgkzaay",1]]},"memo_key":"STM8ZSyzjPm48GmUuMSRufkVYkwYbZzbxeMysAVp7KFQwbTf98TcG","json_metadata":"{}"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcreateclaimedaccount)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.create_claimed_account)'
     - name: claim_account
       since: HF20
       virtual: false
@@ -340,11 +392,14 @@
           extensions
       json_examples:
         - '["claim_account",{"fee":{"amount":"0","precision":3,"nai":"@@000000021"},"creator":"hiveio","extensions":[]}]'
+      client_docs:
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.claim_account)'
     - name: witness_set_properties
       since: HF20
       virtual: false
       purpose: |
-        Added in HF20 to replace the `witness_update` which was not easily extendable.  While it is recommended to use `witness_set_properties`, `witness_update` will continue to work.  See: [Witness Parameters](https://github.com/steemit/steem/blob/master/doc/witness_parameters.md)
+        Added in HF20 to replace the `witness_update` which was not easily extendable.  While it is recommended to use `witness_set_properties`, `witness_update` will continue to work.  See: [Witness Parameters]( https://gitlab.syncad.com/hive/hive/-/blob/master/doc/witness_parameters.md)
       roles:
         - block_signing
           active
@@ -355,6 +410,10 @@
           extensions
       json_examples:
         - '["witness_set_properties",{"owner":"alice", "props":{"account_creation_fee":"0.000 HIVE","account_subsidy_budget":10000,"account_subsidy_decay":330782,"maximum_block_size":65536,"hbd_interest_rate": "0.000 HIVE","hbd_exchange_rate":{"base": "0.000 HBD", "quote": "0.000 HIVE"}, "url": "68747470733A2F2F737465656D69742E636F6D", "new_signing_key": "25688bbe7b1204f26e40be054c8b2ff1997eec6d4e7be6a105aab8a0e6f11c616d7cb6066"}, "extensions": []}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#witness-set-properties)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.witness_set_properties)'
     - name: account_update
       virtual: false
       purpose:
@@ -370,6 +429,10 @@
           json_metadata
       json_examples:
         - '["account_update",{"account":"hiveio","posting":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6FATHLohxTN8RWWkU9ZZwVywXo6MEDjHHui1jEBYkG2tTdvMYo",1],["STM76EQNV2RTA6yF9TnBvGSV71mW7eW36MM7XQp24JxdoArTfKA76",1]]},"memo_key":"STM6FATHLohxTN8RWWkU9ZZwVywXo6MEDjHHui1jEBYkG2tTdvMYo","json_metadata":""}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#account-update)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.account_update)'
     - name: report_over_production
       disabled: true
       purpose: |
@@ -393,6 +456,9 @@
         - reporter
           first_block
           second_block
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#report-over-production)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: witness_update
       virtual: false
       purpose: |
@@ -426,6 +492,10 @@
           fee
       json_examples:
         - '["witness_update",{"owner":"alice","url":"witness-category/my-witness","block_signing_key":"STM8LoQjQqJHvotqBo7HjnqmUbFW9oJ2theyqonzUd9DdJ7YYHsvD","props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000},"fee":{"amount":"0","precision":3,"nai":"@@000000021"}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#witness-update)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.witness_update)'
     - name: account_witness_vote
       virtual: false
       purpose: |
@@ -442,6 +512,11 @@
           approve
       json_examples:
         - '["account_witness_vote",{"account":"alice","witness":"bob","approve":true}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestwitnessvote)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#account-witness-vote)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.account_witness_vote)'
     - name: account_witness_proxy
       virtual: false
       purpose: |
@@ -460,6 +535,11 @@
           proxy
       json_examples:
         - '["account_witness_proxy",{"account":"alice","proxy":"bob"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestproxy)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#account-witness-proxy)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.account_witness_proxy)'
     - name: pow
       disabled: true
       virtual: false
@@ -475,6 +555,9 @@
           work
       json_examples:
         - '["pow",{"worker_account":"admin","block_id":"000004433bd4602cf5f74dbb564183837df9cef8","nonce":82,"work":{"worker":"STM65wH1LZ7BfSHcK69SShnqCAH5xdoSZpGkUjmzHJ5GCuxEK9V5G","input":"59b009f89477919f95914151cef06f28bf344dd6fb7670aca1c1f4323c80446b","signature":"1f3f83209097efcd01b7d6f27ce726164323d503d6fcf4d55bfb7cb3032796f6766738b36062b5850d69447fdf9c091cbc70825df5eeacc4710a0b11ffdbf0912a","work":"0b62f4837801cd857f01d6a541faeb13d6bb95f1c36c6b4b14a47df632aa6c92"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#pow)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: custom
       virtual: false
       purpose: |
@@ -492,6 +575,10 @@
           data
       json_examples:
         - '["custom",{"required_auths":["bytemaster"],"id":777,"data":"0a627974656d617374657207737465656d697402a3d13897d82114466ad87a74b73a53292d8331d1bd1d3082da6bfbcff19ed097029db013797711c88cccca3692407f9ff9b9ce7221aaa2d797f1692be2215d0a5f6d2a8cab6832050078bc5729201e3ea24ea9f7873e6dbdc65a6bd9899053b9acda876dc69f11a13df9ca8b26b6"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom)'
     - name: delete_comment
       virtual: false
       purpose:
@@ -504,6 +591,10 @@
           permlink
       json_examples:
         - '["delete_comment",{"author":"alice","permlink":"a-post-by-alice"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#delete-comment)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.delete_comment)'
     - name: custom_json
       virtual: false
       purpose: |
@@ -544,6 +635,12 @@
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"follow","json":"[\"follow\",{\"follower\":\"alice\",\"following\":\"eve\",\"what\":[\"ignore\"]}]"}]'
         - '["custom_json",{"required_auths":[],"required_posting_auths":["bob"],"id":"reblog","json":"{\"account\":\"bob\",\"author\":\"alice\",\"permlink\":\"a-post-by-alice\"}"}]'
         - '["custom_json",{"required_auths":["alice"],"required_posting_auths":[],"id":"witness","json":"[\"enable_content_editing\", {\"account\": \"alice\", \"relock_time\": \"2100-01-01T12:00:00\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: comment_options
       virtual: false
       purpose: |
@@ -595,6 +692,11 @@
         - '["comment_options",{"author":"alice","permlink":"a-post-by-alice","max_accepted_payout":{"amount":"1000000","precision":3,"nai":"@@000000013"},"percent_hbd":5000,"allow_votes":true,"allow_curation_rewards":true,"extensions":[]}]'
         - '["comment_options",{"author":"bob","permlink":"a-post-with-a-beneficiary","max_accepted_payout":{"amount":"1000000","precision":3,"nai":"@@000000013"},"percent_hbd":63,"allow_votes":true,"allow_curation_rewards":true,"extensions":[[0,{"beneficiaries":[{"account":"charlie","weight":1000}]}]]}]'
         - '["comment_options",{"author":"charlie","permlink":"a-post-with-multiple-beneficiaries","max_accepted_payout":{"amount":"1000000","precision":3,"nai":"@@000000013"},"percent_hbd":62688,"allow_votes":true,"allow_curation_rewards":true,"extensions":[[0,{"beneficiaries":[{"account":"david","weight":500},{"account":"erin","weight":500},{"account":"faythe","weight":1000},{"account":"frank","weight":500}]}]]}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestpost)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#comment-options)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.comment)'
     - name: set_withdraw_vesting_route
       virtual: false
       purpose: |
@@ -602,10 +704,10 @@
         request for the funds to be transferred directly to another account's
         balance rather than the withdrawing account. In addition, those funds
         can be immediately vested again, circumventing the conversion from
-        vests to steem and back, guaranteeing they maintain their value.
+        vests to hive and back, guaranteeing they maintain their value.
         
         **Notes:**
-        * Percent must be valid steem percent.
+        * Percent must be valid hive percent.
       roles:
         - active
           owner
@@ -616,6 +718,10 @@
           auto_vest
       json_examples:
         - '["set_withdraw_vesting_route",{"from_account":"alice","to_account":"bob","percent":10000,"auto_vest":true}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#set-withdraw-vesting-route)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.set_withdraw_vesting_route)'
     - name: limit_order_create2
       virtual: false
       purpose: |
@@ -639,11 +745,15 @@
           expiration
       json_examples:
         - '["limit_order_create2",{"owner":"alice","orderid":492991,"amount_to_sell":{"amount":"1","precision":3,"nai":"@@000000013"},"exchange_rate":{"base":{"amount":"1","precision":3,"nai":"@@000000013"},"quote":{"amount":"10","precision":3,"nai":"@@000000021"}},"fill_or_kill":false,"expiration":"2017-05-12T23:11:13"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#limit-order-create2)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: challenge_authority
       disabled: true
       virtual: false
       purpose: |
         Disabled in HF14.
+        <p> </p><p> </p>
       roles:
         - posting
           active
@@ -652,15 +762,21 @@
         - challenger
           challenged
           require_owner
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#challenge-authority)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: prove_authority
       virtual: false
-      purpose:
+      purpose: <p> </p><p> </p><p> </p>
       roles:
         - active
           owner
       params:
         - challenged
           require_owner
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#prove-authority)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: request_account_recovery
       since: HF11
       virtual: false
@@ -712,6 +828,10 @@
           extensions
       json_examples:
         - '["request_account_recovery",{"recovery_account":"steem","account_to_recover":"alice","new_owner_authority":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6LYxj96zdypHYqgDdD6Nyh2NxerN3P1Mp3ddNm7gci63nfrSuZ",1]]},"extensions":[]}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#request-account-recovery)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.request_account_recovery)'
     - name: recover_account
       since: HF11
       virtual: false
@@ -725,6 +845,10 @@
           extensions
       json_examples:
         - '["recover_account",{"account_to_recover":"alice","new_owner_authority":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7j3nhkhHTpXqLEvdx2yEGhQeeorTcxSV6WDL2DZGxwUxYGrHvh",1]]},"recent_owner_authority":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM78Xth94gNxp8nmByFV2vNAhg9bsSdviJ6fQXUTFikySLK3uTxC",1]]},"extensions":[]}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#recover-account)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.recover_account)'
     - name: change_recovery_account
       since: HF11
       virtual: false
@@ -755,6 +879,10 @@
           extensions
       json_examples:
         - '["change_recovery_account",{"account_to_recover":"alice","new_recovery_account":"bob","extensions":[]}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#change-recovery-account)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.change_recovery_account)'
     - name: escrow_transfer
       since: HF14
       virtual: false
@@ -779,7 +907,7 @@
         Escrow transactions are uniquely identified by `from` and `escrow_id`,
         the `escrow_id` is defined by the sender.
         
-        See: [hive_operations.hpp:229](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L229-L322)
+        See: [hive_operations.hpp:299](https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L299-335)
       roles:
         - active
           owner
@@ -796,6 +924,10 @@
           json_meta
       json_examples:
         - '["escrow_transfer",{"from":"alice","to":"bob","hbd_amount":{"amount":"1000","precision":3,"nai":"@@000000013"},"hive_amount":{"amount":"0","precision":3,"nai":"@@000000021"},"escrow_id":23456789,"agent":"charlie","fee":{"amount":"100","precision":3,"nai":"@@000000013"},"json_meta":"{}","ratification_deadline":"2017-02-26T11:22:39","escrow_expiration":"2017-02-28T11:22:39"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#escrow-transfer)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.escrow_transfer)'
     - name: escrow_dispute
       since: HF14
       virtual: false
@@ -804,7 +936,7 @@
         can raise it for dispute. Once a payment is in dispute, the agent has
         authority over who gets what.
         
-        See: [hive_operations.hpp:229](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L229-L322)
+        See: [hive_operations.hpp:299]( https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L299-335)
       roles:
         - active
           owner
@@ -816,6 +948,10 @@
           escrow_id
       json_examples:
         - '["escrow_dispute",{"from":"alice","to":"bob","agent":"charlie","who":"alice","escrow_id":72526562}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#escrow-dispute)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.escrow_dispute)'
     - name: escrow_release
       since: HF14
       virtual: false
@@ -831,7 +967,7 @@
           * If there is a dispute regardless of expiration, the agent can
             release funds to either party following whichever agreement was in place between the parties.
         
-        See: [hive_operations.hpp:229](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L229-L322)
+        See: [hive_operations.hpp:299]( https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L299-335)
       roles:
         - active
           owner
@@ -846,6 +982,10 @@
           hive_amount
       json_examples:
         - '["escrow_release",{"from":"alice","to":"bob","agent":"charlie","who":"charlie","receiver":"bob","escrow_id":72526562,"hbd_amount":{"amount":"5000","precision":3,"nai":"@@000000013"},"hive_amount":{"amount":"0","precision":3,"nai":"@@000000021"}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#escrow-release)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.escrow_release)'
     - name: pow2
       disabled: true
       virtual: false
@@ -859,6 +999,9 @@
           pow_summary
       json_examples:
         - '["pow2",{"work":[0,{"input":{"worker_account":"alice","prev_block":"003ea604345523c344fbadab605073ea712dd76f","nonce":"1052853013628665497"},"pow_summary":3817904373}],"props":{"account_creation_fee":{"amount":"1","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#pow2)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: escrow_approve
       since: HF14
       virtual: false
@@ -868,7 +1011,7 @@
         cannot revoke their approval. Subsequent escrow approve operations,
         regardless of the approval, will be rejected.
         
-        See: [hive_operations.hpp:229](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L229-L322)
+        See: [hive_operations.hpp:299]( https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L299-335)
       roles:
         - active
           owner
@@ -881,6 +1024,10 @@
           approve
       json_examples:
         - '["escrow_approve",{"from":"alice","to":"bob","agent":"charlie","who":"charlie","escrow_id":59102208,"approve":true}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#escrow-approve)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.escrow_approve)'
     - name: transfer_to_savings
       since: HF14
       virtual: false
@@ -893,7 +1040,7 @@
         Assuming an account can be recovered quickly, loss in such situations
         can be kept to a minimum.
         
-        See: [hive_operations.hpp:868](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L868-L895)
+        See: [hive_operations.hpp:988]( https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L988-996)
       roles:
         - active
           owner
@@ -904,6 +1051,10 @@
           memo
       json_examples:
         - '["transfer_to_savings",{"from":"alice","to":"alice","amount":{"amount":"1000","precision":3,"nai":"@@000000013"},"memo":""}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#transfer-to-savings)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.transfer_to_savings)'
     - name: transfer_from_savings
       since: HF14
       virtual: false
@@ -919,6 +1070,10 @@
           memo
       json_examples:
         - '["transfer_from_savings",{"from":"alice","request_id":101,"to":"alice","amount":{"amount":"1000","precision":3,"nai":"@@000000013"},"memo":""}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#transfer-from-savings)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.transfer_from_savings)'
     - name: cancel_transfer_from_savings
       since: HF14
       virtual: false
@@ -931,6 +1086,10 @@
           request_id
       json_examples:
         - '["cancel_transfer_from_savings",{"from":"alice","request_id":1}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#cancel-transfer-from-savings)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.cancel_transfer_from_savings)'
     - name: custom_binary
       since: HF14
       virtual: false
@@ -941,7 +1100,7 @@
         binary deserialization of plugin operations and should improve overall
         performance of plugins that chose to use it.
         
-        See: [hive_operations.hpp:491](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L491-L506)
+        See: [hive_operations.hpp:604]( https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L604-619)
       roles:
         - posting
           active
@@ -949,6 +1108,12 @@
       params:
         - id
           data
+      json_examples:
+        - '["custom_binary",{"id": 0, "data": ""}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-binary)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_binary)'
     - name: decline_voting_rights
       since: HF14
       virtual: false
@@ -959,7 +1124,7 @@
         formalize a smart contract between certain accounts and the community
         that currently only exists as a social contract.
         
-        See: [hive_operations.hpp:897](https://github.com/steemit/steem/blob/86ec544b731680eaba3808cc7a41e8ea73d89701/libraries/chain/include/steemit/chain/protocol/hive_operations.hpp#L897-L905)
+        See: [hive_operations.hpp:1020]( https://gitlab.syncad.com/hive/hive/-/blob/2074917f0735d9bdf22d33f5bdb089df3f6361b0/libraries/protocol/include/hive/protocol/hive_operations.hpp#L1020-1027)
       roles:
         - owner
       params:
@@ -967,6 +1132,9 @@
           decline
       json_examples:
         - '["decline_voting_rights",{"account":"judy","decline":true}]'
+      client_docs:
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.decline_voting_rights)'
     - name: reset_account
       disabled: true
       since: HF11
@@ -983,6 +1151,10 @@
         - reset_account
           account_to_reset
           new_owner_authority
+      json_examples:
+        - '["reset_account",{}]'
+      client_docs:
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: set_reset_account
       disabled: true
       since: HF11
@@ -999,6 +1171,10 @@
         - account
           current_reset_account
           reset_account
+      json_examples:
+        - '["set_reset_account",{}]'
+      client_docs:
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
     - name: claim_reward_balance
       virtual: false
       purpose:
@@ -1013,6 +1189,10 @@
           reward_vests
       json_examples:
         - '["claim_reward_balance",{"account":"alice","reward_hive":{"amount":"17","precision":3,"nai":"@@000000021"},"reward_hbd":{"amount":"11","precision":3,"nai":"@@000000013"},"reward_vests":{"amount":"185025103","precision":6,"nai":"@@000000037"}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#claim-reward-balance)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.claim_reward_balance)'
     - name: delegate_vesting_shares
       since: HF17
       virtual: false
@@ -1027,7 +1207,7 @@
         to prevent a satoshi of VESTS from voting on the same content twice.
         
         Also see:
-          * [hive_evaluator.cpp:2309](https://github.com/steemit/steem/blob/4b19e00dd6a76699aa4de1c0d50aad392cd2d0b6/libraries/chain/hive_evaluator.cpp#L2309)
+          * [hive_evaluator.cpp:2309]( https://gitlab.syncad.com/hive/hive/-/blob/4b19e00dd6a76699aa4de1c0d50aad392cd2d0b6/libraries/hive_evaluator.cpp#L2309)
       roles:
         - active
           owner
@@ -1037,6 +1217,10 @@
           vesting_shares
       json_examples:
         - '["delegate_vesting_shares",{"delegator":"alice","delegatee":"bob","vesting_shares":{"amount":"94599167138276","precision":6,"nai":"@@000000037"}}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#delegate-vesting-shares)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.delegate_vesting_shares)'
     - name: account_create_with_delegation
       since: HF17
       deprecated: true
@@ -1058,8 +1242,8 @@
         creation.*
         
         Also see:
-          * [config.hpp:145](https://github.com/steemit/steem/blob/65c58af34971416057e142ac1332421e2228749b/libraries/protocol/include/steem/protocol/config.hpp#L145)
-          * [hive_evaluator.cpp:400](https://github.com/steemit/steem/blob/4b19e00dd6a76699aa4de1c0d50aad392cd2d0b6/libraries/chain/hive_evaluator.cpp#L400)
+          * [config.hpp:145]( https://gitlab.syncad.com/hive/hive/-/blob/65c58af34971416057e142ac1332421e2228749b/libraries/protocol/include/steem/protocol/config.hpp#L145)
+          * [hive_evaluator.cpp:400]( https://gitlab.syncad.com/hive/hive/-/blob/4b19e00dd6a76699aa4de1c0d50aad392cd2d0b6/libraries/hive_evaluator.cpp#L400)
       roles:
         - active
           owner
@@ -1076,6 +1260,10 @@
           extensions
       json_examples:
         - '["account_create_with_delegation",{"fee":{"amount":"3000","precision":3,"nai":"@@000000021"},"delegation":{"amount":"0","precision":6,"nai":"@@000000037"},"creator":"hiveio","new_account_name":"alice","owner":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5Tki3ecCdCCHCjhhwvQvXuKryL2s34Ma6CXsRzntSUTYVYxCQ9",1]]},"active":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6LUoAA8gCL9tHRz7v9xcwR4ZWD3KDRHP5t1U7UAZHdfanLxyBE",1]]},"posting":{"weight_threshold":1,"account_auths":[],"key_auths":[["STM8anmpHdfVE4AmwsDpcSXpRsydHysEbv6vGJkRQy1d1CC83zeTA",1]]},"memo_key":"STM67RYDyEkP1Ja1jFehJ45BFGA9oHHUnRnYbxKJEtMhVQiHW3S3k","json_metadata":"{}","extensions":[]}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#account-create-with-delegation)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.account_create_with_delegation)'
     - name: create_proposal
       since: HF21
       deprecated: false
@@ -1096,6 +1284,9 @@
           permlink
       json_examples:
         - '["create_proposal",{"creator":"alice","receiver":"bob","start_date":"2019-08-26T11:22:39","end_date":"2019-08-26T11:22:39","daily_pay":{"amount":"3000","precision":3,"nai":"@@000000013"},"subject":"subject","permlink":"creator-proposal-permlink"}]'
+      client_docs:
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.create_proposal)'
     - name: remove_proposal
       since: HF21
       deprecated: false
@@ -1111,6 +1302,10 @@
           proposal_ids
       json_examples:
         - '["remove_proposal",{"creator":"alice","proposal_ids":[0]}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestremoveproposal)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.remove_proposal)'
     - name: update_proposal_votes
       since: HF21
       deprecated: false
@@ -1127,6 +1322,10 @@
           approve
       json_examples:
         - '["update_proposal_votes",{"voter":"alice","proposal_ids":[0],"approve":true}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestupdateproposalvote)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.update_proposal_votes)'
     - name: claim_reward_balance2
       since: Mysterious Future
       virtual: false
@@ -1214,7 +1413,7 @@
        
         See [#3455](https://github.com/steemit/steem/issues/3455), [SMT Setup](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#smt-setup)
         
-        <sup>[Structure](https://github.com/steemit/steem/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L67-L90)</sup>
+        <sup>[Structure]( https://gitlab.syncad.com/hive/hive/-/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L67-L90)</sup>
       roles:
         - active
           owner
@@ -1257,7 +1456,7 @@
 
         See: [#1513](https://github.com/steemit/steem/issues/1513), [#2738](https://github.com/steemit/steem/issues/2738), [SMT Pre-Setup](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#smt-pre-setup), [Inflation Operations](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#inflation-operations), [Full JSON Examples](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#full-json-examples), [Inflation FAQ](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#inflation-faq)
         
-        <sup>[Structure](https://github.com/steemit/steem/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L100-L129)</sup>
+        <sup>[Structure]( https://gitlab.syncad.com/hive/hive/-/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L100-L129)</sup>
       roles:
         - active
           owner
@@ -1292,7 +1491,7 @@
         See: [#2727](https://github.com/steemit/steem/issues/2727), [Named Token Parameters](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#named-token-parameters)
 
         
-        <sup>[Structure](https://github.com/steemit/steem/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L172-L183)</sup>
+        <sup>[Structure]( https://gitlab.syncad.com/hive/hive/-/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L172-L183)</sup>
       roles:
         - active
           owner
@@ -1324,7 +1523,7 @@
         
         See: [Named Token Parameters](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#named-token-parameters)
         
-        <sup>[Structure](https://github.com/steemit/steem/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L185-L196)</sup>
+        <sup>[Structure]( https://gitlab.syncad.com/hive/hive/-/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L185-L196)</sup>
       roles:
         - active
           owner
@@ -1362,7 +1561,7 @@
         
         See: [SMT Object Creation](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#smt-object-creation)
         
-        <sup>[Structure](https://github.com/steemit/steem/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L16-L37)</sup>
+        <sup>[Structure]( https://gitlab.syncad.com/hive/hive/-/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L16-L37)</sup>
       roles:
         - active
           owner
@@ -1387,7 +1586,7 @@
         
         See: [#2730](https://github.com/steemit/steem/issues/2730), [Token Units](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#token-units)
         
-        <sup>[Structure](https://github.com/steemit/steem/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L198-L209)</sup>
+        <sup>[Structure]( https://gitlab.syncad.com/hive/hive/-/blob/e134c404b67fae7dba439162344332e369a4c269/libraries/protocol/include/steem/protocol/smt_operations.hpp#L198-L209)</sup>
       roles:
         - active
           owner
diff --git a/_data/apidefinitions/broadcast_ops_communities.yml b/_data/apidefinitions/broadcast_ops_communities.yml
index 26d23a0255f728661393b0bbd603c3056e9bccc6..a4eb01ef9ef2b98495fba4a6e414ae74fbb2435e 100644
--- a/_data/apidefinitions/broadcast_ops_communities.yml
+++ b/_data/apidefinitions/broadcast_ops_communities.yml
@@ -25,6 +25,12 @@
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"setRole\", {\"community\": \"hive-123456\", \"account\": \"charlie\", \"role\": \"mod\"}]"}]'
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"setRole\", {\"community\": \"hive-123456\", \"account\": \"dave\", \"role\": \"guest\"}]"}]'
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"setRole\", {\"community\": \"hive-123456\", \"account\": \"edward\", \"role\": \"member\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: setUserTitle
       purpose: |
         Sets a title (badge) for a given account in a community (*Mods* or higher).
@@ -36,6 +42,11 @@
           title
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"setUserTitle\", {\"community\": \"hive-123456\", \"account\": \"alice\", \"title\": \"Founder\"}]"}]'
+      client_docs:
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: mutePost
       purpose: |
         Mute a post (*Mods* or higher).  Can be a topic or a comment.
@@ -43,30 +54,78 @@
         **Note:** Any posts muted for spam should contain simply the string spam in the notes field. This standardized label will help train automated spam detection.
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"mutePost\",{\"community\":\"hive-123456\",\"account\":\"eve\",\"permlink\":\"re-eve-comment-1564339652z\",\"notes\":\"Off Topic\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: unmutePost
       purpose: Unmute a post (*Mods* or higher).
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"unmutePost\",{\"community\":\"hive-123456\",\"account\":\"eve\",\"permlink\":\"re-eve-comment-1564339652z\",\"notes\":\"On Topic (on second thought)\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: updateProps
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"updateProps\",{\"community\":\"hive-123456\",\"props\":{\"title\":\"Anti-Knitting\",\"about\":\"A community against knitting.\",\"is_nsfw\":false,\"description\":\"If you like to knitting, go away.\",\"flag_text\":\"Must hate knitting or else you will be muted.\"}}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: subscribe
       purpose: Allows a user to signify they want this community shown on their personal trending feed and to be shown in their navigation menu.
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"subscribe\",{\"community\":\"hive-123456\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: pinPost
       purpose: Stickies a post to the top of the community homepage (*Mods* or higher). If multiple posts are stickied, the newest ones are shown first.
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"pinPost\",{\"community\":\"hive-123456\",\"account\":\"alice\",\"permlink\":\"a-post-by-alice\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: unsubscribe
       purpose: Allows a user to signify they no longer want this community shown on their personal trending feed or to be shown in their navigation menu.
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"unsubscribe\",{\"community\":\"hive-123456\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: unpinPost
       purpose: Removes a post to the top of the community homepage (*Mods* or higher).
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"unpinPost\",{\"community\":\"hive-123456\",\"account\":\"alice\",\"permlink\":\"a-post-by-alice\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
     - name: flagPost
       purpose: Used by guests to suggest a post for the review queue.  It's up to the community to define what constitutes flagging.
       json_examples:
         - '["custom_json",{"required_auths":[],"required_posting_auths":["alice"],"id":"community","json":"[\"flagPost\",{\"community\":\"hive-123456\",\"account\":\"eve\",\"permlink\":\"a-post-by-eve\",\"notes\":\"Warning\"}]"}]'
+      client_docs:
+        - '[hive-keychain](https://github.com/stoodkev/hive-keychain#requestcustomjson)'
+        - '[hivesigner.js](https://github.com/ledgerconnect/hivesigner.js#custom-json)'
+        - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#custom-json)'
+        - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+        - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Broadcast.custom_json)'
diff --git a/_data/apidefinitions/condenser_api.yml b/_data/apidefinitions/condenser_api.yml
index 92895a26395c7c7d2ebad8397db3e2ec35dbd464..b27c09edbaafcd8af49442ccc35acfb8b4613ed8 100644
--- a/_data/apidefinitions/condenser_api.yml
+++ b/_data/apidefinitions/condenser_api.yml
@@ -38,6 +38,10 @@
       "id":1}'
     expected_curl_responses:
     - attempting to push a block that is too old
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#broadcast-block)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#broadcast-block)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.broadcast_transaction
     purpose: |
       Used to broadcast a transaction.
@@ -60,6 +64,10 @@
     expected_curl_responses:
     - missing required posting authority
     - Asset has to treated as object.
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#broadcast-api)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#broadcast-transaction)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.broadcast_transaction_synchronous
     purpose: Used to broadcast a transaction and waits for it to be processed synchronously.
     parameter_json:
@@ -85,6 +93,10 @@
     expected_curl_responses:
     - missing required posting authority
     - Asset has to treated as object.
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#broadcast-api)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/TransactionBuilder)'
   - api_method: condenser_api.get_account_bandwidth
     disabled: true
     purpose: |
@@ -114,6 +126,10 @@
     expected_curl_responses:
     - Could not find method get_account_bandwidth
     - Could not find method get_account_bandwidth
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#api-call)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-account-bandwidth)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_account_count
     purpose: Returns the number of accounts.
     parameter_json: []
@@ -141,6 +157,10 @@
       1000, 1000], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_account_history", "params":["hiveio",
       -1, 10000], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-account-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_account_reputations
     since: HF13
     purpose: |
@@ -161,6 +181,10 @@
       1], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_account_reputations", "params":["a",
       10], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-reputations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-account-reputations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_account_votes
     purpose: |
       Returns all votes by an account.  Parameters: `account:string`
@@ -182,6 +206,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_account_votes", "params":["alice"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-account-votes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_accounts
     purpose: |
       Returns accounts, queried by name.  Parameters: `account:string array`
@@ -289,6 +317,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_accounts", "params":[["hiveio",
       "alice"]], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-accounts)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.get_all_accounts)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_active_votes
     purpose: |
       Returns all votes for the given post.  Parameters: `author:string`; `permlink:string`
@@ -317,6 +349,10 @@
     expected_curl_responses:
     - 
     - unknown key:unknown key
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-active-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-votes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_active_witnesses
     purpose: |
       Returns the list of active witnesses.
@@ -327,6 +363,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_active_witnesses", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-active-witnesses)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-witnesses)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_block
     purpose: |
       Returns a block.  Parameters: `block_num:int`
@@ -356,6 +396,10 @@
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[8675309], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":[62396745],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-block)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-block)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_block_header
     purpose: |
       Returns a block header.  Parameters: `block_num:int`
@@ -382,6 +426,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_block_header", "params":[62396745],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-block-header)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-block-header)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_blog
     purpose: |
       Returns the list of blog entries for an account.  Parameters: `account:string`; `start_entry_id:int`; `limit:int` up to 500
@@ -452,6 +500,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_blog", "params":["alice",0,50],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-blog)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-blog)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_blog_authors
     purpose: |
       Returns a list of authors that have had their content reblogged on a given blog account.  Parameters: `account:string`
@@ -472,6 +524,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_blog_authors", "params":["alice"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-blog-authors)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-blog-authors)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_blog_entries
     purpose: |
       Returns a list of blog entries for an account.  Parameters: `account:string`; `start_entry_id:int`; `limit:int` up to 500
@@ -497,6 +553,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_blog_entries", "params":["alice",0,50],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-blog-entries)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-blog-entries)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_chain_properties
     purpose: Returns the chain properties.
     parameter_json: []
@@ -508,6 +568,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_chain_properties", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-chain-properties)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-chain-properties)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_comment_discussions_by_payout
     since: HF17
     purpose: |
@@ -527,6 +591,10 @@
       "params":[{"tag":"steem","limit":1}], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_comment_discussions_by_payout",
       "params":[{"tag":"photography","limit":10,"truncate_body":0}], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-comment-discussions-by-payout)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-comment-discussions-by-payout)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_config
     purpose: |
       Returns information about compile-time constants.  See: [Understanding
@@ -537,6 +605,10 @@
     expected_response_json: {}
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_config", "params":[], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-config)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-config)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_content
     purpose: |
       Returns the content (post or comment).  Parameters: `author:string`; `permlink:string`
@@ -599,6 +671,10 @@
       "firstpost"], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_content", "params":["alice",
       "a-post-by-alice"], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-content)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-content)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_content_replies
     purpose: |
       Returns a list of replies.  Parameters: `author:string`; `permlink:string`
@@ -664,6 +740,10 @@
       "firstpost"], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_content_replies", "params":["alice",
       "a-post-by-alice"], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-content-replies)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-content-replies)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_conversion_requests
     purpose: |
       Returns a list of conversion request.  Parameters: `id:integer`
@@ -679,6 +759,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_conversion_requests", "params":[1234],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-conversion-requests)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-conversion-requests)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_current_median_history_price
     purpose: 
     parameter_json: []
@@ -688,6 +772,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_current_median_history_price",
       "params":[], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-current-median-history-price)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-current-median-history-price)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_active
     purpose: |
       Returns a list of discussions based on active.
@@ -706,6 +794,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_active", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-active)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-active)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_author_before_date
     purpose: |
       Returns a list of discussions based on author before date.
@@ -720,6 +812,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_author_before_date",
       "params":["hiveio","firstpost","2016-04-19T22:49:43",1], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-author-before-date)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-author-before-date)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_blog
     purpose: |
       Returns a list of discussions by blog.
@@ -738,6 +834,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_blog", "params":[{"tag":"alice","limit":10}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-blog)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-blog)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_cashout
     purpose: |
       Returns a list of discussions by cashout.
@@ -756,6 +856,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_cashout", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-cashout)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-cashout)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_children
     purpose: |
       Returns a list of discussions by children.
@@ -774,6 +878,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_children", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-children)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-children)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_comments
     purpose: |
       Returns a list of discussions by comments.
@@ -792,6 +900,10 @@
     expected_curl_responses:
     - 
     - Comment is not in account's comments
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-comments)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-comments)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_created
     purpose: |
       Returns a list of discussions by created.
@@ -810,6 +922,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_created", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-created)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-created)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_feed
     since: HF14
     purpose: |
@@ -827,6 +943,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_feed", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-feed)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-feed)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_hot
     purpose: |
       Returns a list of discussions by hot.
@@ -845,6 +965,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_hot", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-hot)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-hot)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_promoted
     since: HF13
     purpose: |
@@ -864,6 +988,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_promoted", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-promoted)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-promoted)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_trending
     purpose: |
       Returns a list of discussions by trending.
@@ -882,6 +1010,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_trending", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-trending)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-trending)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_discussions_by_votes
     purpose: |
       Returns a list of discussions by votes.
@@ -900,6 +1032,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_discussions_by_votes", "params":[{"tag":"photography","limit":10,"truncate_body":0}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-votes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_dynamic_global_properties
     purpose: |
       Returns the current dynamic global properties.  See: [Understanding
@@ -936,6 +1072,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_dynamic_global_properties", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-dynamic-global-properties)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-dynamic-global-properties)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_escrow
     since: HF14
     purpose: |
@@ -949,6 +1089,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_escrow", "params":["hiveio",
       1234], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-escrow)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-escrow)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_expiring_vesting_delegations
     since: HF17
     purpose: |
@@ -971,6 +1115,10 @@
       "params":["hiveio","2018-01-01T00:00:00"], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_expiring_vesting_delegations",
       "params":["alice","2017-12-01T00:00:00"], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#api-call)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-expiring-vesting-delegations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_feed
     since: HF14
     purpose: |
@@ -992,6 +1140,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_feed", "params":["alice",1,10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-feed)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-feed)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_feed_entries
     since: HF14
     purpose: |
@@ -1013,6 +1165,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_feed_entries", "params":["alice",1,10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-feed-entries)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-feed-entries)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_feed_history
     purpose: |
       Returns the history of price feed values.
@@ -1027,6 +1183,10 @@
       price_history: []
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_feed_history", "params":[], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-feed-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-feed-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_follow_count
     since: HF9
     purpose: |
@@ -1049,6 +1209,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_follow_count", "params":["alice"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-follow-count)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-follow-count)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_followers
     since: HF9
     purpose: |
@@ -1077,6 +1241,10 @@
     testnet:
       working: false
       detail: "Will not work because this function requires jussi to work correctly which is not available on the testnet"
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-followers)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-followers)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_following
     since: HF9
     purpose: |
@@ -1099,6 +1267,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_following", "params":["alice",null,"ignore",100],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-following)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-following)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_hardfork_version
     purpose: |
       Returns the current hardfork version.
@@ -1109,6 +1281,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_hardfork_version", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-hardfork-version)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-hardfork-version)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_key_references
     since: HF16
     purpose: |
@@ -1122,6 +1298,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_key_references", "params":[["STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH"]],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-key-references)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-key-references)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_market_history
     purpose: |
       Returns the market history for the internal HBD:HIVE market.  Parameters: `bucket_seconds:int`; `start:timestamp`; `end:timestamp`
@@ -1166,6 +1346,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_market_history", "params":[86400,"2018-01-01T00:00:00","2018-01-02T00:00:00"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#api-call)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-market-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_market_history_buckets
     purpose: |
       Returns the bucket seconds being tracked by the plugin.
@@ -1181,6 +1365,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_market_history_buckets", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-market-history-buckets)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-market-history-buckets)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_next_scheduled_hardfork
     purpose: |
       Returns the next scheduled hardfork.
@@ -1193,6 +1381,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_next_scheduled_hardfork", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-next-scheduled-hardfork)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-next-scheduled-hardfork)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_open_orders
     purpose: |
       Returns the open orders for an account.  `account:string`
@@ -1206,6 +1398,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_open_orders", "params":["alice"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-open-orders)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-open-orders)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_ops_in_block
     purpose: |
       Returns all operations contained in a block.  Parameters: `block_num:int`; `only_virtual:boolean`
@@ -1235,6 +1431,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_ops_in_block", "params":[5443322,true],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-ops-in-block)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-ops-in-block)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_order_book
     purpose: |
       Returns the internal market order book.  Parameters: `limit:int` up to 500
@@ -1253,6 +1453,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_order_book", "params":[10], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_order_book", "params":[50], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-order-book)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-order-book)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_owner_history
     purpose: |
       Returns the owner history of an account.  Parameters: `account:string`
@@ -1268,6 +1472,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_owner_history", "params":["hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-owner-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-owner-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_post_discussions_by_payout
     since: HF17
     purpose: |
@@ -1287,6 +1495,10 @@
       "params":[{"tag":"steem","limit":1}], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_post_discussions_by_payout",
       "params":[{"tag":"photography","limit":10,"truncate_body":0}], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-post-discussions-by-payout)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-post-discussions-by-payout)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_potential_signatures
     purpose: |
       This method will return the set of all public keys that could possibly sign for a given transaction.
@@ -1303,6 +1515,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_potential_signatures", "params":[{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[["pow",{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}]],"extensions":[],"signatures":[]}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-potential-signatures)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-potential-signatures)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_reblogged_by
     since: HF14
     purpose: |
@@ -1326,6 +1542,10 @@
     expected_curl_responses:
     - 
     - 'unknown key:unknown key:'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-reblogged-by)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-reblogged-by)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_recent_trades
     purpose: |
       Returns the most recent trades for the internal HBD:HIVE market.  Parameters: `limit:int` up to 1000
@@ -1347,6 +1567,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_recent_trades", "params":[500],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recent-trades)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recent-trades)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_recovery_request
     since: HF11
     purpose: |
@@ -1363,6 +1587,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_recovery_request", "params":["hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recovery-request)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_replies_by_last_update
     purpose: |
       Returns a list of replies by last update.  `start_parent_author:string`, `start_permlink:string`, `limit:int` up to 100
@@ -1376,6 +1604,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_replies_by_last_update", "params":["hiveio","firstpost",1],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-replies-by-last-update)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-replies-by-last-update)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_required_signatures
     purpose: |
       This API will take a partially signed transaction and a set of public keys that the owner has the ability to sign for and return the minimal subset of public keys that should add signatures to the transaction. Parameters: `trx:object`; `available_keys:[string]`
@@ -1393,6 +1625,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_required_signatures", "params":[{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[["pow",{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}]],"extensions":[],"signatures":[]},[]],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-required-signatures)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-required-signatures)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_reward_fund
     since: HF17
     purpose: |
@@ -1415,6 +1651,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_reward_fund", "params":["post"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-reward-fund)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-reward-fund)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_savings_withdraw_from
     since: HF14
     purpose: |
@@ -1431,6 +1671,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_savings_withdraw_from", "params":["hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-savings-withdraw-from)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-savings-withdraw-from)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_savings_withdraw_to
     since: HF14
     purpose: |
@@ -1447,11 +1691,16 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_savings_withdraw_to", "params":["hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-savings-withdraw-to)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-savings-withdraw-to)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_state
     deprecated: true
-    purpose: 'Returns the state of a path.  **Deprecated.**  Parameters: `path:string`
-
-'
+    purpose: |
+      Returns the state of a path.  **Deprecated.**  Parameters: `path:string`
+      
+      See: [JS: Get State Replacement Api]({{ '/tutorials-javascript/get_state_replacement_api.html' | relative_url }})
     parameter_json:
     - ''
     expected_response_json:
@@ -1518,6 +1767,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_state", "params":["/@hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-state)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-state)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_tags_used_by_author
     purpose: |
       Returns a list of tags used by an author.  Parameters: `author:string`
@@ -1533,6 +1786,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_tags_used_by_author", "params":["hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#api-call)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-tags-used-by-author)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_ticker
     purpose: |
       Returns the market ticker for the internal HBD:HIVE market.
@@ -1548,6 +1805,10 @@
       hbd_volume: 0.000 HIVE
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_ticker", "params":[], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-ticker)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-ticker)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_trade_history
     purpose: |
       Returns the trade history for the internal HBD:HIVE market.  Parameters: `start:timestamp`; `end:timestamp`; `limit:int` up to 1000
@@ -1568,6 +1829,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_trade_history", "params":["2018-01-01T00:00:00","2018-01-02T00:00:00",10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-trade-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-trade-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_transaction
     purpose: |
       Returns the details of a transaction based on a transaction id.  Parameters: `trx_id:string`
@@ -1594,6 +1859,10 @@
       "id":1}'
     expected_curl_responses:
     - account_history_api_plugin not enabled
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-transaction)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-transaction)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_transaction_hex
     purpose: |
       Returns a hexdump of the serialized binary form of a transaction.
@@ -1610,6 +1879,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_transaction_hex", "params":[{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[["pow",{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}]],"extensions":[],"signatures":[]}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-transaction-hex)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-transaction-hex)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_trending_tags
     purpose: |
       Returns the list of trending tags.  Parameter: `start_tag:string`; `limit:int` up to 100
@@ -1617,7 +1890,7 @@
       | `tag` (string) | `limit` (int) | |
       |----------------|---------------|-|
       | `null` | 100 | Queries the top 100 trending tags. |
-      | `"steem"` | 10 | Queries the tags after "steem", up to 10 tags. |
+      | `"hive"` | 10 | Queries the tags after "hive", up to 10 tags. |
       
       Also see: [tags_api.get_trending_tags]({{ '/apidefinitions/#tags_api.get_trending_tags' | relative_url }}), [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#condenser_apiget_trending_tags' | relative_url }})
     parameter_json:
@@ -1633,11 +1906,15 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_trending_tags", "params":[null,100],
       "id":1}'
-    - '{"jsonrpc":"2.0", "method":"condenser_api.get_trending_tags", "params":["steem",10],
+    - '{"jsonrpc":"2.0", "method":"condenser_api.get_trending_tags", "params":["hive",10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-trending-tags)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-trending-tags)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_version
     purpose: |
-      Returns the versions of blockchain, steem, and FC.
+      Returns the versions of blockchain, hive, and FC.
       
       Also see: [database_api.get_version]({{ '/apidefinitions/#database_api.get_version' | relative_url }}), [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#condenser_apiget_trending_tags' | relative_url }})
     parameter_json: []
@@ -1647,6 +1924,10 @@
       fc_revision: ''
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_version", "params":[], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-version)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-version)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_vesting_delegations
     since: HF17
     purpose: |
@@ -1656,7 +1937,7 @@
       |------------------------------|--------------------------|---------------|-|
       | `"hiveio"` | `null` | `10` | Queries up to 10 vesting delegations by "hiveio". |
       
-      Also see: [database_api.list_vesting_delegations]({{ '/apidefinitions/#database_api.list_vesting_delegations' | relative_url }}), [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#condenser_apiget_trending_tags' | relative_url }}), [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#condenser_apiget_vesting_delegations' | relative_url }})
+      Also see: [database_api.list_vesting_delegations]({{ '/apidefinitions/#database_api.list_vesting_delegations' | relative_url }}), [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#condenser_apiget_vesting_delegations' | relative_url }})
     parameter_json:
     - ''
     - ''
@@ -1670,6 +1951,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_vesting_delegations", "params":["hiveio",null,10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-vesting-delegations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_volume
     purpose: |
       Returns the market volume for the past 24 hours.
@@ -1681,6 +1966,10 @@
       hbd_volume: 0.000 HIVE
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_volume", "params":[], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-volume)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-volume)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_withdraw_routes
     purpose: |
       Returns the withdraw routes for an account.  Parameters: `account:string`; `type:string`
@@ -1708,6 +1997,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_withdraw_routes", "params":["hiveio","all"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-withdraw-routes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-withdraw-routes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_witness_by_account
     purpose: |
       Returns the witness of an account.  Parameters: `account:string`
@@ -1748,6 +2041,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_witness_by_account", "params":["hiveio"],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witness-by-account)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witness-by-account)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_witness_count
     purpose: 
     parameter_json: []
@@ -1755,6 +2052,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_witness_count", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witness-count)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witness-count)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_witness_schedule
     purpose: |
       Returns the current witness schedule.
@@ -1783,6 +2084,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_witness_schedule", "params":[],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witness-schedule)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witness-schedule)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_witnesses
     purpose: |
       Returns current witnesses.
@@ -1794,6 +2099,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_witnesses", "params":[[28]],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witnesses)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_witnesses_by_vote
     purpose: |
       Returns current witnesses by vote.  Parameters: `start_name:string`; `limit:int` up to 1000
@@ -1813,6 +2122,10 @@
       21], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.get_witnesses_by_vote", "params":["a",
       1], "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses-by-vote)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witnesses-by-vote)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.lookup_account_names
     purpose: |
       Looks up account names.  `accounts:[string]`
@@ -1903,6 +2216,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.lookup_account_names", "params":[["hiveio"]],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#lookup-account-names)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#lookup-account-names)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.lookup_accounts
     purpose: |
       Looks up accounts starting with name.  Parameters`lower_bound_name:string`; `limit:int` up to 1000
@@ -1919,6 +2236,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.lookup_accounts", "params":["a",10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#lookup-accounts)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#lookup-accounts)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.lookup_witness_accounts
     purpose: |
       Looks up witness accounts starting with name.  Parameters: `lower_bound_name:string`; `limit:int` up to 1000
@@ -1935,6 +2256,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.lookup_witness_accounts", "params":["a",10],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#lookup-witness-accounts)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#lookup-witness-accounts)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.verify_account_authority
     disabled: true
     purpose: |
@@ -1950,6 +2275,10 @@
       "id":1}'
     expected_curl_responses:
     - Missing Active Authority hiveio
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#verify-account-authority)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#verify-account-authority)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.verify_authority
     purpose: |
       Returns true if the transaction has all of the required signatures.
@@ -1966,12 +2295,19 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.verify_authority", "params":[{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[["pow",{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}]],"extensions":[],"signatures":[]}],
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#verify-authority)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#verify-authority)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.get_account_references
     disabled: true
     purpose: |
       **Not Implemented**
     parameter_json: "[]"
     expected_response_json: "[]"
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-references)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.find_proposals
     purpose: |
       Finds proposals by `proposal.id` (not `proposal.proposal_id`).
@@ -1996,6 +2332,8 @@
       ]
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.find_proposals", "params":[[0]], "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.list_proposal_votes
     purpose: |
       Returns all proposal votes, starting with the specified voter or `proposal.id`.  Parameters: `start:array`; `limit:int`; `order:string`; `order_direction:string`; `status:string`
@@ -2049,6 +2387,8 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"condenser_api.list_proposal_votes", "params":[[""], 10, "by_voter_proposal", "ascending", "active"], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.list_proposal_votes", "params":[[0], 10, "by_proposal_voter", "ascending", "active"], "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: condenser_api.list_proposals
     purpose: |
       Returns all proposals, starting with the specified creator or start date.  Parameters: `start:array`; `limit:int`; `order:string`; `order_direction:string`; `status:string`
@@ -2108,3 +2448,5 @@
     - '{"jsonrpc":"2.0", "method":"condenser_api.list_proposals", "params":[["alice"], 10, "by_creator", "ascending", "all"], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.list_proposals", "params":[[""], 1000, "by_creator", "ascending", "votable"], "id":1}'
     - '{"jsonrpc":"2.0", "method":"condenser_api.list_proposals", "params":[[10], 1000, "by_total_votes", "ascending", "votable"], "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/database_api.yml b/_data/apidefinitions/database_api.yml
index 1e3e62cd1831f963ca30cc6618c766eed8448c17..239d7aac489daf6aee7af7c36dafc6466daf8123 100644
--- a/_data/apidefinitions/database_api.yml
+++ b/_data/apidefinitions/database_api.yml
@@ -29,6 +29,10 @@
     expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_account_recovery_requests", "params": {"accounts":["hiveio"]}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recovery-request)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_accounts
     purpose: |
       Returns accounts, queried by name.  Parameters: `account:string array`
@@ -202,6 +206,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_accounts", "params": {"accounts":["hiveio"]}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.find_accounts", "params": {"accounts":["hiveio", "alice"]}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-accounts)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.get_all_accounts)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_change_recovery_account_requests
     since: HF11
     purpose: |
@@ -224,12 +232,20 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_change_recovery_account_requests", "params": {"accounts":["hiveio"]}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.find_change_recovery_account_requests)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_comments
     purpose: Search for comments.
     parameter_json: '{"start":[["",""]], "limit":0, "order":""}'
     expected_response_json: '{"comments":[]}'
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_comments", "params": {"start":[["temp","test1"],["temp","foobar"]], "limit":10, "order":"by_account"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-content)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-content)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_decline_voting_rights_requests
     since: HF14
     purpose: Returns a list of requests to decline voting rights.
@@ -237,6 +253,8 @@
     expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_decline_voting_rights_requests", "params": {"accounts":["temp","null"]}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_escrows
     since: HF14
     purpose: Returns a list of escrows.
@@ -275,6 +293,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_escrows", "params": {"from": "temp"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-escrow)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-escrow)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_limit_orders
     purpose: Returns a list of limit orders.
     parameter_json: '{"account":""}'
@@ -305,6 +327,8 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_limit_orders", "params": {"account":"temp"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_owner_histories
     purpose: |
       Returns owner authority history.  Parameters: `owner:string`
@@ -318,6 +342,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_owner_histories", "params": {"owner":"hiveio"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.find_owner_histories", "params": {"owner":"alice"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-owner-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-owner-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_savings_withdrawals
     since: HF14
     purpose: |
@@ -331,6 +359,10 @@
     expected_response_json: '{"withdrawals":[]}' # TODO - recheck in HF23
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_savings_withdrawals", "params": {"start":"temp"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-savings-withdraw-from)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-savings-withdraw-from)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_hbd_conversion_requests
     purpose: |
       Returns the list of HBD conversion requests for an account.  Parameters: `account:string`
@@ -344,6 +376,8 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_hbd_conversion_requests", "params": {"account":"hiveio"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.find_hbd_conversion_requests", "params": {"account":"alice"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_vesting_delegation_expirations
     since: HF17
     purpose: |
@@ -372,6 +406,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegation_expirations", "params": {"account":"hiveio"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegation_expirations", "params": {"account":"alice"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_expiring_vesting_delegations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_vesting_delegations
     since: HF17
     purpose: |
@@ -401,6 +439,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegations", "params": {"account":"hiveio"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegations", "params": {"account":"alice"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_vesting_delegations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_votes
     purpose: |
       Returns all votes for the given post.  Parameters: `author:string`; `permlink:string`
@@ -432,6 +474,10 @@
     expected_curl_responses:
     - 
     - Could not find comment alice/a-post-by-alice
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_account_votes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_withdraw_vesting_routes
     purpose: Returns the list of vesting withdraw routes for an account.
     parameter_json: '{"account":"","order":"by_name"}'
@@ -449,6 +495,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_withdraw_vesting_routes", "params": {"account":"temp", "order":"by_destination"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-withdraw-routes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_withdraw_routes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_witnesses
     purpose: Search for witnesses.
     parameter_json: '{"owners":[]}'
@@ -503,6 +553,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_witnesses", "params": {"owners":["initminer"]}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-witnesses)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_active_witnesses
     purpose: Returns the list of active witnesses.
     parameter_json: "{}"
@@ -534,6 +588,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_active_witnesses", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-active-witnesses)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-witnesses)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_config
     purpose: |
       Returns information about compile-time constants. Some properties may
@@ -809,6 +867,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_config", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-config)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-config)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_current_price_feed
     purpose: Returns the current price feed.
     parameter_json: "{}"
@@ -827,6 +889,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_current_price_feed", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-current-median-history-price)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_median_price)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_dynamic_global_properties
     purpose: |
       Returns the current dynamic global properties.  See: [Understanding
@@ -930,6 +996,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_dynamic_global_properties", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-dynamic-global-properties)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_dynamic_global_properties)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_feed_history
     purpose: Returns the history of price feed values.
     parameter_json: "{}"
@@ -952,6 +1022,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_feed_history", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-current-median-history-price)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_median_price)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_hardfork_properties
     purpose: Returns the current properties about the blockchain's hardforks.
     parameter_json: "{}"
@@ -991,6 +1065,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_hardfork_properties", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-hardfork-version)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_hardfork_properties)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_order_book
     purpose: Returns the order book.
     parameter_json: '{"limit":0,"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}}'
@@ -1000,6 +1078,9 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.get_order_book", "params":{"limit":50,"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-order-book)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_potential_signatures
     purpose: |
       This method will return the set of all public keys that could possibly
@@ -1011,6 +1092,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_potential_signatures", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]}},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-potential-signatures)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-potential-signatures)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_required_signatures
     purpose: This API will take a partially signed transaction and a set of public
       keys that the owner has the ability to sign for and return the minimal subset
@@ -1020,6 +1105,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_required_signatures", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]},"available_keys":[]},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-required-signatures)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-required-signatures)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_reward_funds
     since: HF17
     purpose: Returns information about the current reward funds.
@@ -1047,6 +1136,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_reward_funds", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-reward-fund)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-reward-fund)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_transaction_hex
     purpose: Returns a hexdump of the serialized binary form of a transaction.
     parameter_json: '{"trx":{"ref_block_num":0,"ref_block_prefix":0,"expiration":"1970-01-01T00:00:00","operations":[],"extensions":[],"signatures":[]}}'
@@ -1054,6 +1147,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_transaction_hex", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]}},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-transaction-hex)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-transaction-hex)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_version
     since: HF20
     purpose: Returns the compile time versions of blockchain, steem, FC. Also returns
@@ -1069,6 +1166,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_version", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-version)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-version)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_witness_schedule
     purpose: Returns the current witness schedule.
     parameter_json: "{}"
@@ -1147,6 +1248,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_witness_schedule", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witness-schedule)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witness-schedule)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_account_recovery_requests
     since: HF11
     purpose: |
@@ -1166,6 +1271,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_account_recovery_requests", "params": {"start":"", "limit":10, "order":"by_account"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_account_recovery_requests", "params": {"start":["1960-01-01T00:00:00"], "limit":10, "order":"by_expiration"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recovery-request)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_accounts
     purpose: |
       List accounts ordered by specified key.  Parameters: `start:object`, `limit:int`, `order:string`
@@ -1337,6 +1446,10 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_accounts", "params": {"start":"", "limit":10, "order":"by_name"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_accounts", "params": {"start":["", ""], "limit":10, "order":"by_proxy"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_accounts", "params": {"start":["1960-01-01T00:00:00", ""], "limit":10, "order":"by_next_vesting_withdrawal"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-accounts)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.get_all_accounts)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_change_recovery_account_requests
     since: HF11
     purpose: |
@@ -1371,6 +1484,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_change_recovery_account_requests", "params": {"start":"alice", "limit":10, "order":"by_account"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_change_recovery_account_requests", "params": {"start":["1960-01-01T00:00:00",""], "limit":10, "order":"by_effective_date"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.list_change_recovery_account_requests)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_comments
     purpose: |
       Returns all comments, starting with the specified options.  Parameters: `start:array`; `limit:int`; `order:string`
@@ -1455,6 +1572,10 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["",""], "limit":10, "order":"by_permlink"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","firstpost","",""], "limit":10, "order":"by_root"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","firstpost","",""], "limit":10, "order":"by_parent"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-created)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.comment.html#module-beem.comment)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_decline_voting_rights_requests
     since: HF14
     purpose: |
@@ -1479,6 +1600,8 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_decline_voting_rights_requests", "params": {"start":"", "limit":10, "order":"by_account"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_decline_voting_rights_requests", "params": {"start":["1970-01-01T00:00:00","",""], "limit":10, "order":"by_effective_date"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_escrows
     since: HF14
     purpose: |
@@ -1534,6 +1657,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_escrows", "params": {"start":["",0], "limit":10, "order":"by_from_id"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_escrows", "params": {"start":[true, "1970-01-01T00:00:00", 0], "limit":10, "order":"by_ratification_deadline"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-escrow)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_escrow)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_limit_orders
     purpose: |
       Returns a list of limit orders.  Parameters: `start:array`; `limit:int`; `order:string`
@@ -1581,6 +1708,8 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_limit_orders", "params": {"start":[{"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}},0], "limit":10, "order":"by_price"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_limit_orders", "params": {"start":["alice",0], "limit":10, "order":"by_account"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_owner_histories
     purpose: |
       Returns a list of owner authority histories.  Parameters: `start:array`, `limit:int`
@@ -1615,6 +1744,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_owner_histories", "params": {"start":["hiveio","1970-01-01T00:00:00"], "limit":10}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_owner_histories", "params": {"start":["alice","1970-01-01T00:00:00"], "limit":10}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-owner-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_owner_history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_savings_withdrawals
     since: HF14
     purpose: |
@@ -1659,6 +1792,10 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_savings_withdrawals", "params": {"start":[0], "limit":10, "order":"by_from_id"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_savings_withdrawals", "params": {"start":["2018-12-07T16:54:03", "hiveio", 0], "limit":10, "order":"by_complete_from_id"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_savings_withdrawals", "params": {"start":["", "1970-01-01T00:00:00", 0], "limit":10, "order":"by_to_complete"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-savings-withdraw-from)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_savings_withdrawals)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_hbd_conversion_requests
     purpose: |
       Returns the list of HBD conversion requests for an account.  Parameters: `start:array`, `limit:int`, `order:string`
@@ -1696,6 +1833,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_hbd_conversion_requests", "params": {"start":["hiveio", 0], "limit":10, "order":"by_account"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_hbd_conversion_requests", "params": {"start":["2018-12-07T16:54:03", 0], "limit":10, "order":"by_conversion_date"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-conversion-requests)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_conversion_requests)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_vesting_delegation_expirations
     since: HF17
     purpose: |
@@ -1733,6 +1874,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_vesting_delegation_expirations", "params": {"start":["1970-01-01T00:00:00",0], "limit":10, "order":"by_expiration"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_vesting_delegation_expirations", "params": {"start":["alice", "1970-01-01T00:00:00",0], "limit":10, "order":"by_account_expiration"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_expiring_vesting_delegations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_vesting_delegations
     since: HF17
     purpose: |
@@ -1767,6 +1912,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_vesting_delegations", "params": {"start":["",""], "limit":10, "order":"by_delegation"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_expiring_vesting_delegations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_votes
     purpose: |
       Returns all votes, starting with the specified voter and/or author and permlink.  Parameters: `start:array`; `limit:int`; `order:string`
@@ -1811,6 +1960,10 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["", "", ""], "limit":10, "order":"by_voter_comment"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["", "", "hiveio"], "limit":10, "order":"by_comment_voter"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["alice", "xeroc", "vanteem-config"], "limit":10, "order":"by_voter_comment"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.vote.html#beem.vote.AccountVotes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_withdraw_vesting_routes
     purpose: |
       Returns a list of vesting withdraw routes.  Parameters: `start:array`; `limit:int`; `order:string`
@@ -1845,6 +1998,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_withdraw_vesting_routes", "params": {"start":["temp",""], "limit":10, "order":"by_withdraw_route"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_withdraw_vesting_routes", "params": {"start":["",0], "limit":10, "order":"by_destination"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-withdraw-routes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.withdraw_vesting)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_witness_votes
     purpose: |
       Returns a list of witness votes.  Parameters: `start:array`; `limit:int`; `order:string`
@@ -1877,6 +2034,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_witness_votes", "params": {"start":["",""], "limit":10, "order":"by_account_witness"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_witness_votes", "params": {"start":["",""], "limit":10, "order":"by_witness_account"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses-by-vote)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.witness.html#beem.witness.WitnessesRankedByVote)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_witnesses
     purpose: |
       Returns the list of witnesses.  Parameters: `start:object`; `limit:int`; `order:string`
@@ -1952,6 +2113,10 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_witnesses", "params": {"start":"", "limit":10, "order":"by_name"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_witnesses", "params": {"start":[0,""], "limit":10, "order":"by_vote_name"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_witnesses", "params": {"start":["473718186844702107410533306","alice"], "limit":10, "order":"by_schedule_time"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses-by-vote)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.witness.html#beem.witness.WitnessesRankedByVote)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.verify_account_authority
     disabled: true
     purpose: |
@@ -1962,6 +2127,10 @@
     - '{"jsonrpc":"2.0", "method":"database_api.verify_account_authority", "params":{"account":"temp","signers":["STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX"]}, "id":1}'
     expected_curl_responses:
     - Missing Active Authority hiveio
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#verify-account-authority)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.verify_account_authority)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.verify_authority
     purpose: |
       Returns true if the transaction has all of the required signatures,
@@ -1971,6 +2140,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.verify_authority", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]}},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#verify-authority)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html#beem.transactionbuilder.TransactionBuilder.verify_authority)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.verify_signatures
     purpose: This is a general purpose API that checks signatures against accounts
       for an arbitrary sha256 hash using the existing authority structures.
@@ -1978,6 +2151,8 @@
     expected_response_json: '{"valid":false}'
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.verify_signatures", "params":{"hash": "0000000000000000000000000000000000000000000000000000000000000000", "signatures": [], "required_owner": [], "required_active": [], "required_posting": [], "required_other": []}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_proposals
     purpose: |
       Finds proposals by `proposal.id` (not `proposal.proposal_id`).
@@ -2002,6 +2177,8 @@
       }]}
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_proposals", "params":{"proposal_ids": [0]}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_proposal_votes
     purpose: |
       Returns all proposal votes, starting with the specified voter or `proposal.id`.  Parameters: `start:array`; `limit:int`; `order:string`; `order_direction:string`; `status:string`
@@ -2055,6 +2232,8 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_proposal_votes", "params":{"start": [""], "limit": 10, "order": "by_voter_proposal", "order_direction": "ascending", "status": "active"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_proposal_votes", "params":{"start": [0], "limit": 10, "order": "by_proposal_voter", "order_direction": "ascending", "status": "active"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_proposals
     purpose: |
       Returns all proposals, starting with the specified creator or start date.  Parameters: `start:array`; `limit:int`; `order:string`; `order_direction:string`; `status:string`
@@ -2118,6 +2297,8 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": ["alice"], "limit": 10, "order": "by_creator", "order_direction": "ascending", "status": "all"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": [""], "limit": 1000, "order": "by_creator", "order_direction": "ascending", "status": "votable"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": [10], "limit": 1000, "order": "by_total_votes", "order_direction": "ascending", "status": "votable"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_smt_contributions
     since: Mysterious Future
     purpose: |
@@ -2144,6 +2325,8 @@
       ]}
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_smt_contributions", "params":{"symbol_contributors": []}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_smt_token_emissions
     since: Mysterious Future
     purpose: |
@@ -2154,6 +2337,8 @@
     expected_response_json: '{"token_emissions":[]}' # TODO - recheck in HF23
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_smt_token_emissions", "params":{"asset_symbol":{"nai":"@@422838704","precision":0}}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.find_smt_tokens
     since: Mysterious Future
     purpose: |
@@ -2164,6 +2349,8 @@
     expected_response_json: '{"tokens":[]}' # TODO - recheck in HF23
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.find_smt_tokens", "params":{"symbols":[],"ignore_precision":false}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.get_nai_pool
     since: Mysterious Future
     purpose: |
@@ -2218,6 +2405,8 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.get_nai_pool", "params":{}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_smt_contributions
     since: Mysterious Future
     purpose: |
@@ -2258,6 +2447,8 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_smt_contributions", "params":{"start":[{"nai": "@@422838704", "precision": 0}, 0],"limit":10,"order":"by_symbol_id"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_smt_contributions", "params":{"start":[{"nai": "@@422838704", "precision": 0}, "alice", 0],"limit":10,"order":"by_symbol_contributor"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_smt_token_emissions
     since: Mysterious Future
     purpose: |
@@ -2309,6 +2500,8 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"database_api.list_smt_token_emissions", "params":{"start":[{"nai": "@@422838704", "precision": 0}, "2019-08-07T16:54:03"],"limit":10,"order":"by_symbol_time"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: database_api.list_smt_tokens
     since: Mysterious Future
     purpose: |
@@ -2387,3 +2580,5 @@
     - '{"jsonrpc":"2.0", "method":"database_api.list_smt_tokens", "params":{"start":{"nai": "@@422838704", "precision": 0},"limit":10,"order":"by_symbol"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_smt_tokens", "params":{"start":"","limit":10,"order":"by_control_account"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"database_api.list_smt_tokens", "params":{"start":["", {"nai": "@@422838704", "precision": 0}],"limit":10,"order":"by_control_account"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/debug_node_api.yml b/_data/apidefinitions/debug_node_api.yml
index 18ef64e431ad10afdc426624ca9e607a44f72564..46d81b405de3b989c9e910f5d98fed71b778018a 100644
--- a/_data/apidefinitions/debug_node_api.yml
+++ b/_data/apidefinitions/debug_node_api.yml
@@ -11,35 +11,53 @@
     purpose: Generate blocks locally.
     parameter_json: '{"debug_key":"","count":0,"skip":0,"miss_blocks":0,"edit_if_needed":true}'
     expected_response_json: '{"blocks":0}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_generate_blocks_until
     purpose: Generate blocks locally until a specified head block time.  Can generate them sparsely.
     parameter_json: '{"debug_key":"","head_block_time":"1970-01-01T00:00:00","generate_sparsely":true}'
     expected_response_json: '{"blocks":0}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_get_hardfork_property_object
     purpose: 
     parameter_json: "{}"
     expected_response_json: '{"id":0,"processed_hardforks":[],"last_hardfork":0,"current_hardfork_version":"0.0.0","next_hardfork":"0.0.0","next_hardfork_time":"1970-01-01T00:00:00"}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_get_json_schema
     purpose: 
     parameter_json: "{}"
     expected_response_json: '{"schema":""}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_get_witness_schedule
     purpose: 
     parameter_json: "{}"
     expected_response_json: '{"id":0,"current_virtual_time":"0","next_shuffle_block_num":21573344,"current_shuffled_witnesses":[],"num_scheduled_witnesses":192,"elected_weight":49,"timeshare_weight":73,"miner_weight":1,"witness_pay_normalization_factor":0,"median_props":{"account_creation_fee":{"amount":"0","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000,"account_subsidy_budget":797,"account_subsidy_decay":347321},"majority_version":"0.0.0","max_voted_witnesses":128,"max_miner_witnesses":131,"max_runner_witnesses":191,"hardfork_required_witnesses":4,"account_subsidy_rd":{"resource_unit":0,"budget_per_time_unit":0,"pool_eq":0,"max_pool_size":0,"decay_params":{"decay_per_time_unit":0,"decay_per_time_unit_denom_shift":0},"min_decay":0},"account_subsidy_witness_rd":{"resource_unit":0,"budget_per_time_unit":0,"pool_eq":0,"max_pool_size":0,"decay_params":{"decay_per_time_unit":0,"decay_per_time_unit_denom_shift":0},"min_decay":0},"min_witness_account_subsidy_decay":0}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_has_hardfork
     purpose: 
     parameter_json: '{"hardfork_id":0}'
     expected_response_json: '{"has_hardfork":false}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_pop_block
     purpose: Pop a block from the blockchain, returning it.
     parameter_json: "{}"
     expected_response_json: "{}"
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_push_blocks
     purpose: Push blocks from existing database.
     parameter_json: '{"src_filename":"","count":0,"skip_validate_invariants":false}'
     expected_response_json: '{"blocks":0}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: debug_node_api.debug_set_hardfork
     purpose: 
     parameter_json: '{"hardfork_id":0}'
     expected_response_json: "{}"
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/follow_api.yml b/_data/apidefinitions/follow_api.yml
index d2c98f9d9edee281aac98b9c0c1dbefdc52351c1..434a0d1b736120e26657b64fe342af67ebfd010d 100644
--- a/_data/apidefinitions/follow_api.yml
+++ b/_data/apidefinitions/follow_api.yml
@@ -27,6 +27,10 @@
       "limit":1}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_account_reputations", "params":{"account_lower_bound":"a",
       "limit":10}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-reputations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-account-reputations)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_blog
     purpose: |
       Returns the list of blog entries for an account.
@@ -97,6 +101,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_blog", "params":{"account":"alice","start_entry_id":0,"limit":50},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-blog)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-blog)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_blog_authors
     purpose: |
       Returns a list of authors that have had their content reblogged on a given blog account.
@@ -117,6 +125,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_blog_authors", "params":{"blog_account":"alice"},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-blog-authors)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-blog-authors)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_blog_entries
     purpose: |
       Returns a list of blog entries for an account.
@@ -140,6 +152,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_blog_entries", "params":{"account":"alice","start_entry_id":0,"limit":50},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-blog-entries)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-blog-entries)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_feed
     since: HF14
     purpose: |
@@ -153,6 +169,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_feed", "params":{"account":"alice","start_entry_id":1,"limit":10},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-feed-entries)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-feed)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_feed_entries
     since: HF14
     purpose: |
@@ -166,6 +186,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_feed_entries", "params":{"account":"alice","start_entry_id":1,"limit":10},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-feed-entries)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-feed-entries)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_follow_count
     since: HF9
     purpose: Returns the count of followers for an account.
@@ -181,6 +205,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_follow_count", "params":{"account":"alice"},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-follow-count)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-follow-count)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_followers
     since: HF9
     purpose: |
@@ -205,6 +233,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_followers", "params":{"account":"alice","start":null,"type":"ignore","limit":100},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-followers)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-followers)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_following
     since: HF9
     purpose: |
@@ -229,6 +261,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"follow_api.get_following", "params":{"account":"alice","start":null,"type":"ignore","limit":100},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-following)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-following)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: follow_api.get_reblogged_by
     since: HF14
     purpose: Returns a list of authors that have reblogged a post.
@@ -242,3 +278,7 @@
     expected_curl_responses:
     - 
     - 'unknown key:unknown key:'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-reblogged-by)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-reblogged-by)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/jsonrpc.yml b/_data/apidefinitions/jsonrpc.yml
index 3b2c4ba67b6c7eedd7547d35b9c7a68e4bb72457..142a787e92dab923ad13f686ebf4365ac22b4ea1 100644
--- a/_data/apidefinitions/jsonrpc.yml
+++ b/_data/apidefinitions/jsonrpc.yml
@@ -209,6 +209,8 @@
       ]
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"jsonrpc.get_methods", "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: jsonrpc.get_signature
     purpose: Returns the signature information for a JSON RPC method including the
       arguments and expected response JSON.
@@ -227,3 +229,5 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"jsonrpc.get_signature", "params":{"method":"database_api.get_dynamic_global_properties"},
       "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/market_history_api.yml b/_data/apidefinitions/market_history_api.yml
index d2ca83d15ce4e95b1035d3b962f5f64ce85a9a8a..f52bfcb6ef18ff14550d4132e4690dc0bae4f5d5 100644
--- a/_data/apidefinitions/market_history_api.yml
+++ b/_data/apidefinitions/market_history_api.yml
@@ -47,6 +47,9 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_market_history", "params":{"bucket_seconds":86400,"start":"2018-01-01T00:00:00","end":"2018-01-02T00:00:00"},
       "id":1}'
+    client_docs:
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-market-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: market_history_api.get_market_history_buckets
     purpose: Returns the bucket seconds being tracked by the plugin.
     parameter_json: "{}"
@@ -63,6 +66,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_market_history_buckets",
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-market-history-buckets)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-market-history-buckets)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: market_history_api.get_order_book
     purpose: Returns the internal market order book.
     parameter_json: '{"limit":500}'
@@ -131,6 +138,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_order_book", "params":{"limit":50},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-order-book)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-order-book)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: market_history_api.get_recent_trades
     purpose: Returns the most recent trades for the internal HBD:HIVE market.
     parameter_json: '{"limit":1000}'
@@ -157,6 +168,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_recent_trades", "params":{"limit":500},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recent-trades)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recent-trades)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: market_history_api.get_ticker
     purpose: Returns the market ticker for the internal HBD:HIVE market.
     parameter_json: "{}"
@@ -179,6 +194,10 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_ticker", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-ticker)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-ticker)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: market_history_api.get_trade_history
     purpose: Returns the trade history for the internal HBD:HIVE market.
     parameter_json: '{"start":"1970-01-01T00:00:00","end":"1970-01-01T00:00:00","limit":1000}'
@@ -203,6 +222,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_trade_history", "params":{"start":"2018-01-01T00:00:00","end":"2018-01-02T00:00:00","limit":10},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-trade-history)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-trade-history)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: market_history_api.get_volume
     purpose: Returns the market volume for the past 24 hours.
     parameter_json: "{}"
@@ -221,3 +244,7 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"market_history_api.get_volume", "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-volume)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-volume)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/network_broadcast_api.yml b/_data/apidefinitions/network_broadcast_api.yml
index 01b9a130d59f52b46d1f07426403f401cc02176f..31ee0b35980bdbc41d8ac2574b634c74727c14de 100644
--- a/_data/apidefinitions/network_broadcast_api.yml
+++ b/_data/apidefinitions/network_broadcast_api.yml
@@ -17,6 +17,10 @@
       "id":1}'
     expected_curl_responses:
     - attempting to push a block that is too old
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#broadcast-api)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/TransactionBuilder)'
   - api_method: network_broadcast_api.broadcast_transaction
     purpose: Used to broadcast a transaction.
     parameter_json: '{"trx":{"ref_block_num":0,"ref_block_prefix":0,"expiration":"1970-01-01T00:00:00","operations":[],"extensions":[],"signatures":[]},"max_block_age":-1}'
@@ -29,3 +33,7 @@
     expected_curl_responses:
     - Internal Error
     - Internal Error
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#broadcast-api)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/TransactionBuilder)'
diff --git a/_data/apidefinitions/rc_api.yml b/_data/apidefinitions/rc_api.yml
index 74a79e873726c4a5261cc6924ef9c747a14a62ff..47e32bcac327dd1095932eef7087abe1a11c0ef7 100644
--- a/_data/apidefinitions/rc_api.yml
+++ b/_data/apidefinitions/rc_api.yml
@@ -38,6 +38,9 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"rc_api.find_rc_accounts", "params":{"accounts":["alice","bob"]},
       "id":1}'
+    client_docs:
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.rc.html)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: rc_api.get_resource_params
     since: HF20
     purpose: |
@@ -244,6 +247,9 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"rc_api.get_resource_params", "id":1}'
+    client_docs:
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.rc.html)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: rc_api.get_resource_pool
     since: HF20
     purpose: |
@@ -271,3 +277,6 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"rc_api.get_resource_pool", "id":1}'
+    client_docs:
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.rc.html)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/reputation_api.yml b/_data/apidefinitions/reputation_api.yml
index 6deb3becc0fe2d532ac7ee0d9bddf093acb73ae3..a5265d5b6bb63e970940ff3f27218034f5ff80fa 100644
--- a/_data/apidefinitions/reputation_api.yml
+++ b/_data/apidefinitions/reputation_api.yml
@@ -28,3 +28,7 @@
       }
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"reputation_api.get_account_reputations", "params": {"account_lower_bound": "steem"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-reputations)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_reputation)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/rewards_api.yml b/_data/apidefinitions/rewards_api.yml
index 4723a9697b7d45955e258d474beed325f8925aa3..1f1747e5fa93e27486273f4f354629e5758f2bf0 100644
--- a/_data/apidefinitions/rewards_api.yml
+++ b/_data/apidefinitions/rewards_api.yml
@@ -29,3 +29,5 @@
       - '{"jsonrpc":"2.0", "method":"rewards_api.simulate_curve_payouts", "params": {"curve": "square_root", "var1": "2000000000000"}, "id":1}'
       - '{"jsonrpc":"2.0", "method":"rewards_api.simulate_curve_payouts", "params": {"curve": "convergent_linear", "var1": "2000000000000"}, "id":1}'
       - '{"jsonrpc":"2.0", "method":"rewards_api.simulate_curve_payouts", "params": {"curve": "convergent_square_root", "var1": "2000000000000"}, "id":1}'
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/tags_api.yml b/_data/apidefinitions/tags_api.yml
index 40cd1430e4675b9b7eed73d62443867f262108cb..ca7734cc02491b204766a21e19d6c8678a23f6a5 100644
--- a/_data/apidefinitions/tags_api.yml
+++ b/_data/apidefinitions/tags_api.yml
@@ -29,6 +29,10 @@
     expected_curl_responses:
     - 
     - 'unknown key:unknown key:'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-active-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-votes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_comment_discussions_by_payout
     since: HF17
     purpose: Returns a list of discussions based on payout.
@@ -39,6 +43,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_comment_discussions_by_payout", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-comment-discussions-by-payout)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-comment-discussions-by-payout)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_content_replies
     purpose: Returns a list of replies.
     parameter_json: '{"author":"","permlink":""}'
@@ -48,8 +56,15 @@
       "permlink":"firstpost"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_content_replies", "params":{"author":"alice",
       "permlink":"a-post-by-alice"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-content-replies)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-content-replies)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussion
-    purpose: Returns the discussion given an author and permlink.
+    purpose: |
+      Returns the discussion given an author and permlink.
+      
+      Also see: [bridge.get_discussion]({{ '/apidefinitions/#bridge.get_discussion' | relative_url }})
     parameter_json: '{"author":"","permlink":""}'
     expected_response_json: |
       {
@@ -128,6 +143,10 @@
       "permlink":"firstpost"}, "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussion", "params":{"author":"alice",
       "permlink":"a-post-by-alice"}, "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-trending)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.discussions.html#beem.discussions.Discussions.get_discussions)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_active
     purpose: Returns a list of discussions based on active.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -212,6 +231,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_active", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-active)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-active)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_author_before_date
     purpose: |
       Returns a list of discussions based on author before date.
@@ -312,6 +335,10 @@
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_author_before_date",
       "params":{"author":"hiveio","start_permlink":"firstpost","before_date":"2016-04-19T22:49:43","limit":1},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-author-before-date)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-author-before-date)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_blog
     purpose: Returns a list of discussions by blog.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -410,6 +437,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_blog", "params":{"tag":"alice","limit":10},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-blog)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-blog)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_cashout
     purpose: Returns a list of discussions by cashout.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -419,6 +450,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_cashout", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-cashout)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-cashout)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_children
     purpose: Returns a list of discussions by children.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -517,6 +552,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_children", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-children)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-children)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_comments
     purpose: Returns a list of discussions by comments.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -604,6 +643,10 @@
     expected_curl_responses:
     - 
     - Comment is not in account's comments
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-comments)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-comments)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_created
     purpose: Returns a list of discussions by created.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -613,6 +656,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_created", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-created)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-created)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_feed
     since: HF14
     purpose: Returns a list of discussions by feed.
@@ -623,6 +670,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_feed", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-feed)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-feed)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_hot
     purpose: Returns a list of discussions by hot.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -632,6 +683,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_hot", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-hot)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-hot)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_promoted
     since: HF13
     purpose: Returns a list of discussions by promoted.
@@ -642,6 +697,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_promoted", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-promoted)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-promoted)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_trending
     purpose: Returns a list of discussions by trending.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -651,6 +710,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_trending", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-trending)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-trending)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_discussions_by_votes
     purpose: Returns a list of discussions by votes.
     parameter_json: '{"tag":"","limit":0,"filter_tags":[],"select_authors":[],"select_tags":[],"truncate_body":0}'
@@ -660,6 +723,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_discussions_by_votes", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-votes)'
+      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-discussions-by-votes)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_post_discussions_by_payout
     since: HF17
     purpose: Returns a list of post discussions by payout.
@@ -670,6 +737,10 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_post_discussions_by_payout", "params":{"tag":"photography","limit":10,"truncate_body":0},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-payout)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.discussions.html#beem.discussions.Post_discussions_by_payout)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_replies_by_last_update
     purpose: |
       Returns a list of replies by last update.
@@ -680,6 +751,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"tags_api.get_replies_by_last_update", "params":{"start_parent_author":"hiveio","start_permlink":"firstpost","limit":1},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#content)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.discussions.html#beem.discussions.Replies_by_last_update)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_tags_used_by_author
     purpose: Returns a list of tags used by an author.
     parameter_json: '{"author":""}'
@@ -687,6 +762,10 @@
     curl_examples:
     - '{"jsonrpc":"2.0", "method":"tags_api.get_tags_used_by_author", "params":{"author":"hiveio"},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#tags)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_tags_used_by_author)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
   - api_method: tags_api.get_trending_tags
     purpose: |
       Returns the list of trending tags.
@@ -699,3 +778,7 @@
       "id":1}'
     - '{"jsonrpc":"2.0", "method":"tags_api.get_trending_tags", "params":{"start_tag":"steem","limit":10},
       "id":1}'
+    client_docs:
+      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-trending-tags)'
+      - '[beem](https://beem.readthedocs.io/en/latest/beem.discussions.html#beem.discussions.Trending_tags)'
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/transaction_status_api.yml b/_data/apidefinitions/transaction_status_api.yml
index 255a9d72b2d25767e4cd2eed654200695a305e5f..6bd740e4337ec0912c5f5e27f07a766c50aacea1 100644
--- a/_data/apidefinitions/transaction_status_api.yml
+++ b/_data/apidefinitions/transaction_status_api.yml
@@ -40,3 +40,5 @@
     testnet:
       working: false
       detail: "Not yet enabled."
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_data/apidefinitions/witness_api.yml b/_data/apidefinitions/witness_api.yml
index b356108a5d6f30509f1e1e35c51f6bda42f80311..16c241bc93765851127aec5546ff36b5f0073449 100644
--- a/_data/apidefinitions/witness_api.yml
+++ b/_data/apidefinitions/witness_api.yml
@@ -29,3 +29,5 @@
     expected_curl_responses:
     - Could not find API witness_api
     - Could not find API witness_api
+    client_docs:
+      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
diff --git a/_includes/api-template.html b/_includes/api-template.html
index 936bf6329d1deca46789456d67bdc02fe59cb61d..58ffa8e2e986d8c777e6e871e6d3d52063555fd9 100644
--- a/_includes/api-template.html
+++ b/_includes/api-template.html
@@ -21,6 +21,9 @@ Methods:
 {% if method.disabled %}
 <li class="warning"><strong><small>Disabled</small></strong></li>
 {% endif %}
+{% if method.client_docs %}
+<li class="info"><strong><small>SDK Reference</small></strong>{% for client_doc in method.client_docs %}<small>{{ client_doc | markdownify }}</small>{% endfor %}</li>
+{% endif %}
 {% assign keywords = method.api_method | split: '.' | last | split: '_' | join: ' ' | keywordify | escape %}
 {% assign search_url = '/search/?q=' | append: keywords %}
 <li class="info"><strong><small><a href="{{ search_url | relative_url }}">Related <i class="fas fa-search fa-xs"></i></a></small></strong></li>
diff --git a/_resources/client_libs.md b/_resources/client_libs.md
index 7c898d92302cb933883f36c33d4de014d1988df2..5d4acea51eed8ef05b90352bd6e976bd899b5ddc 100644
--- a/_resources/client_libs.md
+++ b/_resources/client_libs.md
@@ -9,7 +9,7 @@ Radiator is a Ruby API client to interact with the steem blockchain.
 
 ---
 
-**Hive-JS** - [https://github.com/steemit/steem-js](https://gitlab.syncad.com/hive/hive-js)
+**Hive-JS** - [https://github.com/hive/hive-js](https://gitlab.syncad.com/hive/hive-js)
 
 Pure JavaScript Hive crypto library for node.js and browsers. Can be used to construct, sign and broadcast transactions in JavaScript.
 
diff --git a/_sass/_main.scss b/_sass/_main.scss
index becdcccf68e086d4c1aeef6f73363fbd58695f0e..973be763296398edf3257aa1661584095cb87e9a 100644
--- a/_sass/_main.scss
+++ b/_sass/_main.scss
@@ -623,6 +623,102 @@ blockquote {
   max-height: 100%;
 }
 
+a[href*='hive-keychain'] {
+  background-image: url(../images/languages/nodejs.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='hivesigner.js'] {
+  background-image: url(../images/languages/nodejs.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='hivesigner'] {
+  background-image: url(../images/languages/nodejs.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='hive-js'] {
+  background-image: url(../images/languages/nodejs.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='tutorials-javascript'] {
+  background-image: url(../images/languages/nodejs.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='beem'] {
+  background-image: url(../images/languages/python.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='dhive'] {
+  background-image: url(../images/languages/nodejs.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='openApi'] {
+  background-image: url(../images/languages/python.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='tutorials-python'] {
+  background-image: url(../images/languages/python.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='hive-ruby'] {
+  background-image: url(../images/languages/ruby.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='radiator'] {
+  background-image: url(../images/languages/ruby.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
+a[href*='tutorials-ruby'] {
+  background-image: url(../images/languages/ruby.svg);
+  background-size: .90em .90em;
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: .90em;
+}
+
 // See: https://github.com/turbolinks/turbolinks#displaying-progress
 .turbolinks-progress-bar {
   height: 5px;
diff --git a/images/languages/nodejs.svg b/images/languages/nodejs.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b7737c5177a683e6e3b55bd831a7be486b3c07ca
--- /dev/null
+++ b/images/languages/nodejs.svg
@@ -0,0 +1 @@
+<svg id="Layer_1_copy_2" data-name="Layer 1 copy 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.7 29.7"><defs><style>.cls-1{fill:#83cd29;}</style></defs><title>_01_languages logos [Recovered]</title><path class="cls-1" d="M14.82,1.33a2.08,2.08,0,0,0-1,.25L3.86,7.31a2.09,2.09,0,0,0-1,1.81V20.56a2.09,2.09,0,0,0,1,1.81l2.59,1.5a4.24,4.24,0,0,0,2.3.61c1.86,0,2.93-1.13,2.93-3.1V10.09a.28.28,0,0,0-.29-.27H10.14a.28.28,0,0,0-.29.27V21.38c0,.87-.91,1.75-2.38,1l-2.7-1.58a.3.3,0,0,1-.17-.25V9.12a.33.33,0,0,1,.17-.27l9.9-5.71a.29.29,0,0,1,.29,0l9.9,5.71a.34.34,0,0,1,.17.27V20.56a.32.32,0,0,1-.15.27L15,26.55a.31.31,0,0,1-.29,0L12.12,25a.26.26,0,0,0-.25,0,6.56,6.56,0,0,1-1.5.67c-.16.06-.41.14.08.42l3.33,2a2.08,2.08,0,0,0,2.06,0l9.92-5.71a2.1,2.1,0,0,0,1-1.81V9.12a2.09,2.09,0,0,0-1-1.81L15.85,1.58a2.07,2.07,0,0,0-1-.25Z"/><path class="cls-1" d="M17.4,9.6c-2.8,0-4.46,1.19-4.46,3.17,0,2.15,1.65,2.74,4.34,3,3.21.31,3.46.79,3.46,1.42,0,1.1-.87,1.56-2.94,1.56-2.6,0-3.17-.65-3.36-1.94a.28.28,0,0,0-.27-.25H12.9a.3.3,0,0,0-.29.29c0,1.65.9,3.61,5.19,3.61,3.11,0,4.9-1.22,4.9-3.36S21.25,14.42,18.24,14s-3.34-.6-3.34-1.31.25-1.38,2.5-1.38c2,0,2.76.43,3.07,1.79a.29.29,0,0,0,.27.23H22a.31.31,0,0,0,.21-.1.27.27,0,0,0,.08-.21c-.2-2.34-1.76-3.44-4.9-3.44Z"/></svg>
\ No newline at end of file
diff --git a/images/languages/python.svg b/images/languages/python.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8567bb2b77554473919cd0f543cfba4056895ace
--- /dev/null
+++ b/images/languages/python.svg
@@ -0,0 +1 @@
+<svg id="Layer_1_copy_4" data-name="Layer 1 copy 4" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 29.7 29.7"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}</style><linearGradient id="linear-gradient" x1="970.28" y1="2564.45" x2="996.58" y2="2541.82" gradientTransform="matrix(0.56, 0, 0, -0.57, -545.02, 1458.67)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#5a9fd4"/><stop offset="1" stop-color="#306998"/></linearGradient><linearGradient id="linear-gradient-2" x1="1006.58" y1="2528.08" x2="997.09" y2="2541.5" gradientTransform="matrix(0.56, 0, 0, -0.57, -545.02, 1458.67)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd43b"/><stop offset="1" stop-color="#ffe873"/></linearGradient></defs><title>_01_languages logos [Recovered]</title><g id="g2303"><path id="path1948" class="cls-1" d="M14.64,1.26a18.88,18.88,0,0,0-3.14.27C8.73,2,8.22,3,8.22,4.91V7.38h6.56v1H5.9a4,4,0,0,0-4,3.28,12.08,12.08,0,0,0,0,6.57c.46,1.91,1.56,3.28,3.43,3.28H7.5v-3a4.15,4.15,0,0,1,4.08-4.06h6.48a3.29,3.29,0,0,0,3.28-3.31V4.91a3.65,3.65,0,0,0-3.28-3.39A20.63,20.63,0,0,0,14.64,1.26ZM11,3.26A1.24,1.24,0,1,1,9.81,4.51,1.24,1.24,0,0,1,11,3.26Z"/><path id="path1950" class="cls-2" d="M22.07,8.35V11A4.18,4.18,0,0,1,18,15.15h-6.5a3.34,3.34,0,0,0-3.28,3.31v6.2c0,1.77,1.55,2.8,3.28,3.31a11.06,11.06,0,0,0,6.56,0c1.65-.47,3.28-1.43,3.28-3.31V22.2H14.79v-.73h9.72c1.89,0,2.59-1.31,3.24-3.28a11,11,0,0,0,0-6.57c-.47-1.87-1.36-3.28-3.24-3.28ZM18.36,23.94a1.24,1.24,0,1,1-1.22,1.24A1.23,1.23,0,0,1,18.36,23.94Z"/></g></svg>
\ No newline at end of file
diff --git a/images/languages/ruby.svg b/images/languages/ruby.svg
new file mode 100644
index 0000000000000000000000000000000000000000..414ede9cb8172c86e02308c5ee99e62e72b9d484
--- /dev/null
+++ b/images/languages/ruby.svg
@@ -0,0 +1 @@
+<svg id="Fixing_sizes" data-name="Fixing sizes" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 29.7 29.7"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}.cls-3{fill:url(#linear-gradient-3);}.cls-4{fill:url(#linear-gradient-4);}.cls-5{fill:url(#linear-gradient-5);}.cls-6{fill:url(#linear-gradient-6);}.cls-7{fill:url(#linear-gradient-7);}.cls-8{fill:url(#linear-gradient-8);}.cls-9{fill:#fff;}.cls-10{fill:url(#linear-gradient-9);}.cls-11{fill:url(#linear-gradient-10);}.cls-12{fill:url(#linear-gradient-11);}.cls-13{fill:url(#linear-gradient-12);}.cls-14{fill:#9e1209;}.cls-15{fill:url(#radial-gradient);}.cls-16{fill:url(#radial-gradient-2);}.cls-17{fill:url(#linear-gradient-13);}.cls-18{fill:url(#linear-gradient-14);}</style><linearGradient id="linear-gradient" x1="937.02" y1="1690.77" x2="932.7" y2="1698.4" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fb7655"/><stop offset="0.41" stop-color="#e42b1e"/><stop offset="0.99" stop-color="#900"/><stop offset="1" stop-color="#900"/></linearGradient><linearGradient id="linear-gradient-2" x1="939.17" y1="1697.18" x2="933.6" y2="1700.91" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#871101"/><stop offset="0.99" stop-color="#911209"/><stop offset="1" stop-color="#911209"/></linearGradient><linearGradient id="linear-gradient-3" x1="934.71" y1="1690.54" x2="929.15" y2="1694.27" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-4" x1="923.03" y1="1699.88" x2="923.89" y2="1694.27" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="0.23" stop-color="#e57252"/><stop offset="0.46" stop-color="#de3b20"/><stop offset="0.99" stop-color="#a60003"/><stop offset="1" stop-color="#a60003"/></linearGradient><linearGradient id="linear-gradient-5" x1="928.96" y1="1705.12" x2="929.28" y2="1699.39" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="0.23" stop-color="#e4714e"/><stop offset="0.56" stop-color="#be1a0d"/><stop offset="0.99" stop-color="#a80d00"/><stop offset="1" stop-color="#a80d00"/></linearGradient><linearGradient id="linear-gradient-6" x1="934.23" y1="1710.41" x2="935.18" y2="1706.3" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="0.18" stop-color="#e46342"/><stop offset="0.4" stop-color="#c82410"/><stop offset="0.99" stop-color="#a80d00"/><stop offset="1" stop-color="#a80d00"/></linearGradient><linearGradient id="linear-gradient-7" x1="931.32" y1="1711.8" x2="935.43" y2="1713.85" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="0.54" stop-color="#c81f11"/><stop offset="0.99" stop-color="#bf0905"/><stop offset="1" stop-color="#bf0905"/></linearGradient><linearGradient id="linear-gradient-8" x1="919.43" y1="1701.31" x2="919.77" y2="1697.93" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="0.31" stop-color="#de4024"/><stop offset="0.99" stop-color="#bf190b"/><stop offset="1" stop-color="#bf190b"/></linearGradient><linearGradient id="linear-gradient-9" x1="917.11" y1="1697.02" x2="932.98" y2="1713.33" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#bd0012"/><stop offset="0.07" stop-color="#fff"/><stop offset="0.17" stop-color="#fff"/><stop offset="0.27" stop-color="#c82f1c"/><stop offset="0.33" stop-color="#820c01"/><stop offset="0.46" stop-color="#a31601"/><stop offset="0.72" stop-color="#b31301"/><stop offset="0.99" stop-color="#e82609"/><stop offset="1" stop-color="#e82609"/></linearGradient><linearGradient id="linear-gradient-10" x1="929.27" y1="1695.37" x2="924.49" y2="1696.55" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8c0c01"/><stop offset="0.54" stop-color="#990c00"/><stop offset="0.99" stop-color="#a80d0e"/><stop offset="1" stop-color="#a80d0e"/></linearGradient><linearGradient id="linear-gradient-11" x1="937.48" y1="1701.11" x2="933.23" y2="1704.91" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#7e110b"/><stop offset="0.99" stop-color="#9e0c00"/><stop offset="1" stop-color="#9e0c00"/></linearGradient><linearGradient id="linear-gradient-12" x1="939.04" y1="1708.09" x2="936.92" y2="1710.35" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#79130d"/><stop offset="0.99" stop-color="#9e120b"/><stop offset="1" stop-color="#9e120b"/></linearGradient><radialGradient id="radial-gradient" cx="933.89" cy="1704.84" r="5.2" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a80d00"/><stop offset="0.99" stop-color="#7e0e08"/><stop offset="1" stop-color="#7e0e08"/></radialGradient><radialGradient id="radial-gradient-2" cx="926.69" cy="1697.98" r="6.92" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a30c00"/><stop offset="0.99" stop-color="#800e08"/><stop offset="1" stop-color="#800e08"/></radialGradient><linearGradient id="linear-gradient-13" x1="921.79" y1="1692.65" x2="920.06" y2="1698.5" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8b2114"/><stop offset="0.43" stop-color="#9e100a"/><stop offset="0.99" stop-color="#b3100c"/><stop offset="1" stop-color="#b3100c"/></linearGradient><linearGradient id="linear-gradient-14" x1="935.01" y1="1712.03" x2="938.87" y2="1710.32" gradientTransform="matrix(1, 0, 0, -1, -915.98, 1716.96)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b31000"/><stop offset="0.44" stop-color="#910f08"/><stop offset="0.99" stop-color="#791c12"/><stop offset="1" stop-color="#791c12"/></linearGradient></defs><title>_02_languages logos [Recovered]</title><polygon id="polygon3282" class="cls-1" points="20.38 18.2 8.69 25.13 23.82 24.12 25 8.86 20.38 18.2"/><polygon id="polygon3293" class="cls-2" points="23.85 24.11 22.55 15.13 19.01 19.8 23.85 24.11"/><polygon id="polygon3304" class="cls-3" points="23.86 24.11 14.34 23.35 8.74 25.11 23.86 24.11"/><polygon id="polygon3319" class="cls-4" points="8.75 25.11 11.14 17.32 5.9 18.43 8.75 25.11"/><polygon id="polygon3334" class="cls-5" points="19 19.83 16.82 11.25 10.55 17.12 19 19.83"/><polygon id="polygon3349" class="cls-6" points="24.5 11.37 18.58 6.53 16.93 11.86 24.5 11.37"/><polygon id="polygon3362" class="cls-7" points="21.74 4.86 18.25 6.78 16.05 4.83 21.74 4.86"/><polygon id="polygon3375" class="cls-8" points="4.52 21.05 5.98 18.39 4.8 15.21 4.52 21.05"/><path id="path3377" class="cls-9" d="M4.72,15.11l1.19,3.37,5.16-1.15L17,11.86l1.67-5.28L16,4.72,11.57,6.38c-1.4,1.3-4.13,3.88-4.23,3.93S5.54,13.58,4.72,15.11Z"/><path id="path3400" class="cls-10" d="M8.9,9.06c3-3,7-4.79,8.47-3.27S17.27,11,14.23,14,7.31,18.9,5.81,17.38,5.86,12.07,8.9,9.06Z"/><path id="path3413" class="cls-11" d="M8.75,25.11l2.37-7.82L19,19.82C16.12,22.47,13,24.72,8.75,25.11Z"/><path id="path3424" class="cls-12" d="M17,11.84l2,8a22.2,22.2,0,0,0,5.54-8.48Z"/><path id="path3435" class="cls-13" d="M24.51,11.38c.81-2.43,1-5.92-2.8-6.57L18.59,6.53Z"/><path id="path3437" class="cls-14" d="M4.52,21c.11,4,3,4.08,4.24,4.11L5.91,18.47Z"/><path id="path3448" class="cls-15" d="M17,11.85l5.56,3.41a12.83,12.83,0,0,0,1.92-3.91Z"/><path id="path3459" class="cls-16" d="M11.12,17.29l3.15,6.1a20.42,20.42,0,0,0,4.67-3.56Z"/><path id="path3472" class="cls-17" d="M5.9,18.48,5.45,23.8A3.26,3.26,0,0,0,8.67,25C7.79,22.77,6,18.39,5.9,18.48Z"/><path id="path3485" class="cls-18" d="M18.57,6.54l6.27.89a3.43,3.43,0,0,0-3.11-2.62Z"/></svg>
\ No newline at end of file