Get App Install Activity

Get an installed app's spend this month against its budget, by usage source, its most recent audit entries, and the app's versions. Requires admin access and app building. Workspace API keys return 403; use a personal API key or scoped OAuth token.

OAuth scope: api:read.

GET/api/v2/apps/installs/{installId}/activity
X-API-Key<token>

Your Agent Serve API key, personal or workspace-scoped. Generate one under Settings, then API Keys. Operations that reject workspace keys say so in their own description.

In: header

Path Parameters

installId*string

Install identifier.

Length1 <= length <= 64

Query Parameters

workspaceId*string

Workspace the request is authorized against.

Length1 <= length <= 128

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://agentserve.valnoraelric.com/api/v2/apps/installs/string/activity?workspaceId=string" \  -H "X-API-Key: YOUR_API_KEY"
{
  "data": {
    "windowStart": "2019-08-24T14:15:22Z",
    "spendUsd": 0,
    "budgetMonthlyUsd": 0,
    "bySource": [
      {
        "source": "string",
        "costUsd": 0,
        "count": -9007199254740991
      }
    ],
    "audit": [
      {
        "id": "string",
        "action": "string",
        "actorName": "string",
        "description": "string",
        "createdAt": "2019-08-24T14:15:22Z"
      }
    ],
    "versions": [
      {
        "id": "string",
        "appId": "string",
        "version": "string",
        "title": "string",
        "status": "draft",
        "artifactSha256": "string",
        "artifactSize": -9007199254740991,
        "fileCount": -9007199254740991,
        "source": {
          "kind": "upload",
          "fileName": "string"
        },
        "permissions": {
          "tables": [
            "string"
          ],
          "model": "read",
          "workflows": [
            "string"
          ],
          "relays": [
            "string"
          ],
          "chat": "ask",
          "files": "read",
          "ai": {
            "models": [
              "string"
            ],
            "media": [
              "image"
            ]
          },
          "knowledge": [
            "string"
          ],
          "integrations": [
            "string"
          ]
        },
        "budgetMonthlyUsd": 0,
        "tools": [
          {
            "name": "string",
            "description": "string",
            "effect": "read",
            "language": "javascript"
          }
        ],
        "allowVulnerable": true,
        "createdAt": "2019-08-24T14:15:22Z",
        "publishedAt": "2019-08-24T14:15:22Z",
        "retiredAt": "2019-08-24T14:15:22Z"
      }
    ]
  }
}
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Invalid request"
  }
}
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  }
}
{
  "error": {
    "code": "FORBIDDEN",
    "message": "Insufficient workspace permissions",
    "details": {
      "code": "INSUFFICIENT_WORKSPACE_ROLE"
    }
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Not found"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "API rate limit exceeded",
    "details": {
      "retryAfter": "2026-01-01T00:00:30.000Z"
    }
  }
}
{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal server error"
  }
}
{
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "Service temporarily unavailable"
  }
}