Expensicat

Metrics

Financial analytics and reports

Get profit/loss statement

GET
/v1/metrics/profit-loss
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

start_date*string

Start date (YYYY-MM-DD)

end_date*string

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/profit-loss?start_date=string&end_date=string"
{
  "data": [
    {
      "period": "string",
      "total_revenue": 0,
      "total_expenses": 0,
      "net_profit_loss": 0
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get cash flow breakdown

GET
/v1/metrics/cash-flow
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

start_date*string

Start date (YYYY-MM-DD)

end_date*string

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/cash-flow?start_date=string&end_date=string"
{
  "data": [
    {
      "period": "string",
      "operating_cash_flow": 0,
      "investing_cash_flow": 0,
      "financing_cash_flow": 0,
      "net_cash_flow": 0
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get cash projection

GET
/v1/metrics/cash-projection
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

days_ahead?|

Number of days ahead for projection

Default90

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/cash-projection"
{
  "data": [
    {
      "projection_date": "string",
      "expected_inflows": 0,
      "expected_outflows": 0
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get invoice aging

GET
/v1/metrics/invoice-aging
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/invoice-aging"
{
  "data": {
    "total_outstanding": 0,
    "invoice_count": 0,
    "current_amount": 0,
    "overdue_0_to_30": 0,
    "overdue_31_to_60": 0,
    "overdue_60_plus": 0,
    "expected_14_days": 0,
    "expected_30_days": 0,
    "expected_60_days": 0
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get top spending categories

GET
/v1/metrics/top-categories
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

start_date*string

Start date (YYYY-MM-DD)

end_date*string

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/top-categories?start_date=string&end_date=string"
{
  "data": [
    {
      "category_id": "string",
      "category_name": "string",
      "category_slug": "string",
      "category_color": "string",
      "total_amount": 0,
      "transaction_count": 0
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get spend variance

GET
/v1/metrics/spend-variance
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

month*string

Month (YYYY-MM-DD, first day of month)

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/spend-variance?month=string"
{
  "data": [
    {
      "category_id": "string",
      "category_name": "string",
      "category_slug": "string",
      "category_color": "string",
      "actual_spend": 0,
      "budget_amount": 0,
      "variance": 0,
      "variance_pct": 0,
      "last_month_spend": 0,
      "mom_change": 0,
      "mom_change_pct": 0,
      "is_over_budget": true,
      "is_anomaly": true
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get cash events

GET
/v1/metrics/cash-events
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

start_date*string

Start date (YYYY-MM-DD)

end_date*string

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/cash-events?start_date=string&end_date=string"
{
  "data": [
    {
      "event_id": "string",
      "organization_id": "string",
      "event_date": "string",
      "direction": "inflow",
      "amount": 0,
      "currency": "string",
      "type": "string",
      "reference_table": "string",
      "reference_id": "string",
      "probability": 0,
      "description": "string",
      "metadata": {
        "property1": null,
        "property2": null
      }
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get recurring series

GET
/v1/metrics/recurring-series
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/recurring-series"
{
  "data": [
    {
      "series_id": "string",
      "organization_id": "string",
      "counterparty_name": "string",
      "direction": "inflow",
      "average_amount": 0,
      "currency": "string",
      "frequency": "string",
      "category_id": "string",
      "category_name": "string",
      "last_seen_date": "string",
      "next_expected_date": "string",
      "status": "active",
      "transaction_count": 0
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get financial snapshot

GET
/v1/metrics/financial-snapshot
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/financial-snapshot"
{
  "data": {
    "cash_balance": 0,
    "burn_rate": 0,
    "monthly_revenue": 0,
    "recurring_monthly_revenue": 0,
    "currency": "string",
    "runway_months": 0
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get recent transactions

GET
/v1/metrics/recent-transactions
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/metrics/recent-transactions"
{
  "data": [
    {
      "id": "string",
      "booking_date": "string",
      "amount": 0,
      "base_amount": 0,
      "currency": "string",
      "description": "string",
      "name": "string",
      "category_id": "string",
      "category_name": "string",
      "category_slug": "string",
      "category_color": "string"
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}