Data Management & Analytics API

A comprehensive API for managing schemas, operations, and analytics data with Firebase integration

v2.0.0

API Overview

Schema Management

GET /getAllSchemas
Get all available schemas

Response Format:

{
  "success": boolean,
  "error": string,
  "data": [
    {
      "id": "string",
      "name": "string",
      "fields": {},
      "description": "string",
      "userId": "string"
    }
  ]
}
POST /saveSchema
Create a new schema

Request Body:

{
  "name": "string (required)",
  "fields": "string (required) - JSON string of field definitions",
  "description": "string (optional)"
}

Example:

{
  "name": "expense",
  "fields": "{\"amount\": \"number\", \"category\": \"string\"}",
  "description": "Expense tracking schema"
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": {},
  "message": "string"
}
POST /updateSchema
Update an existing schema

Request Body:

{
  "schemaId": "string (required)",
  "name": "string (optional)",
  "fields": "string (optional) - JSON string of field definitions",
  "description": "string (optional)"
}

Example:

{
  "schemaId": "schema-id",
  "name": "updated-name",
  "fields": "{\"amount\": \"number\"}",
  "description": "Updated description"
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": {},
  "message": "string"
}
POST /deleteSchema
Delete a schema

Request Body:

{
  "schemaId": "string (required)"
}

Example:

{
  "schemaId": "schema-id"
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": {},
  "message": "string"
}

Operation Management

POST /addOperation
Add a new operation to a schema

Request Body:

{
  "schemaId": "string (required)",
  "data": "string (required) - JSON string of operation data"
}

Example:

{
  "schemaId": "schema-id",
  "data": "{\"amount\": 100, \"category\": \"food\"}"
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": {},
  "message": "string"
}
POST /updateOperation
Update an existing operation

Request Body:

{
  "operationId": "string (required)",
  "data": "string (required) - JSON string of new operation data"
}

Example:

{
  "operationId": "operation-id",
  "data": "{\"amount\": 150, \"category\": \"entertainment\"}"
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": {},
  "message": "string"
}
POST /removeOperation
Remove an operation

Request Body:

{
  "operationId": "string (required)"
}

Example:

{
  "operationId": "operation-id"
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": {},
  "message": "string"
}

Analytics & Statistics

POST /getSumByFieldSinceDate
Calculate sum of a numeric field with advanced filtering

Request Body:

{
  "schemaId": "string (required)",
  "fieldName": "string (required) - numeric field to sum",
  "filters": "array (optional) - field filters",
  "dateRangeFilter": "object (optional) - date range filter"
}

Example:

{
  "schemaId": "schema-id",
  "fieldName": "amount",
  "filters": [{"key": "category", "value": "food"}],
  "dateRangeFilter": {
    "key": "date",
    "since": "2024-01-01",
    "until": "2024-12-31"
  }
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": number,
  "message": "string"
}
POST /getAverageByFieldSinceDate
Calculate average of a numeric field with advanced filtering

Request Body:

{
  "schemaId": "string (required)",
  "fieldName": "string (required) - numeric field to average",
  "filters": "array (optional) - field filters",
  "dateRangeFilter": "object (optional) - date range filter"
}

Example:

{
  "schemaId": "schema-id",
  "fieldName": "amount",
  "filters": [{"key": "category", "value": "food"}],
  "dateRangeFilter": {
    "key": "date",
    "since": "2024-01-01",
    "until": "2024-12-31"
  }
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": number,
  "message": "string"
}
POST /getCountByFieldSinceDate
Count operations with advanced filtering

Request Body:

{
  "schemaId": "string (required)",
  "filters": "array (optional) - field filters",
  "dateRangeFilter": "object (optional) - date range filter"
}

Example:

{
  "schemaId": "schema-id",
  "filters": [{"key": "category", "value": "food"}],
  "dateRangeFilter": {
    "key": "date",
    "since": "2024-01-01",
    "until": "2024-12-31"
  }
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": number,
  "message": "string"
}
POST /getOperationsByFieldSinceDate
Get operations with advanced filtering

Request Body:

{
  "schemaId": "string (required)",
  "filters": "array (optional) - field filters",
  "dateRangeFilter": "object (optional) - date range filter"
}

Example:

{
  "schemaId": "schema-id",
  "filters": [{"key": "category", "value": "food"}],
  "dateRangeFilter": {
    "key": "date",
    "since": "2024-01-01",
    "until": "2024-12-31"
  }
}

Response Format:

{
  "success": boolean,
  "error": string,
  "data": [
    {
      "id": "string",
      "schemaId": "string",
      "data": {},
      "createdAt": "string",
      "updatedAt": "string"
    }
  ],
  "message": "string"
}

Documentation