---
# System prepended metadata

title: 'NFT API -- [draft document]'
tags: [ERC721 token, ERC5511 token]

---

# NFT API -- [draft document]
###### tags: `ERC721 token` `ERC5511 token`
# Table of Contents
[toc]



## Main configuration(.env)

| Attribute | Description | Example |
| --------- | ----------- | ------- |
DATABASE_TYPE     | Database type     | postgres    |
| POSTGRES_HOST          |   database host          |  localhost       |
| POSTGRES_PORT        |      database port       |      5432   |
| POSTGRES_USER      |      database username       |     postgres    |
| POSTGRES_PASSWORD    |      database password       |     mysecretpassword    |
| POSTGRES_DATABASE        |     databse name        |     postgres    |

## NFT MAIN APIs

Manage users accounts as described below:

**Endpoint` /users`**

* Method: `post`
[Request]    
```JSON
{
    "address":"address",
    "firstname": "string",
    "lastname": "string;",
    "email":"string",
    "username":"string;"
}
```

[Response]  
```JSON
{
  "address": "0x20c558DD389b101e4141f2Aa59209FB11c944d06",
  "firstname": "string",
  "lastname": "string;",
  "email": "string@test.com",
  "username": "string;",
  "id": "3fd84b5a-71bc-4ee9-8e0c-a0e0252bdaa3"
}
```
* Method: `get`
[Request]    
```JSON
{
   
}
```

[Response]  
```JSON
[
  {
    "id": "32b2aa13-d000-4a16-8121-f6c2c8a3f15a",
    "address": "0x20c558DD389b101e4141f2Aa59209FB11c944d06",
    "firstname": "string",
    "lastname": "string;",
    "username": "string;",
    "email": "string@test.com"
  }
]
```
    
### IPFS api
this endpoint save connected user settings as below
**Endpoint `/ipfs`**
* Method: `post`
[Request]
    
```JSON
{
    "name":"string",
    "description":"string",
    "file": "base64"
}
```
[Response]
```URL
https://ipfs.io/QmZJ35GLCPebwujbTRpPUypRiBB26PSJiLF6ZudjF5njKF
```
* Method: `get /ipfs/{hash}`
Body: 
    
```JSON
{
    "name":"name",
    "description":"description",
    "file": "base64"
}
```
    
Result:
    ```
    boolean
    ```

### NFT api
**Endpoint: `/nfts`**
* Method: `post`
[Request]
    
```JSON
{
    "token_id":"string",
    "uri": "ipfs/hash",
    "contract_type": "string",
    "for_sell": "boolean",
    "owner_address": "address",
    "collection": "address",
    "sold": "number",
    "supply": "number",
    "value": "number"
}
```
[Response]
```JSON
{
  "token_id": "111111",
  "uri": "ipfs/2384982749872984",
  "contract_type": "ERC721",
  "for_sell": false,
  "owner_address": "0x20c558DD389b101e4141f2Aa59209FB11c944d06",
  "collection": "0x20c558DD389b101e4141f2Aa59209FB11c944d06",
  "sold": 4,
  "supply": 41,
  "id": "304e93c3-78d3-4bd7-87df-34303cce50b9",
  "value": 0
}
```
* Method: `put`
[Request]
    
 ```JSON
{
  "token_id": "111111",
  "owner_address": "0x20c558DD389b101e4141f2Aa59209FB11c944d06",
  "collection": "0x20c558DD389b101e4141f2Aa59209FB11c944d06",
  "id": "304e93c3-78d3-4bd7-87df-34303cce50b9",
  "value": 41
}
```
[Response]
```JSON
   {
      "generatedMaps": [],
      "raw": [],
      "affected": 1
    }
```
* Method: `get /nfts`
[Request]
    
 ```JSON
{

}
```
[Response]
```JSON
   [
      {
        "id": "e6c006b2-f561-42d1-bc54-2d0b8d67e635",
        "token_id": "94582853440569721971258064241134716640749172105768608110743273546248617990",
        "value": 0,
        "uri": "https://ipfs.io/QmbvE5GN2oXwj5KC4eKB4fttfJer9pm3RffJ6PxXDMcaUk",
        "contract_type": "ERC721",
        "collection": "",
        "for_sell": false,
        "owner_address": "0x00358831046eA4a9c2d10B2d362535441A35A4da",
        "sold": 0,
        "supply": 0
      }
    ]
```

