<jupyter_start><jupyter_text>Surfline API v2 API parametersSurfline v2 API URL is constructed with the two following arugments:- `type`- `params`The base URL is the following.`https://services.surfline.com/kbyg/spots/forecasts/{type}?{params}` The available types are the following.Type|Data----|----wave|array of min/max sizes & optimal scoreswind|array of wind directions/speeds & optimal scorestides|array of types & heightsweather|array of sunrise/set times, array of temperatures/weather conditions The available params are the following:Param|Values|Note-----|------|------spotId|string|Surfline spot iddays|integer|Number of forecast days to get (Max 6 w/o access token, Max 17 w/ premium token)intervalHours|integer|Minimum of 1 (hour)maxHeights|boolean|`true` seems to remove min & optimal values from the wave data outputsds|boolean|If true, use the new LOTUS forecast engineaccesstoken|string|Auth token to get premium data access (optional) NoteThe Pipeline in Hawaii (USA) has the following surfline.com URL  `https://www.surfline.com/surf-report/pipeline/5842041f4e65fad6a7708890`where `5842041f4e65fad6a7708890` is the `spotId` of the spot.`pysurfline` offers a custom class for helping constructing the correct request URLs. pysurfline `URLBuilder` moduleCustom class to construct `url` in the format required by Surfline API.<jupyter_code>from pysurfline import URLBuilder<jupyter_output><empty_output><jupyter_text>Get `wave` forecast for next 7 days, at 3 hour interval for spotID=`5842041f4e65fad6a7708890` that is Pipeline in Hawaii (USA).<jupyter_code>params={
    "spotId":"5842041f4e65fad6a7708890",
    "days":7,
    "intervalHours":3,
    }<jupyter_output><empty_output><jupyter_text>The resulting URL will then be:<jupyter_code>u=URLBuilder("wave",params)
u.url<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09955995599559957, 'fraction_numerical': 0.045104510451045104, 'mean_word_length': 6.247011952191235, 'pattern_counts': {'":': 3, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 2, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '522146', 'license': 'MIT', 'n_tokens_mistral': 620, 'n_tokens_neox': 573, 'n_words': 173, 'path': 'docs/examples/surfline_api.ipynb', 'repo_name': 'wolfinger/pysurfline', 'size': '1818'}