HAF Plug & Play: Delegations API

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@freebeings·
0.000 HBD
HAF Plug & Play: Delegations API
![Delegations-API.png](https://files.peakd.com/file/peakd-hive/freebeings/23xARJeZEktso7CQZPehdPdYXBTFnX26dsYDCPquXWfNtMi6WjR7ieci1NpGJKvTLE4ce.png)

---

@imwatsi shares an update on the development of HAF Plug & Play

- GitHub: https://github.com/FreeBeings-io/haf-plug-play

---

# What’s new?

As requested [on GitLab](https://gitlab.syncad.com/hive/tasks_without_projects_yet/-/issues/38#note_108978), I have added a new plug to Plug & Play, that brings endpoints for vesting delegations. This complements the current API [condenser_api.get_vesting_delegations](https://developers.hive.io/apidefinitions/#condenser_api.get_vesting_delegations), which only returns outgoing delegations. Now you can get data about incoming delegations, plus historical delegation data, both incoming and outgoing, for a specified account.

---

I have deployed the API here: https://deleg.hpp.freebeings.io

---

Anyone can run a server with the same API by installing HAF Plug & Play and running the service with the `deleg` plug enabled. I will post a detailed tutorial shortly on how to use Plug & Play to run available plugs and also how to write code to add new plugs that process specific Hive operations.

# Endpoints

The following endpoints are avaialble on the server.

### /api/deleg/account

This returns a summary of vesting delegation balances for an account, incoming and outgoing, at the time of request.

It takes one parameter: `account`; which is the name of the Hive account you want to lookup.

**Example request:**

```
curl -X 'GET' \
  'https://deleg.hpp.freebeings.io/api/deleg/account?account=imwatsi' \
  -H 'accept: application/json'
```

*Or*

```
https://deleg.hpp.freebeings.io/api/deleg/account?account=imwatsi
```

**Example response body:**

```
{
  "account": "imwatsi",
  "balances": {
    "in": 0,
    "out": 303499.927927
  }
}
```

---

### /api/deleg/in

Get a list of delegations that are currently given to an account.

**Paramaters:**

- `account`
- `limit`


**Example request:**

```
curl -X 'GET' \
  'https://deleg.hpp.freebeings.io/api/deleg/in?account=imwatsi.test&limit=100' \
  -H 'accept: application/json'
```

*Or*

```
https://deleg.hpp.freebeings.io/api/deleg/in?account=imwatsi.test&limit=100
```

**Example response body:**

```
[
  {
    "id": 1261821,
    "delegator": "imwatsi",
    "amount": 39451.307672
  }
]
```

---

### /api/deleg/out

Get a list of outgoing delegations from an account.

**Paramaters:**

- `account`
- `limit`


**Example request:**

```
curl -X 'GET' \
  'https://deleg.hpp.freebeings.io/api/deleg/out?account=imwatsi&limit=100' \
  -H 'accept: application/json'
```

*Or*

```
https://deleg.hpp.freebeings.io/api/deleg/out?account=imwatsi&limit=100
```

**Example response body:**

```
[
  {
    "id": 1261821,
    "delegator": "imwatsi.test",
    "amount": 39451.307672
  },
  {
    "id": 1311023,
    "delegator": "billz-00",
    "amount": 9664.017574
  },
  {
    "id": 1335826,
    "delegator": "hichem.test",
    "amount": 18908.004815
  }
  ...
]
```

---

### /api/deleg/history/in

Get a list of **historical incoming** delegations to an account.

**Paramaters:**

- `account`
- `limit`: default `100`
- `descending`: default `true`


**Example request:**

```
curl -X 'GET' \
  'https://deleg.hpp.freebeings.io/api/deleg/history/in?account=imwatsi&limit=100&descending=true' \
  -H 'accept: application/json'
```

*Or*

```
https://deleg.hpp.freebeings.io/api/deleg/history/in?account=imwatsi&limit=100&descending=true
```

**Example response body:**

```
[
  {
    "id": 8435728,
    "created": "2022-08-19T21:46:48",
    "delegator": "blocktrades.com",
    "amount": 160335.403108
  },
  {
    "id": 8435518,
    "created": "2022-08-19T19:36:36",
    "delegator": "blocktrades.com",
    "amount": 500870.91407
  },
  ...
]
```

---

### /api/deleg/history/out

Get a list of **historical outgoing** delegations to an account.

**Paramaters:**

- `account`
- `limit`: default `100`
- `descending`: default `true`


**Example request:**

```
curl -X 'GET' \
  'https://deleg.hpp.freebeings.io/api/deleg/history/out?account=imwatsi&limit=100&descending=true' \
  -H 'accept: application/json'
```

*Or*

```
https://deleg.hpp.freebeings.io/api/deleg/history/out?account=imwatsi&limit=100&descending=true
```

**Example response body:**

```
[
  {
    "id": 8547257,
    "created": "2022-08-23T12:20:00",
    "delegator": "nicolemokhethi",
    "amount": 30000
  },
  {
    "id": 8286482,
    "created": "2022-07-02T15:12:33",
    "delegator": "freebeings",
    "amount": 54695.297887
  },
  {
    "id": 7850258,
    "created": "2022-04-24T16:36:45",
    "delegator": "squigglez",
    "amount": 30000
  },
  ...
]
```

---

# What's next?

Since it is a new release, I will wait for community feedback to determine what new features/modifications I should work on. Feel free to test it out and give feedback.

---

*by @imwatsi - Co-Founder | CEO | Blockchain Developer of [FreeBeings.io LLC](https://freebeings.io)*

---
---

# Vote for our witness

**Witness Name:** @imwatsi 



![Witness-2.png](https://files.peakd.com/file/peakd-hive/freebeings/23ymjvHFNGbUr1EPaiJs7t1kiQsF1ugf2bvt77cewpnA5C6rH5MiKir7jYmLVR5syDK1z.png)


---

**We're glad to be building on Hive.**
*Follow the @freebeings account for more updates.*
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,