* Method: `get /nfts/{owner address}`

[Request]
    
 ```JSON
{

}
```
[Response]
```JSON
   [
      {
        "id": "e6c006b2-f561-42d1-bc54-2d0b8d67e635",
        "token_id": "94582853440569721971258064241134716640749172105768608110743273546248617990",
        "value": 0,
        "uri": "https://ipfs.io/QmbvE5GN2oXwj5KC4eKB4fttfJer9pm3RffJ6PxXDMcaUk",
        "contract_type": "ERC721",
        "collection": "",
        "for_sell": false,
        "owner_address": "0x00358831046eA4a9c2d10B2d362535441A35A4da",
        "sold": 0,
        "supply": 0
      }
    ]
```
### Offer api
**Endpoint: `/offers`**
* Method: `post`
[Request]
    
```JSON
{
    "seller":"address",
    "collection": "address",
    "assetId":"number",
    "token": "address",
    "isEther": true,
    "price":"number",
    "isForSell":"boolean",
    "isForAuction":"boolean",
   "expiresAt": "number",
   "isSold": "boolean",
   "nft_id":"e6c006b2-f561-42d1-bc54-2d0b8d67e635"
}
    
```
[Response]
```JSON
{
  "seller": "sfdsf",
  "collection": "fffff",
  "assetId": "dsfdsfs",
  "token": "string",
  "isEther": true,
  "price": 200,
  "isForSell": true,
  "isForAuction": false,
  "expiresAt": 323232,
  "isSold": false,
  "nft_id": "e6c006b2-f561-42d1-bc54-2d0b8d67e635",
  "nft": {
    "id": "e6c006b2-f561-42d1-bc54-2d0b8d67e635"
  },
  "id": "8303c88d-4b16-4ef6-b3d6-757fc962b7d9",
  "offer_id": 0,
  "createdAt": "1620838140691",
  "updatedAt": "1620838140691"
}
```
* Method: `put`
[Request]
    
 ```JSON
{
  "seller": "address",
  "collection": "address",
  "assetId": "string",
  "token": "address",
  "isEther": "boolean",
  "price": "number",
  "isForSell": "boolean",
  "isForAuction": "boolean",
  "expiresAt": "number",
  "isSold": "boolean",
  "id": "number",
  "offer_id": "number"
}
```
[Response]
```JSON
   {
      "generatedMaps": [],
      "raw": [],
      "affected": 1
    }
```
* Method: `delete /offers`
[Request]
    
 ```JSON
{
    id:number
}
```
[Response]
```JSON
  {}
```
* Method: `get /nfts`
[Request]
    
 ```JSON
{

}
```
[Response]
```JSON
  [
  {
    "id": "70caceca-da72-4017-a671-242baead39c6",
    "offer_id": 0,
    "seller": "sfdsf",
    "collection": "fffff",
    "assetId": "dsfdsfs",
    "token": "string",
    "isEther": true,
    "price": 200,
    "isForSell": true,
    "isForAuction": false,
    "expiresAt": 323232,
    "isSold": false,
    "createdAt": "1620770391318",
    "updatedAt": "1620770391318",
    "bids": [
      {
        "id": "a6017447-aa2d-421d-a552-c4cd4a5ba5f7",
        "bidder": "sfdsf",
        "token": "skjdhfk",
        "price": 12,
        "expiresAt": "89289738293",
        "createdAt": "1620805775906",
        "updatedAt": "1620805775906"
      }
    ]
  },
  {
    "id": "30e23d7a-517f-4954-9dc9-ad8709446ec0",
    "offer_id": 0,
    "seller": "sfdsf",
    "collection": "fffff",
    "assetId": "dsfdsfs",
    "token": "string",
    "isEther": true,
    "price": 200,
    "isForSell": true,
    "isForAuction": false,
    "expiresAt": 323232,
    "isSold": false,
    "createdAt": "1620770391318",
    "updatedAt": "1620770391318",
    "bids": []
  }
]
```

