Apps

List all applications with pagination and filtering

get

Retrieve a paginated list of applications built on Ethos. Supports filtering by app type (APP, INTEGRATION, AGENT) and status (ACTIVE, INACTIVE).

Query parameters
appTypestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
limitinteger · max: 50OptionalDefault: 50
offsetnumberOptionalDefault: 0
Responses
200
Successful response
application/json
get
GET /api/v2/apps HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "values": [
    {
      "id": 1,
      "name": "text",
      "appType": "APP",
      "authorUserId": 1,
      "link": "https://example.com",
      "description": "text",
      "pictureUrl": "https://example.com",
      "status": "ACTIVE",
      "createdAt": "text",
      "updatedAt": "text",
      "author": {
        "id": 1,
        "profileId": 1,
        "displayName": "text",
        "username": "text",
        "avatarUrl": "https://example.com",
        "description": "text",
        "score": 1,
        "status": "ACTIVE",
        "userkeys": [
          "text"
        ],
        "xpTotal": 1,
        "xpStreakDays": 1,
        "stats": {
          "review": {
            "received": {
              "negative": 1,
              "neutral": 1,
              "positive": 1
            }
          },
          "vouch": {
            "given": {
              "amountWeiTotal": 1,
              "count": 1
            },
            "received": {
              "amountWeiTotal": 1,
              "count": 1
            }
          }
        }
      }
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1
}

Create a new app

post
Authorizations
Body
namestring · min: 1 · max: 100Required
appTypestring · enumRequiredPossible values:
authorUserIdintegerRequired
linkstring · uriRequired
descriptionstring · min: 1 · max: 1000Required
pictureUrlstring · uriOptional
statusstring · enumOptionalPossible values:
Responses
200
Successful response
application/json
post
POST /api/v2/apps HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 151

{
  "name": "text",
  "appType": "APP",
  "authorUserId": 1,
  "link": "https://example.com",
  "description": "text",
  "pictureUrl": "https://example.com",
  "status": "ACTIVE"
}
{
  "id": 1,
  "name": "text",
  "appType": "APP",
  "authorUserId": 1,
  "link": "https://example.com",
  "description": "text",
  "pictureUrl": "https://example.com",
  "status": "ACTIVE",
  "createdAt": "text",
  "updatedAt": "text",
  "author": {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
}

Get a specific app by ID

get
Path parameters
idintegerRequired
Responses
200
Successful response
application/json
get
GET /api/v2/apps/{id} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "name": "text",
  "appType": "APP",
  "authorUserId": 1,
  "link": "https://example.com",
  "description": "text",
  "pictureUrl": "https://example.com",
  "status": "ACTIVE",
  "createdAt": "text",
  "updatedAt": "text",
  "author": {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
}

Get apps by type

get
Path parameters
appTypestring · enumRequiredPossible values:
Responses
200
Successful response
application/json
get
GET /api/v2/apps/by-type/{appType} HTTP/1.1
Host: api.ethos.network
Accept: */*
[
  {
    "id": 1,
    "name": "text",
    "appType": "APP",
    "authorUserId": 1,
    "link": "https://example.com",
    "description": "text",
    "pictureUrl": "https://example.com",
    "status": "ACTIVE",
    "createdAt": "text",
    "updatedAt": "text",
    "author": {
      "id": 1,
      "profileId": 1,
      "displayName": "text",
      "username": "text",
      "avatarUrl": "https://example.com",
      "description": "text",
      "score": 1,
      "status": "ACTIVE",
      "userkeys": [
        "text"
      ],
      "xpTotal": 1,
      "xpStreakDays": 1,
      "stats": {
        "review": {
          "received": {
            "negative": 1,
            "neutral": 1,
            "positive": 1
          }
        },
        "vouch": {
          "given": {
            "amountWeiTotal": 1,
            "count": 1
          },
          "received": {
            "amountWeiTotal": 1,
            "count": 1
          }
        }
      }
    }
  }
]

Update an existing app

put
Authorizations
Path parameters
appIdintegerRequired
Body
namestring · min: 1 · max: 100Optional
appTypestring · enumOptionalPossible values:
authorUserIdintegerOptional
linkstring · uriOptional
descriptionstring · min: 1 · max: 1000Optional
pictureUrlstring · uriOptional
statusstring · enumOptionalPossible values:
Responses
200
Successful response
application/json
put
PUT /api/v2/apps/{appId} HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 151

{
  "name": "text",
  "appType": "APP",
  "authorUserId": 1,
  "link": "https://example.com",
  "description": "text",
  "pictureUrl": "https://example.com",
  "status": "ACTIVE"
}
{
  "id": 1,
  "name": "text",
  "appType": "APP",
  "authorUserId": 1,
  "link": "https://example.com",
  "description": "text",
  "pictureUrl": "https://example.com",
  "status": "ACTIVE",
  "createdAt": "text",
  "updatedAt": "text",
  "author": {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
}

Delete an app

delete
Authorizations
Path parameters
appIdintegerRequired
Responses
200
Successful response
application/json
delete
DELETE /api/v2/apps/{appId} HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": 1,
  "name": "text",
  "appType": "APP",
  "authorUserId": 1,
  "link": "https://example.com",
  "description": "text",
  "pictureUrl": "https://example.com",
  "status": "ACTIVE",
  "createdAt": "text",
  "updatedAt": "text",
  "author": {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
}