Request Smart Meter Texas Data
experimentalPull up to 12 months of 15-minute electricity usage for a Texas smart meter from Smart Meter Texas: grid imports, solar exports, monthly totals, peak demand, and download files for CSV, Aurora Solar, OpenSolar, and Solargraf. For a Texas homeowner pulling their own meter's usage, or an installer pulling a customer's. Needs the ESI ID (or service address), meter number, and current electricity provider, all printed on the electricity bill. If the user has shared a bill image or PDF, read those values from it and call this tool; it takes the values, not the file.
Endpoint
POST https://meterplan.com/api/v1/request-smt-data
MCP tool name: request_smt_data
Inputs
esiIdstringESI ID (Electric Service Identifier) of the meter: a 17 or 22 digit number printed on the electricity bill, usually labeled "ESI ID" or "ESIID" near the service address. Spaces and dashes are fine. Provide this or address.
addressstringService address of the home (street, city, and ZIP), used to look up the ESI ID when it isn't handy. Provide this or esiId; esiId is more reliable.
meterNumberstringrequiredMeter number printed on the electricity bill, usually in the meter-read or usage section: 8 to 12 letters and digits, sometimes ending in "LG". This is not the serial number printed on the meter itself.
currentRetaileranyrequiredThe current electricity provider named on the bill, chosen from the listed provider names (for example "TXU Energy", "Reliant Energy", or "Gexa Energy"), or its 5-digit PUCT certificate number. If the user's provider isn't on the list, ask them for the name exactly as printed on the bill. Smart Meter Texas checks it against the meter, so it must be the provider today, not a past one.
waitSecondsnumberHow long to wait for Smart Meter Texas before returning, 0 to 45 seconds (default 20). Most pulls finish in about 20 seconds; if time runs out the result is pending with a requestId to pass to get_smt_data.
Outputs
statusenum<needs_clarification | pending | complete | error>needs_clarification: the address matched more than one meter and nothing was started; ask the user which of candidates is theirs, then call request_smt_data with that esiId. pending: Smart Meter Texas is still working; call get_smt_data with requestId after checkAfterSeconds. complete: usage data is included. error: see errorMessage.
requestIdstringIdentifier for this pull. Pass it to get_smt_data. Null only when status is needs_clarification.
reusedbooleanTrue when this result comes from a pull for the same meter in the last 24 hours (or one already in progress) instead of a new Smart Meter Texas request.
stepstringCurrent processing step, in plain words.
checkAfterSecondsnumberPresent when status is pending: wait about this long before calling get_smt_data.
esiIdstringESI ID of the meter.
utilitystringUtility (TDU) that serves the meter, such as Oncor or CenterPoint, when known.
serviceAddressstringService address on file for this pull, when known.
dataStartstringFirst reading, local Central Time (YYYY-MM-DDTHH:MM:00).
dataEndstringLast reading, local Central Time (YYYY-MM-DDTHH:MM:00).
readingCountnumberNumber of 15-minute readings covered.
monthlyAggregatesarray<object>Per-month totals, oldest first.
avgMonthlyImportKwhnumberAverage grid import per month, in kWh.
avgMonthlyExportKwhnumberAverage grid export (solar sent back) per month, in kWh.
peakDemandKwnumberHighest 15-minute grid import across the data, in kW.
hasSolarExportsbooleanTrue when the meter recorded any exports to the grid.
intervalsarray<object>Raw 15-minute readings, oldest first. Only when includeIntervals is true; capped at the most recent 3,000.
intervalsTruncatedbooleanTrue when intervals were capped at 3,000. Use the download links for the full year.
exportsobjectDownload links for the full data in each format. Present when status is complete.
errorCodestringMachine-readable failure reason when status is error, such as smt_agreement_failed or no_data.
errorMessagestringWhat went wrong and what to do next, when status is error.
candidatesarray<object>Present when status is needs_clarification: the meters found at the given address. Show them to the user and let them choose; never pick one for them.
summarystringOne-paragraph plain-language summary of the result.
Example prompts
- “Pull my home's smart meter data. My ESI ID is 10443720012345678, meter 119026839, and I'm with TXU Energy.”
- “Here's my electricity bill. Can you pull my actual usage and show me how much solar I'm sending back?”
- “Pull 12 months of interval data for this customer and give me the Aurora file.”
- “How much solar did my house export to the grid each month this year?”
- “Get 15-minute usage for 123 Main St, Dallas, TX 75201, meter 119026839, Reliant Energy.”