* Method: `get /offers/getbynft/{nft id}`

[Request]
    
 ```JSON
{

}
```
[Response]
```JSON
[
  {
    "id": "8303c88d-4b16-4ef6-b3d6-757fc962b7d9",
    "offer_id": 0,
    "seller": "sfdsf",
    "collection": "fffff",
    "assetId": "dsfdsfs",
    "token": "string",
    "isEther": true,
    "price": 200,
    "isForSell": true,
    "isForAuction": false,
    "expiresAt": 323232,
    "isSold": false,
    "createdAt": "1620838140691",
    "updatedAt": "1620838140691",
    "bids": [
      {
        "id": "27573591-e968-4474-8bae-8127f9c4df26",
        "bidder": "sfdsf",
        "token": "skjdhfk",
        "price": 12,
        "expiresAt": "89289738293",
        "createdAt": "1620838140690",
        "updatedAt": "1620838140690"
      }
    ]
  }
]
```
### Bid api
**Endpoint: `/bids`**
* Method: `post`
[Request]
    
```JSON
{
    "bidder":"string",
    "price":number,
    "token":"string",
    "offer_id":"number",
    "expiresAt":"number"
}
    
    
```
[Response]
```JSON
{
  "bidder": "sfdsf",
  "price": 12,
  "token": "skjdhfk",
  "offer": {
    "id": "8303c88d-4b16-4ef6-b3d6-757fc962b7d9"
  },
  "expiresAt": 89289738293,
  "id": "27573591-e968-4474-8bae-8127f9c4df26",
  "createdAt": "1620838140690",
  "updatedAt": "1620838140690"
}
```
* Method: `put`
[Request]
    
 ```JSON
{
  "price": 12,
  "id": "27573591-e968-4474-8bae-8127f9c4df26"
}
```
[Response]
```JSON
   {
      "generatedMaps": [],
      "raw": [],
      "affected": 1
    }
```
* Method: `get /bids`
[Request]
    
 ```JSON
{

}
```
[Response]
```JSON
  [
  {
    "id": "a6017447-aa2d-421d-a552-c4cd4a5ba5f7",
    "bidder": "sfdsf",
    "token": "skjdhfk",
    "price": 12,
    "expiresAt": "89289738293",
    "createdAt": "1620805775906",
    "updatedAt": "1620805775906"
  },
  {
    "id": "27573591-e968-4474-8bae-8127f9c4df26",
    "bidder": "sfdsf",
    "token": "skjdhfk",
    "price": 12,
    "expiresAt": "89289738293",
    "createdAt": "1620838140690",
    "updatedAt": "1620838140690"
  }
]
```
* Method: `delete /bids`
[Request]
    
 ```JSON
{
id:number
}
```
[Response]
```JSON
  {}
```

* Method: `get /bids/{bidder address}`

[Request]
    
 ```JSON
{

}
```
[Response]
```JSON
[
  {
    "id": "a6017447-aa2d-421d-a552-c4cd4a5ba5f7",
    "bidder": "sfdsf",
    "token": "skjdhfk",
    "price": 12,
    "expiresAt": "89289738293",
    "createdAt": "1620805775906",
    "updatedAt": "1620805775906"
  },
  {
    "id": "27573591-e968-4474-8bae-8127f9c4df26",
    "bidder": "sfdsf",
    "token": "skjdhfk",
    "price": 12,
    "expiresAt": "89289738293",
    "createdAt": "1620838140690",
    "updatedAt": "1620838140690"
  }
]
```
