📊 Analytics API
The Analytics API provides comprehensive financial reporting and insights for your Pika data. This includes spending analysis, income tracking, budget monitoring, and various financial metrics to help you understand your financial patterns and make informed decisions.
📡 Base URL​
All analytics endpoints are prefixed with:
/wp-json/pika/v1/analytics
🚀 Endpoints​
Weekly Expenses​
Get weekly expense breakdown for the current month.
Endpoint: GET /wp-json/pika/v1/analytics/weekly-expenses
Headers:
Cookie: Authentication cookie
Response:
{"fri":0,"sat":90,"sun":0,"mon":0,"tue":0,"wed":0,"thu":0}
Example Request:
curl -X GET http://localhost:8000/wp-json/pika/v1/analytics/weekly-expenses \
-H "Cookie: pika_token=token"
Daily Summaries​
Get daily financial summaries for a specific month.
Endpoint: GET /wp-json/pika/v1/analytics/daily-summaries
Headers:
Cookie: Authentication cookieContent-Type: application/json
Request Body:
{
"month": 7,
"year": 2025
}
Parameters:
month(integer, required): Month number (1-12)year(integer, required): Year (YYYY)
Response:
{
"data": {
"2025-08-01": {
"date": "2025-08-01",
"income": 0,
"expenses": 7780,
"transfers": 0,
"balance": -7780,
"transactionCount": 5,
"incomeTransactionCount": 0,
"expenseTransactionCount": 5,
"transferTransactionCount": 0
},
"2025-08-02": {
"date": "2025-08-02",
"income": 0,
"expenses": 4118.26,
"transfers": 0,
"balance": -4118.26,
"transactionCount": 2,
"incomeTransactionCount": 0,
"expenseTransactionCount": 2,
"transferTransactionCount": 0
},
...
...
...
"2025-08-31": {
"date": "2025-08-31",
"balance": 0,
"income": 0,
"expenses": 0,
"transfers": 0,
"transactionCount": 0,
"incomeTransactionCount": 0,
"expenseTransactionCount": 0,
"transferTransactionCount": 0
}
},
"meta": {
"month": "July",
"year": 2025,
"timezone": "Asia\/Kolkata"
}
}
Example Request:
curl -X GET http://localhost:8000/wp-json/pika/v1/analytics/daily-summaries \
-H "Cookie: pika_token=token" \
-H "Content-Type: application/json" \
-d '{
"month": 7,
"year": 2025
}'
Monthly Summary​
Get comprehensive monthly financial summary.
Endpoint: GET /wp-json/pika/v1/analytics/monthly-summary
Headers:
Cookie: Authentication cookieContent-Type: application/json
Request Body:
{
"month": 7,
"year": 2025
}
Response:
{
"year": 2025,
"month": 8,
"monthName": "August",
"income": 2000,
"expenses": 13741.26,
"balance": -11741.26,
"transactionCount": 14,
"savingsRate": -587.06,
"avgDaily": 2290.21,
"incomeTransactionCount": 1,
"expenseTransactionCount": 13
}
Monthly Category Spending​
Get spending breakdown by category for a specific month.
Endpoint: GET /wp-json/pika/v1/analytics/monthly-category-spending
Headers:
Cookie: Authentication cookieContent-Type: application/json
Request Body:
{
"month": 7,
"year": 2025
}
Response:
{
"data": [
{
"categoryId": "61",
"categoryName": "Lent Money",
"categoryIcon": "hand-coins",
"categoryColor": "#ffffff",
"categoryBgColor": "#FFA500",
"isParent": false,
"parentId": "45",
"isSystem": false,
"description": "",
"amount": 7000,
"transactionCount": 3,
"averagePerTransaction": 2333.33333333,
"highestTransaction": 6000,
"lowestTransaction": 500
},
...
...
...
{
"categoryId": "34",
"categoryName": "Hair Care",
"categoryIcon": "scissors",
"categoryColor": "#FFFFFF",
"categoryBgColor": "#38A169",
"isParent": false,
"parentId": "33",
"isSystem": true,
"description": "Hair care and styling",
"amount": 180,
"transactionCount": 1,
"averagePerTransaction": 180,
"highestTransaction": 180,
"lowestTransaction": 180
},
],
"meta": {
"month": 8,
"year": 2025,
"totalExpenses": 27482.52
}
}
Monthly Tag Activity​
Get spending breakdown by tags for a specific month.
Endpoint: GET /wp-json/pika/v1/analytics/monthly-tag-activity
Headers:
Cookie: Authentication cookieContent-Type: application/json
Request Body:
{
"month": 7,
"year": 2025
}
Response:
{
"data": [
{
"id": "14",
"name": "Loan",
"icon": "hand-coins",
"color": "#ffffff",
"bgColor": "#6A5ACD",
"description": "",
"isSystem": false,
"totalAmount": -5000,
"totalTransactionCount": 4,
"expenseAmount": 7000,
"expenseTransactionCount": 3,
"incomeAmount": 2000,
"incomeTransactionCount": 1,
"transferAmount": 0,
"transferTransactionCount": 0,
"averagePerTransaction": 2250,
"highestTransaction": 6000,
"lowestTransaction": 500
},
{
"id": "6",
"name": "Business",
"icon": "briefcase-business",
"color": "#FFFFFF",
"bgColor": "#2D3748",
"description": "Business transactions",
"isSystem": true,
"totalAmount": -991,
"totalTransactionCount": 1,
"expenseAmount": 991,
"expenseTransactionCount": 1,
"incomeAmount": 0,
"incomeTransactionCount": 0,
"transferAmount": 0,
"transferTransactionCount": 0,
"averagePerTransaction": 991,
"highestTransaction": 991,
"lowestTransaction": 991
},
...
...
...
{
"id": "13",
"name": "Home",
"icon": "house",
"color": "#ffffff",
"bgColor": "#1E3A8A",
"description": "Everything related to my home",
"isSystem": false,
"totalAmount": -494,
"totalTransactionCount": 1,
"expenseAmount": 494,
"expenseTransactionCount": 1,
"incomeAmount": 0,
"incomeTransactionCount": 0,
"transferAmount": 0,
"transferTransactionCount": 0,
"averagePerTransaction": 494,
"highestTransaction": 494,
"lowestTransaction": 494
}
],
"meta": {
"month": "July",
"year": 2025,
"totalExpenses": 8485,
"totalIncome": 2000,
"totalTransfers": 0
}
}
Monthly Person Activity​
Get spending breakdown by people for a specific month.
Endpoint: GET /wp-json/pika/v1/analytics/monthly-person-activity
Headers:
Cookie: Authentication cookieContent-Type: application/json
Request Body:
{
"month": 7,
"year": 2025
}
Response:
{
"data": [
{
"id": "7",
"name": "Lucy",
"email": "",
"phone": "",
"description": "Aunty",
"avatarUrl": null,
"balance": 0,
"totalAmount": 1000,
"totalTransactionCount": 3,
"incomeAmount": 2000,
"incomeTransactionCount": 1,
"expenseAmount": 1000,
"expenseTransactionCount": 2,
"averagePerTransaction": 1000,
"highestTransaction": 2000,
"lowestTransaction": 500,
"lastTransactionAt": "2025-08-03 03:38:37"
},
{
"id": "9",
"name": "Sufail",
"email": "",
"phone": "",
"description": "Friend",
"avatarUrl": null,
"balance": -991,
"totalAmount": -991,
"totalTransactionCount": 1,
"incomeAmount": 0,
"incomeTransactionCount": 0,
"expenseAmount": 991,
"expenseTransactionCount": 1,
"averagePerTransaction": 991,
"highestTransaction": 991,
"lowestTransaction": 991,
"lastTransactionAt": "2025-08-03 14:45:21"
},
],
"meta": {
"month": "July",
"year": 2025,
"totalExpenses": 7991,
"totalIncome": 2000,
"totalTransfers": 0
}
}
📈 Analytics Features​
Will update
🚨 Error Responses​
Of course, here are those errors formatted individually.
Invalid Month​
This error is returned when the provided month is not a number between 1 and 12.
{
"code": "invalid_month",
"message": "Invalid month, month must be a number between 1 and 12.",
"data": {
"status": 400
}
}
Invalid Year​
This error is used when the year value is not a valid number.
{
"code": "invalid_year",
"message": "Invalid year, year must be a number.",
"data": {
"status": 400
}
}
Invalid Date​
This error indicates that the provided date string is not in a recognizable or valid format.
{
"code": "invalid_date",
"message": "Invalid date, date must be a valid date string.",
"data": {
"status": 400
}
}
📚 Related Documentation​
- Transactions API - Transaction data for analytics
- Categories API - Category-based analysis
- Tags API - Tag-based analysis
- People API - People-based analysis
- Accounts API - Account-based analysis