Submitting a Forecast¶
Forecasters can submit forecasts for open Market Challenges, competing for the prize money available. They may commence or stop contributing to the market at any time.
API Endpoints:¶
To interact with the Predicto API and submit
your forecasts for open challenges,
you can use the following endpoints:
- GET
/api/v1/market/session
- Retrieve list of market sessions (you can filter by 'open' sessions with query parameters) - GET
/api/v1/market/challenge
- Retrieve challenges for an open market session. - POST
/api/v1/market/challenge/submission/{challenge_id}
- Publish your forecast submission for a specific challenge.
Prerequisites
- Access Token: Ensure you have a valid access token. Refer to the Authentication section if needed.
- Selected Challenge: You should have a selected challenge from the Listing Challenges section.
- Prepared Forecast Data: Follow the Preparing a Forecast section to prepare your forecast submissions.
Check this out
Check our Useful Links section for additional resources (Jupyter Notebook, API Specifications) to help you get started with the Predico platform.
Submitting Forecast Data¶
After preparing your submissions, submit it to the Predico platform.
In this example, we'll submit the random data generated in Preparing a Forecast section:
Important
- First-Time Submission Requirement: Before making your first submission, you must fulfill at least 1 month of historical forecast samples submitted to the Predico platform. Refer to Historical Forecast Submission for detailed instructions.
On updating your submission
- If you wish to update your submission, you can do so by submitting a new forecast using the PUT method. The latest submission will overwrite the previous one.
submit_forecast.py
# Submit the forecasts:
for submission in submission_list:
response = requests.post(url=f"https://predico-elia.inesctec.pt/api/v1/market/challenge/submission/{challenge_id}",
json=submission,
headers=headers)
# Check if the request was successful
if response.status_code == 201:
print(f"Forecast submission successful for {submission['variable']} quantile.")
else:
print(f"Failed to submit forecast for {submission['variable']} quantile.")
print(f"Status code: {response.status_code}")
What's next?¶
Learn how to list your submissions on the Predico platform in the Listing Submissions section.