Forecast.Solar Chart API
Chart widget (registered users)
Chart widget (registered users)
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/forecast-solar:forecast-solar-chart-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Forecast.Solar Chart API
version: v7.41.0.2515 (Fri, 04 Sep 2026 14:20:34 +0200)
description: '## Restful API for Solar production forecast data and Weather forecast data.
### Retrieve data based on a location, the declination and orientation of solar panels.
#### Homepage • Documentation
made by Knut Kohl . Consulting'
tags:
- name: Chart
description: Chart widget (registered users)
paths:
/{apikey}/charts:
get:
tags:
- Chart
operationId: chartsGet
summary: List all charts for given API key
parameters:
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseCharts'
text/csv:
schema:
$ref: '#/components/schemas/ResponseCharts'
application/xml:
schema:
$ref: '#/components/schemas/ResponseCharts'
text/plain:
schema:
$ref: '#/components/schemas/ResponseCharts'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
/{apikey}/chart/{lat}/{lon}/{dec1}/{az1}/{kwp1}:
get:
tags:
- Chart
operationId: chart1Get
summary: Build chart token for one solar plane
parameters:
- $ref: '#/components/parameters/ApiKey'
- $ref: '#/components/parameters/Latitude'
- $ref: '#/components/parameters/Longitude'
- $ref: '#/components/parameters/Declination_1'
- $ref: '#/components/parameters/Azimuth_1'
- $ref: '#/components/parameters/PowerInstalled_1'
- $ref: '#/components/parameters/CSVDelimiter'
- $ref: '#/components/parameters/CSVSeparator'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
text/csv:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
application/xml:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
text/plain:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
/{apikey}/chart/{lat}/{lon}/{dec1}/{az1}/{kwp1}/{dec2}/{az2}/{kwp2}:
get:
tags:
- Chart
operationId: chart2Get
summary: Build chart token combined for two solar planes
parameters:
- $ref: '#/components/parameters/ApiKey'
- $ref: '#/components/parameters/Latitude'
- $ref: '#/components/parameters/Longitude'
- $ref: '#/components/parameters/Declination_1'
- $ref: '#/components/parameters/Azimuth_1'
- $ref: '#/components/parameters/PowerInstalled_1'
- $ref: '#/components/parameters/Declination_2'
- $ref: '#/components/parameters/Azimuth_2'
- $ref: '#/components/parameters/PowerInstalled_2'
- $ref: '#/components/parameters/CSVDelimiter'
- $ref: '#/components/parameters/CSVSeparator'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
text/csv:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
application/xml:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
text/plain:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
/{apikey}/chart/{lat}/{lon}/{dec1}/{az1}/{kwp1}/{dec2}/{az2}/{kwp2}/{dec3}/{az3}/{kwp3}:
get:
tags:
- Chart
operationId: chart3Get
summary: Build chart token combined for three solar planes
parameters:
- $ref: '#/components/parameters/ApiKey'
- $ref: '#/components/parameters/Latitude'
- $ref: '#/components/parameters/Longitude'
- $ref: '#/components/parameters/Declination_1'
- $ref: '#/components/parameters/Azimuth_1'
- $ref: '#/components/parameters/PowerInstalled_1'
- $ref: '#/components/parameters/Declination_2'
- $ref: '#/components/parameters/Azimuth_2'
- $ref: '#/components/parameters/PowerInstalled_2'
- $ref: '#/components/parameters/Declination_3'
- $ref: '#/components/parameters/Azimuth_3'
- $ref: '#/components/parameters/PowerInstalled_3'
- $ref: '#/components/parameters/CSVDelimiter'
- $ref: '#/components/parameters/CSVSeparator'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
text/csv:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
application/xml:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
text/plain:
schema:
$ref: '#/components/schemas/ResponseBuildChartToken'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/csv:
schema:
$ref: '#/components/schemas/ResponseFailure'
application/xml:
schema:
$ref: '#/components/schemas/ResponseFailure'
text/plain:
schema:
$ref: '#/components/schemas/ResponseFailure'
/chart/init.js:
get:
tags:
- Chart
summary: Initialization script for charts
responses:
'200':
description: OK
operationId: getChartInitJs
x-operation-id-source: derived
/chart/{day}/{token}.js:
get:
tags:
- Chart
parameters:
- $ref: '#/components/parameters/ChartDay'
- $ref: '#/components/parameters/ChartToken'
summary: Script to render estimate chart for a day in advance
responses:
'200':
description: OK
operationId: getChartByDay{token}Js
x-operation-id-source: derived
/chart/history/{token}.js:
get:
tags:
- Chart
parameters:
- $ref: '#/components/parameters/ChartToken'
summary: Script to render today historic average chart
responses:
'200':
description: OK
operationId: getChartHistory{token}Js
x-operation-id-source: derived
/chart/history/{day}/{token}.js:
get:
tags:
- Chart
parameters:
- $ref: '#/components/parameters/ChartDay'
- $ref: '#/components/parameters/ChartToken'
summary: Script to render historic average chart for a day in advance
responses:
'200':
description: OK
operationId: getChartHistoryByDay{token}Js
x-operation-id-source: derived
/chart/clearsky/{token}.js:
get:
tags:
- Chart
parameters:
- $ref: '#/components/parameters/ChartToken'
summary: Script to render today theoretic clear sky chart
responses:
'200':
description: OK
operationId: getChartClearsky{token}Js
x-operation-id-source: derived
/chart/clearsky/{day}/{token}.js:
get:
tags:
- Chart
parameters:
- $ref: '#/components/parameters/ChartDay'
- $ref: '#/components/parameters/ChartToken'
summary: Script to render theoretic clear sky chart for a day in advance
responses:
'200':
description: OK
operationId: getChartClearskyByDay{token}Js
x-operation-id-source: derived
components:
parameters:
ChartDay:
name: day
in: path
description: 'Show days in advance: 0 = today (default), max. 6'
required: true
schema:
type: number
format: int32
maximum: 6
minimum: 0
PowerInstalled_3:
name: kwp3
in: path
description: 3rd solar plane max. peak power in kilo watt peak
required: true
schema:
type: number
format: float
multipleOf: 0.001
exclusiveMinimum: 0
Azimuth_3:
name: az3
in: path
description: 3rd solar plane azimuth, West = 90, South = 0, East = -90
required: true
schema:
type: number
format: float
maximum: 180
minimum: -180
PowerInstalled_1:
name: kwp1
in: path
description: 1st solar plane max. peak power in kilo watt
required: true
schema:
type: number
format: float
multipleOf: 0.001
exclusiveMinimum: 0
Declination_1:
name: dec1
in: path
description: 1st solar plane declination, 0 = horizontal, 90 = vertical
required: true
schema:
type: number
format: float
maximum: 90
minimum: 0
CSVSeparator:
name: X-Separator
in: header
description: Value separator in CSV response, default ';', for a tabulator use string 'TAB'
required: false
schema:
type: string
default: ;
Azimuth_1:
name: az1
in: path
description: 1st solar plane azimuth, West = 90, South = 0, East = -90
required: true
schema:
type: number
format: float
maximum: 180
minimum: -180
ChartToken:
name: token
in: path
description: Token generated by the /{apikey}/chart/{lat}/{lon}/... functions
required: true
schema:
type: string
Latitude:
name: lat
in: path
description: Latitude of location
required: true
schema:
type: number
format: float
maximum: 90
minimum: -90
Declination_2:
name: dec2
in: path
description: 2nd solar plane declination, 0 = horizontal, 90 = vertical
required: true
schema:
type: number
format: float
maximum: 90
minimum: 0
Longitude:
name: lon
in: path
description: Longitude of location
required: true
schema:
type: number
format: float
maximum: 180
minimum: -180
PowerInstalled_2:
name: kwp2
in: path
description: 2nd solar pülane max. peak power in kilo watt
required: true
schema:
type: number
format: float
multipleOf: 0.001
exclusiveMinimum: 0
ApiKey:
name: apikey
in: path
description: Your personal API key
required: true
schema:
type: string
Azimuth_2:
name: az2
in: path
description: 2nd solar plane azimuth, West = 90, South = 0, East = -90
required: true
schema:
type: number
format: float
maximum: 180
minimum: -180
CSVDelimiter:
name: X-Delimiter
in: header
description: Dataset delimiter in CSV response, default '|'
required: false
schema:
type: string
default: '|'
Declination_3:
name: dec3
in: path
description: 3rd solar plane declination, 0 = horizontal, 90 = vertical
required: true
schema:
type: number
format: float
maximum: 90
minimum: 0
schemas:
DatasetCharts:
description: Definition of a chart
type: object
properties:
token:
$ref: '#/components/schemas/Token'
param:
description: Parameters for API call
type: object
properties:
apikey:
example: '0000000000000000'
lat:
type: number
format: float
example: 51.548203
lon:
type: number
format: float
example: 12.131052
dec1:
type: number
format: float
example: 22
az1:
type: number
format: float
example: 0
kWp1:
type: number
format: float
example: 12.34
comment:
description: Parameter help
example: 'lat: Latitude, lon: Longitude, dec?: Declination, az?: Azimuth'
DatasetChartToken:
description: Definition of a chart
properties:
token:
$ref: '#/components/schemas/Token'
url:
description: URL for chart javascript
type: string
example: https://api.forecast.solar/chart/0a1b2c3d.js
tag:
description: HTML tag for chart javascript
type: string
example: <script defer src="https://api.forecast.solar/chart/0a1b2c3d.js"><\/script>
MessageOk:
type: object
properties:
code:
type: integer
example: 0
type:
type: string
example: success
text:
type: string
example: ''
ResponseBuildChartToken:
description: Build chart token
properties:
result:
$ref: '#/components/schemas/DatasetChartToken'
message:
$ref: '#/components/schemas/MessageOk'
ResponseCharts:
description: Charts defined for API key
properties:
result:
type: array
items:
$ref: '#/components/schemas/DatasetCharts'
message:
$ref: '#/components/schemas/MessageOk'
ResponseFailure:
description: Error response, see message object
properties:
result:
example: null
message:
type: object
properties:
code:
description: Error code
type: integer
example: 123
type:
type: string
example: error
text:
description: Error message
type: string
example: Meaningful error message
Token:
description: Unique chart token
type: string
example: 0a1b2c3d