{"openapi":"3.1.0","info":{"title":"SolarEdge (BYOK) API","version":"0.1.0","description":"SolarEdge (BYOK) lets an AI assistant read your own SolarEdge data through the SolarEdge API with a key you supply (SolarEdge monitoring API key (site or account key)). Read-only: 11 tools (get_site_details, get_site_data_period, get_site_overview, get_site_energy, get_site_time_frame_energy, get_site_power, get_site_power_details, get_site_energy_details, get_current_power_flow,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-solaredge.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-solaredge/docs"},"termsOfService":"https://connectorbay.com/byok-solaredge/terms"},"servers":[{"url":"https://byok-solaredge.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-solaredge/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_site_details":{"post":{"operationId":"get_site_details","summary":"Get a solar site's name, status, peak power, currency, installation and permission-to-operate dates, type, country, stat","description":"Get a solar site's name, status, peak power, currency, installation and permission-to-operate dates, type, country, state, time zone and alert count and severity (alerts need an account-level key). Street address is left out. Daily quota: 300 calls per site and per account key. Use for \"What is the peak power and status of my SolarEdge site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"}},"required":["site_id"],"title":"get_site_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_data_period":{"post":{"operationId":"get_site_data_period","summary":"Get the first and last date the site has production data for. Use for \"Since when does my SolarEdge site have data\".","description":"Get the first and last date the site has production data for. Use for \"Since when does my SolarEdge site have data\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"}},"required":["site_id"],"title":"get_site_data_periodArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_overview":{"post":{"operationId":"get_site_overview","summary":"Get a site's overview: last update time, energy and revenue for lifetime, last year, last month and last day, and curren","description":"Get a site's overview: last update time, energy and revenue for lifetime, last year, last month and last day, and current power. Use for \"How much energy has my solar site produced today, this month and in total\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"}},"required":["site_id"],"title":"get_site_overviewArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_energy":{"post":{"operationId":"get_site_energy","summary":"Get energy produced per time unit between two dates. DAY resolution allows up to one year, QUARTER_OF_AN_HOUR or HOUR up","description":"Get energy produced per time unit between two dates. DAY resolution allows up to one year, QUARTER_OF_AN_HOUR or HOUR up to one month. Use for \"How much did my solar panels produce each day last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"start_date":{"description":"First day as YYYY-MM-DD in the site's time zone.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day as YYYY-MM-DD in the site's time zone.","maxLength":10,"title":"End Date","type":"string"},"time_unit":{"anyOf":[{"enum":["QUARTER_OF_AN_HOUR","HOUR","DAY","WEEK","MONTH","YEAR"],"type":"string"},{"type":"null"}],"default":"DAY","description":"Resolution: QUARTER_OF_AN_HOUR, HOUR, DAY (default), WEEK, MONTH or YEAR.","title":"Time Unit"}},"required":["site_id","start_date","end_date"],"title":"get_site_energyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_time_frame_energy":{"post":{"operationId":"get_site_time_frame_energy","summary":"Get the total on-grid energy produced by a site between two dates (up to one year). Use for \"What was my total solar pro","description":"Get the total on-grid energy produced by a site between two dates (up to one year). Use for \"What was my total solar production in September\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"start_date":{"description":"First day as YYYY-MM-DD in the site's time zone.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day as YYYY-MM-DD in the site's time zone.","maxLength":10,"title":"End Date","type":"string"}},"required":["site_id","start_date","end_date"],"title":"get_site_time_frame_energyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_power":{"post":{"operationId":"get_site_power","summary":"Get site power in 15-minute steps between two times (up to one month). Use for \"Show my solar power output in 15-minute ","description":"Get site power in 15-minute steps between two times (up to one month). Use for \"Show my solar power output in 15-minute steps for yesterday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"start_time":{"description":"Start as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"Start Time","type":"string"},"end_time":{"description":"End as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"End Time","type":"string"}},"required":["site_id","start_time","end_time"],"title":"get_site_powerArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_power_details":{"post":{"operationId":"get_site_power_details","summary":"Get power per meter type (production, consumption, self-consumption, feed-in, purchased) between two times, up to one mo","description":"Get power per meter type (production, consumption, self-consumption, feed-in, purchased) between two times, up to one month. Use for \"How much power did my house consume versus produce yesterday afternoon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"start_time":{"description":"Start as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"Start Time","type":"string"},"end_time":{"description":"End as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"End Time","type":"string"},"meters":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated meters to include: Production, Consumption, SelfConsumption, FeedIn, Purchased (default: all available).","title":"Meters"}},"required":["site_id","start_time","end_time"],"title":"get_site_power_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site_energy_details":{"post":{"operationId":"get_site_energy_details","summary":"Get energy per meter type (production, consumption, self-consumption, feed-in, purchased) per time unit between two time","description":"Get energy per meter type (production, consumption, self-consumption, feed-in, purchased) per time unit between two times. DAY allows up to one year, QUARTER_OF_AN_HOUR or HOUR up to one month. Use for \"How much energy did I feed into the grid versus purchase each day this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"start_time":{"description":"Start as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"Start Time","type":"string"},"end_time":{"description":"End as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"End Time","type":"string"},"time_unit":{"anyOf":[{"enum":["QUARTER_OF_AN_HOUR","HOUR","DAY","WEEK","MONTH","YEAR"],"type":"string"},{"type":"null"}],"default":"DAY","description":"Resolution: QUARTER_OF_AN_HOUR, HOUR, DAY (default), WEEK, MONTH or YEAR.","title":"Time Unit"},"meters":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated meters to include: Production, Consumption, SelfConsumption, FeedIn, Purchased (default: all available).","title":"Meters"}},"required":["site_id","start_time","end_time"],"title":"get_site_energy_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_current_power_flow":{"post":{"operationId":"get_current_power_flow","summary":"Get the live power flow of a site: current power and status of PV, load, grid and storage (with charge level), and the c","description":"Get the live power flow of a site: current power and status of PV, load, grid and storage (with charge level), and the connections between them. Use for \"Is my house exporting power to the grid right now and how full is the battery\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"}},"required":["site_id"],"title":"get_current_power_flowArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_storage_data":{"post":{"operationId":"get_storage_data","summary":"Get battery telemetry of a site between two times (at most 7 days): power, state, stored energy and state of charge per ","description":"Get battery telemetry of a site between two times (at most 7 days): power, state, stored energy and state of charge per battery. Use for \"How did my home battery charge level change over the last two days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"start_time":{"description":"Start as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"Start Time","type":"string"},"end_time":{"description":"End as 'YYYY-MM-DD hh:mm:ss' in the site's time zone.","maxLength":19,"title":"End Time","type":"string"},"serials":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated battery serial numbers to include (default: all).","title":"Serials"}},"required":["site_id","start_time","end_time"],"title":"get_storage_dataArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_environmental_benefits":{"post":{"operationId":"get_environmental_benefits","summary":"Get the emissions saved (CO2, SO2, NOx), trees planted equivalent and light bulbs powered equivalent for a site. Use for","description":"Get the emissions saved (CO2, SO2, NOx), trees planted equivalent and light bulbs powered equivalent for a site. Use for \"How much CO2 has my solar site saved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Numeric SolarEdge site id (shown in the monitoring portal address and site details).","maximum":2147483647,"minimum":1,"title":"Site Id","type":"integer"},"system_units":{"anyOf":[{"enum":["Metrics","Imperial"],"type":"string"},{"type":"null"}],"default":null,"description":"Units: Metrics or Imperial (case-sensitive; default is the account setting).","title":"System Units"}},"required":["site_id"],"title":"get_environmental_benefitsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}