{
    "openapi": "3.0.3",
    "info": {
        "title": "DataBoom\ud83c\uddf3\ud83c\uddec API Documentation",
        "version": "v1",
        "description": "Auto-generated from the documentation page spec (based on your \/api endpoint code)."
    },
    "servers": [
        {
            "url": "https:\/\/databoomnigeria.ng\/api"
        }
    ],
    "paths": {
        "\/user": {
            "post": {
                "summary": "Fetch the logged-in user\u2019s profile and balances using your API Token.",
                "description": "Your API token identifies your account (only active accounts can call private endpoints).\nResponse formats monetary values with 2 decimal places (string).",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/network-details": {
            "get": {
                "summary": "List available networks and service toggles (VTU, SME, Gifting, Corporate, Share-sell, etc.).",
                "description": "Supports pagination, sorting, search (q), filters, and ETag caching (If-None-Match).\nDebug logging: ?debug=1 writes to \/api\/network-details\/network_details_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "post": {
                "summary": "List available networks and service toggles (VTU, SME, Gifting, Corporate, Share-sell, etc.).",
                "description": "Supports pagination, sorting, search (q), filters, and ETag caching (If-None-Match).\nDebug logging: ?debug=1 writes to \/api\/network-details\/network_details_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "options": {
                "summary": "List available networks and service toggles (VTU, SME, Gifting, Corporate, Share-sell, etc.).",
                "description": "Supports pagination, sorting, search (q), filters, and ETag caching (If-None-Match).\nDebug logging: ?debug=1 writes to \/api\/network-details\/network_details_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/data-plans": {
            "get": {
                "summary": "Fetch data plans grouped by network, with advanced filters and ETag caching.",
                "description": "Requires token: used to determine user type (user\/agent\/vendor) and return the correct price tier.\nReturns networks[] and also mirrors it into data[] for compatibility.\nDebug logging: ?debug=1 writes to \/api\/data-plans\/data_plans_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "post": {
                "summary": "Fetch data plans grouped by network, with advanced filters and ETag caching.",
                "description": "Requires token: used to determine user type (user\/agent\/vendor) and return the correct price tier.\nReturns networks[] and also mirrors it into data[] for compatibility.\nDebug logging: ?debug=1 writes to \/api\/data-plans\/data_plans_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "options": {
                "summary": "Fetch data plans grouped by network, with advanced filters and ETag caching.",
                "description": "Requires token: used to determine user type (user\/agent\/vendor) and return the correct price tier.\nReturns networks[] and also mirrors it into data[] for compatibility.\nDebug logging: ?debug=1 writes to \/api\/data-plans\/data_plans_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/cable-details": {
            "get": {
                "summary": "List cable TV providers and their plan metadata (plan IDs, names, validity).",
                "description": "Use planId from this endpoint when calling \/api\/cabletv.\nSupports filters: q, provider, status; pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "post": {
                "summary": "List cable TV providers and their plan metadata (plan IDs, names, validity).",
                "description": "Use planId from this endpoint when calling \/api\/cabletv.\nSupports filters: q, provider, status; pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "options": {
                "summary": "List cable TV providers and their plan metadata (plan IDs, names, validity).",
                "description": "Use planId from this endpoint when calling \/api\/cabletv.\nSupports filters: q, provider, status; pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/electricity-providers": {
            "get": {
                "summary": "List electricity discos\/providers and their service status.",
                "description": "Use provider id (eId) when calling \/api\/electricity.\nSupports filters, pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "post": {
                "summary": "List electricity discos\/providers and their service status.",
                "description": "Use provider id (eId) when calling \/api\/electricity.\nSupports filters, pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "options": {
                "summary": "List electricity discos\/providers and their service status.",
                "description": "Use provider id (eId) when calling \/api\/electricity.\nSupports filters, pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/exam-providers": {
            "get": {
                "summary": "List exam providers (WAEC, NECO, etc.) and their pricing metadata.",
                "description": "Use providerId (eId) when calling \/api\/exam.\nSupports filters, pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "post": {
                "summary": "List exam providers (WAEC, NECO, etc.) and their pricing metadata.",
                "description": "Use providerId (eId) when calling \/api\/exam.\nSupports filters, pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "options": {
                "summary": "List exam providers (WAEC, NECO, etc.) and their pricing metadata.",
                "description": "Use providerId (eId) when calling \/api\/exam.\nSupports filters, pagination, sorting, ETag caching.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/transactions": {
            "get": {
                "summary": "Fetch wallet transactions for the token owner with powerful filtering, sorting, pagination and ETag caching.",
                "description": "AUTH RULE: finds subscriber via subscribers.sApiKey = {TOKEN}, then returns transactions by subscribers.sId.\nOutput fields are intentionally minimal (only 8 per transaction), but filters are advanced.\nDebug logging: ?debug=1 writes to \/api\/transactions\/transactions_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "post": {
                "summary": "Fetch wallet transactions for the token owner with powerful filtering, sorting, pagination and ETag caching.",
                "description": "AUTH RULE: finds subscriber via subscribers.sApiKey = {TOKEN}, then returns transactions by subscribers.sId.\nOutput fields are intentionally minimal (only 8 per transaction), but filters are advanced.\nDebug logging: ?debug=1 writes to \/api\/transactions\/transactions_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            },
            "options": {
                "summary": "Fetch wallet transactions for the token owner with powerful filtering, sorting, pagination and ETag caching.",
                "description": "AUTH RULE: finds subscriber via subscribers.sApiKey = {TOKEN}, then returns transactions by subscribers.sId.\nOutput fields are intentionally minimal (only 8 per transaction), but filters are advanced.\nDebug logging: ?debug=1 writes to \/api\/transactions\/transactions_error_log.txt",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/airtime": {
            "post": {
                "summary": "Purchase airtime (VTU or Share & Sell). Debits wallet and records a transaction.",
                "description": "Minimum\/maximum purchase limits are enforced by the platform configuration.\nAirtime type must be exactly: \"VTU\" or \"Share And Sell\".\nOptional: set ported_number=\"true\" to skip network prefix validation.\nTransaction ref (ref) must be unique; duplicates return an error.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/data": {
            "post": {
                "summary": "Purchase mobile data bundle using a plan ID. Debits wallet and records a transaction.",
                "description": "Network must be active (networkStatus = On).\nPlan must exist for that network (datanetwork) and must be enabled per group (SME\/Gifting\/Corporate) on the networkid flags.\nOptional: set ported_number=\"true\" to skip phone network validation.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/cabletv": {
            "post": {
                "summary": "Subscribe a smartcard\/IUC number to a cable plan. Debits wallet and records a transaction.",
                "description": "Use \/api\/cable-details to discover provider IDs and plan IDs.\nRecords the transaction as processing (status 5) before contacting the provider, then updates status to 0\/1.\nThe endpoint supports alternate body keys for compatibility.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/electricity": {
            "post": {
                "summary": "Buy electricity units for a meter number. Debits wallet and records a transaction.",
                "description": "Minimum purchase enforced: \u20a61000.\nExtra charges may apply based on platform configuration and provider rates.\nOn success, the unit token is appended into the transaction description (servicedesc).\nTo retrieve the token later, call \/api\/transactions and read description for that reference.",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        },
        "\/exam": {
            "post": {
                "summary": "Buy one or more exam PIN tokens.",
                "description": "Provider must be available (providerStatus = On).\nOn success, the PIN is returned in multiple keys for compatibility: msg, pin, pins, token.\nThe PIN is also appended into the transaction description (servicedesc).",
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "500": {
                        "description": "Server Error"
                    }
                }
            }
        }
    }
}