Mercurius API
Parlacom API reference
Every Parlacom service — voice, PBX, DIDs, VoIP/M2M PINs, SMS, GPS and UPC — is exposed through a single HTTP endpoint. Pick a function, send the parameters, receive an XML/JSON response. All endpoints share the conventions below.
Session lifecycle — login → sessionid → refreshsessionid
Every Mercurius call is authenticated by a session. The very first API call your client makes is always login: you send the company plus the admin credentials, and the response returns a sessionid. That sessionid is the token you must attach to every subsequent request — no other endpoint accepts admin credentials directly.
Sessions expire after a period of inactivity. To keep a long-lived client alive, call refreshsessionid periodically (a common pattern is every few minutes while the app is idle). This resets the idle timer without forcing a new login.
When a session has already expired, the next call will return a non-zero errorcode indicating an authentication failure. Your client must detect that code, discard the stale sessionid, and call login again to obtain a fresh one before retrying the original request.
POST https://www.parlacom.net/cgi-bin/parla HTTP/1.1Host: www.parlacom.netContent-Type: application/x-www-form-urlencoded function=login&company=parla&admin=alice&adminpwd=•••<?xml version="1.0" encoding="UTF-8"?>
<login>
<response>
<sessionid>1234567890abcdef</sessionid>
<errorcode>0</errorcode>
</response>
</login>https://www.parlacom.net/cgi-bin/parla?function=getpinbalance&company=parla&sessionid=1234567890abcdef&pin=8613912345678https://www.parlacom.net/cgi-bin/parla?function=refreshsessionid&company=parla&sessionid=1234567890abcdefRule of thumb: login once, refresh often, re-login on error. Treat the sessionid as a bearer token — store it server-side, never expose it in client bundles, and rotate it whenever the API signals an auth error.
Base URL
https://www.parlacom.net/cgi-bin/parlaEvery call selects an endpoint through the function parameter, and works with either GET (query string) or POST (form-urlencoded).
Reverse-engineer any call from the MVNO web app
The Parlacom MVNO web application is itself powered by these same Mercurius endpoints — every page you visit and every button you click is a live example of an API call. Use the browser as your Postman:
- GET calls — read the URL. When you navigate a report, list, or detail page, the address bar already shows a valid GET request: the function parameter plus the filter values. Copy the URL, swap credentials, and you have a working GET call.
- POST calls — inspect the form. Any page with a form (add user, edit PIN, send SMS…) posts to the same base URL. Open DevTools → Elements and look at <form action> and the name of each <input>/<select>: those input names are the exact POST body keys. Submit the form once with DevTools → Network open and the request payload is the canonical example body.
https://www.parlacom.net/cgi-bin/parla?function=getpinbalance&company=parla&sessionid=…&pin=8613912345678POST https://www.parlacom.net/cgi-bin/parla HTTP/1.1Host: www.parlacom.netContent-Type: application/x-www-form-urlencoded function=adduser&company=parla&sessionid=…&login=alice&pwd=•••&email=alice@example.comRule of thumb: URL parameters ⇒ GET template, form fields ⇒ POST body keys. Everything the MVNO UI can do, you can do from your own client with the same parameters.
Call login → receive sessionid. Pass sessionid on later calls, or fall back to admin + adminpwd on every request.
output_type=json returns XML (renamed json), output_type=html returns the same view the web UI renders.
Every response includes <errorcode>. 0 = success; any other value indicates a failure — see the error code list.
sessionid stays valid while the app timeout has not elapsed. If it expires the next call returns an error and you must login again.
List endpoints accept limit (default 100, max 500) and offset, or an opaque cursor. Responses include a <pagination> block with total, has_more, and next_cursor.
Pagination
Every list endpoint accepts limit and offset, or an opaque cursor. Cursor paging is preferred for large or frequently changing datasets because it is stable against inserts. Continue paging while has_more is 1.
https://www.parlacom.net/cgi-bin/parla?function=getpincdr &pin=1000001 &startdate=2026-01-01 &enddate=2026-01-31 &limit=50 &offset=0<?xml version="1.0" encoding="UTF-8"?>
<response>
<errorcode>0</errorcode>
<calls>
<call><start>2026-01-30T09:12:44Z</start><duration>128</duration><cost>0.42</cost></call>
<!-- 49 more … -->
</calls>
<pagination>
<limit>50</limit>
<offset>0</offset>
<returned>50</returned>
<total>184</total>
<has_more>1</has_more>
<next_cursor>eyJvZmZzZXQiOjUwfQ==</next_cursor>
</pagination>
</response>https://www.parlacom.net/cgi-bin/parla?function=getpincdr&pin=1000001&limit=50&cursor=eyJvZmZzZXQiOjUwfQ==Quick start
GET https://www.parlacom.net/cgi-bin/parla?function=login &company=parla &output_type=json &user=clovis1234 &password=s3cret<?xml version="1.0" encoding="UTF-8"?>
<response>
<errorcode>0</errorcode>
<sessionid>617310111715966...</sessionid>
<expires>3600</expires>
</response>All endpoints
User Functions & Bank
- POST
loginUser LoginAuthenticate and obtain a sessionid. - POST
logoutUser LogoutInvalidate the current sessionid. - GET
refreshidSessionID RefreshExtend session expiration. - GET
validateauthValidate SessionID AuthCheck whether a sessionid is valid. - GET
getallusersGet all available UsersList every user under the admin's hierarchy. - POST
adduserAdd new userCreate a new user under the admin. - POST
deluserDelete existing userRemove a user from the hierarchy. - POST
changeuserChange existing userUpdate user profile fields. - GET
getuserGet User InfoFetch a single user's details.
- GET
getbankGet Bank BalanceReturn the login's monetary balance. - GET
getbankstatementGet Bank StatementReturn all bank transactions for a period. - POST
transferbankTransfer Bank BalanceTransfer credit between accounts. - GET
getsmsbankGet SMS Bank BalanceReturn SMS credit balance. - GET
getsmsbankstatementGet SMS Bank StatementReturn SMS bank transactions. - POST
transfersmsbankTransfer SMS Bank BalanceTransfer SMS credit between accounts. - GETPOST
logsmsbankLog SMS Bank ActivityPost a manual entry into the SMS bank log. - GETPOST
invoiceInvoice CDR for LoginGenerate an invoice from CDRs for a login.
- GETPOST
apishowinvoicesList InvoicesList invoices for the login within a period. - GET
getopeninvoicesGet Open InvoicesList invoices that are still open / unpaid. - GET
showpaidinvoicesShow Paid InvoicesList invoices already paid. - GETPOST
apishowinvitemsShow Invoice ItemsReturn line items for a specific invoice. - GETPOST
newinvoiceNew InvoiceCreate a new invoice for a login. - POST
delinvoiceDelete InvoiceRemove an existing invoice. - GETPOST
newinvoiceitemNew Invoice ItemAdd a line item to an invoice. - GETPOST
editinvoiceitemEdit Invoice ItemUpdate a single invoice line item. - POST
delinvoiceitemDelete Invoice ItemRemove a line item from an invoice. - GETPOST
makepaymentMake PaymentRegister a payment against an invoice.
- GETPOST
apishowtotalservicesTotal ServicesReturn the total number of services for a login. - GETPOST
apishowtotalonlineTotal Online ServicesReturn the number of services currently online. - GETPOST
apishowtotalofflineTotal Offline ServicesReturn the number of services currently offline. - GETPOST
apishowusercalleridsShow User CallerIDsList every CallerID registered for a login. - GETPOST
apimonthlyusageMonthly UsageReturn aggregated monthly usage for a login. - GETPOST
apilistplansList PlansList rate plans available to the login. - GETPOST
apigeneralpinGeneral PIN InfoReturn general information about a PIN across services. - GETPOST
apichangepindescChange PIN DescriptionUpdate the human-readable description of a PIN. - POST
delserviceDelete ServiceRemove a user service from a login.
Virtual PBX & Call Center
- POST
addextensionAdd ExtensionCreate a new PBX extension. - POST
changeextensionChange ExtensionUpdate PBX extension settings. - GET
getuserextensionGet ExtensionFetch a PBX extension configuration. - POST
changesegualiChange SegualiUpdate follow-me / seguali routing rules. - GET
getrealtimestatusPBX Service StatusReal-time status of the PBX service.
- POST
addconferenceAdd ConferenceCreate a conference room. - POST
changeconferenceChange ConferenceUpdate a conference room. - GET
getuserconferenceGet ConferenceReturn a conference room configuration. - POST
addpbxAdd PBXCreate an IVR / auto attendant. - POST
changepbxChange PBXUpdate an IVR / auto attendant. - GET
getuserpbxGet PBXFetch an IVR / auto attendant. - POST
addqueueAdd QueueCreate a call queue. - POST
adddialerAdd DialerCreate a predictive dialer campaign. - POST
sendphonesSend Phones to DialerUpload a phone list to a dialer campaign. - GET
searchrecSearch for audio recordingLocate call recordings by criteria. - GET
getdialerstatusGet Dialer Status from RECIDReturn the status of a dialer record.
- GET
getdidcountriesGet Country ListReturn DID-supported countries. - GET
getdidlocationsGet DID LocationsReturn DID locations for a country. - GET
getdidslistGet List of DIDsReturn the login's DIDs. - POST
adddidAdd DIDProvision a new DID. - POST
changedidChange DIDUpdate DID routing. - GET
getuserdidGet DIDFetch one DID configuration.
PIN — VoIP (ServiceID = 2)
- POST
addpinAdd PINCreate a VoIP PIN (ServiceID = 2). - POST
delpinDel PINDelete a VoIP PIN. - GET
getpinbalanceGet PIN BalanceReturn current PIN balance. - GET
getpindailybalanceGet PIN Daily BalanceReturn PIN balance day-by-day. - POST
changepinbalanceChange PIN BalanceAdd or remove credit from a PIN. - POST
resetpinbalanceReset PIN BalanceReset a PIN's balance to zero. - POST
changepinplansChange PIN PlansAssign rate plans to a PIN. - POST
changepintrafficChange PIN TrafficChange allowed traffic destinations. - POST
changepinlimitChange PIN Credit LimitUpdate the PIN's credit limit.
- POST
addpincalleridAdd CallerID to PINBind a CallerID to a PIN. - POST
delpincalleridDelete CallerID from PINRemove a CallerID from a PIN. - GET
getpincalleridGet CallerIDs from PINList CallerIDs bound to a PIN. - GET
findpinfromcidFind PIN from CallerIDReverse lookup: find a PIN by CallerID. - GET
findpinfromiccidFind PIN from ICCIDReverse lookup: find a PIN by SIM ICCID. - GET
checkpincalleridCheck if CallerID existsVerify whether a CallerID is registered.
- GET
getpincdrGet PIN CDRReturn raw CDR rows for a PIN. - GET
getpinbillGet PIN BillReturn a billed summary for a PIN. - GET
getpincdrhtmlGet PIN CDR (HTML)Return the CDR as an HTML report. - GET
getlogincdrGet Login/Agent CDRReturn CDR rows for a login or agent. - GET
getagentstatsGet Agent StatsReturn call-center agent statistics.
- GET
listpinsList PINsList all PINs owned by the login. - GET
listconnectedpinsList Connected PINsList PINs that are currently connected / online. - GET
listpinimeisList PIN IMEIsReturn IMEIs currently or historically bound to a PIN. - POST
blockedpinsBlocked PINsList PINs that are currently blocked. - GETPOST
negativebalancepinsNegative Balance PINsList PINs whose balance is below zero. - GETPOST
no24connectionpinsNo 24h Connection PINsList PINs that have not connected in the last 24h. - GETPOST
neverconnectedpinsNever Connected PINsList PINs that have never connected. - GETPOST
noaccesspinsNo Access PINsList PINs that failed to authenticate recently. - GETPOST
withcreditlimitpinsPINs With Credit LimitList PINs that have an assigned credit limit. - GETPOST
editpincreditEdit PIN CreditUpdate the credit assigned to a PIN. - GETPOST
editaddrpinEdit PIN AddressUpdate the postal address associated with a PIN.
PIN — M2M (ServiceID = 20)
- POST
addpinmvnoAdd PIN (M2M)Create an M2M PIN (ServiceID = 20). - POST
delpinmvnoDel PIN (M2M)Delete an M2M PIN. - GETPOST
editpingeoEdit PIN Geo LocationUpdate stored geolocation for a PIN. - POST
moveserviceTransfer ServiceMove an M2M service between logins. - GETPOST
pinsonlinePINs OnlineList currently online M2M PINs. - GET
showlastcarrierM2M Last CarrierReturn the last carrier a SIM used. - POST
setjasperstatusSet Jasper StatusSet Jasper lifecycle status for a SIM. - POST
sendpushPUSH APISend a PUSH request to a device.
Mobile, GPS & UPC
- POST
sendsmsSend SMSDeliver an SMS to a destination MSISDN. - GET
getsmsstatusGet SMS StatusReturn delivery status of a sent SMS. - GET
getmobilecarriersGet Mobile CarriersList mobile carriers available for recharge. - GET
getmobilechargesGet Mobile RechargesList recharge denominations. - POST
rechargemobileRecharge mobile phoneTop-up a prepaid mobile number. - GETPOST
goipMobile number Portability look upReturn current carrier for an MSISDN.