Plan surf trips: surf towns and spots worldwide, rated surf forecasts, live cams and where to stay.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
What the surf cams show right now, spot by spot: every 3 hours in daylight an AI reads a still from each free surf cam Swell Cabin can read and says what it shows in the forecast's own words (words: 'Waist to chest high'; surface: Glassy, Clean, Fair, Bumpy, Choppy or Blown out; shape, how the waves break: Peeling, Peaky, Mushy, Messy or Closing out, null on readings from before it was read; crowd: none, a few or many surfers out; sure: high or medium) and what that means at that spot for its level (verdict good, fair, poor or flat; label Looks good, Surfable, Looks poor, Flat; reason small or big when the size doesn't suit it, shape when waves that close out or break messy keep it at Surfable). Each reading has its time (and local: the town's clock), the cam's page (cam, provider), what our forecast said for that spot and hour (forecast.words, rating, steps: + when the forecast said bigger) and the nearest buoy's reading. Only readings from the last 3 hours are given; a reading the nearest buoy says can't be right is left out (leftOut, with why). These are an AI's readings of a picture, not measurements: say so, give the time, and link the cam. Each spot has a score (0–10, like the forecast's rating: size on one scale for every spot × surface × how the waves break × surfers out, the mean of its cams), cams (how many were read) and rank (the reader's side-by-side rank in the town, 1 looks best, when two or more spots were read). best is what looks best across the town's cams (the rank, else the score); standout is that same reading only when the reader ranked it first on its own and it looks good or surfable (null otherwise: scores of separate readings never name one): use it to answer "which spot looks best right now in …", and when standout is null say the cams don't show one clearly ahead. With a town, that town's spots, best looking first (readings is empty when no cam was readable lately: use surf_forecast); without one, every town with a reading now, best looking first. Towns are ordered by their best spot's score. good: true keeps only spots that look good. Use it for "is it good right now at …", next to surf_forecast.
Only the spots that look good.
Town slug, e.g. "tel-aviv". Leave out for every town with a cam reading now.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http surf https://swellcabin.com/api/mcp
What the surf cams show right now, spot by spot: every 3 hours in daylight an AI reads a still from each free surf cam Swell Cabin can read and says what it shows in the forecast's own words (words: 'Waist to chest high'; surface: Glassy, Clean, Fair, Bumpy, Choppy or Blown out; shape, how the waves break: Peeling, Peaky, Mushy, Messy or Closing out, null on readings from before it was read; crowd: none, a few or many surfers out; sure: high or medium) and what that means at that spot for its level (verdict good, fair, poor or flat; label Looks good, Surfable, Looks poor, Flat; reason small or big when the size doesn't suit it, shape when waves that close out or break messy keep it at Surfable). Each reading has its time (and local: the town's clock), the cam's page (cam, provider), what our forecast said for that spot and hour (forecast.words, rating, steps: + when the forecast said bigger) and the nearest buoy's reading. Only readings from the last 3 hours are given; a reading the nearest buoy says can't be right is left out (leftOut, with why). These are an AI's readings of a picture, not measurements: say so, give the time, and link the cam. Each spot has a score (0–10, like the forecast's rating: size on one scale for every spot × surface × how the waves break × surfers out, the mean of its cams), cams (how many were read) and rank (the reader's side-by-side rank in the town, 1 looks best, when two or more spots were read). best is what looks best across the town's cams (the rank, else the score); standout is that same reading only when the reader ranked it first on its own and it looks good or surfable (null otherwise: scores of separate readings never name one): use it to answer "which spot looks best right now in …", and when standout is null say the cams don't show one clearly ahead. With a town, that town's spots, best looking first (readings is empty when no cam was readable lately: use surf_forecast); without one, every town with a reading now, best looking first. Towns are ordered by their best spot's score. good: true keeps only spots that look good. Use it for "is it good right now at …", next to surf_forecast.
| Argument | Type | Description |
|---|---|---|
| good | boolean | Only the spots that look good. |
| town | string | Town slug, e.g. "tel-aviv". Leave out for every town with a cam reading now. |
{
"type": "object",
"properties": {
"good": {
"type": "boolean",
"default": false,
"description": "Only the spots that look good."
},
"town": {
"type": "string",
"description": "Town slug, e.g. \"tel-aviv\". Leave out for every town with a cam reading now."
}
},
"additionalProperties": false
}Curated surf spots with exact coordinates, break type, direction and level. Search within a town (slug) or around any point (lat/lng + radius_km), sorted by distance.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lng | number | |
| town | string | Town slug. Distances are measured from the town centre. |
| type | string | |
| level | string | |
| limit | integer | |
| radius_km | number | Used with lat/lng. |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"town": {
"type": "string",
"description": "Town slug. Distances are measured from the town centre."
},
"type": {
"enum": [
"beach",
"reef",
"point",
"rivermouth",
"pool"
],
"type": "string"
},
"level": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"radius_km": {
"type": "number",
"default": 50,
"maximum": 500,
"minimum": 0.1,
"description": "Used with lat/lng."
}
},
"additionalProperties": false
}Full profile of one surf town: description, season, water temperature, wave types, levels and curated surf spots (each with its type, level, the way its coast faces in degrees (facing), its best tide where known (tide, e.g. "low to mid, rising", with tideSources), a reviewed, freely licensed photo of surf at that break from Wikimedia Commons when one exists, with author and licence, and reviewed YouTube surf clips filmed there: clips[].url). `dataQuality` says how far to trust the town's data (trust 0–100 and level high/medium/low, when it was last checked against sources, how many spots are verified, open audit warnings): tell the user when trust is low or the data was never checked. `surfByMonth` gives, for each month, how often the surf was good there, measured over the last three years (goodDays, greatDays: % of days rated Good or better / Great or better at the best spot; seaTempC: the mean sea temperature measured by satellite, NASA JPL MUR SST; waveHeightM), with its source: use it for "when should I go" and say it is measured, not a forecast.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Town slug from search_towns, e.g. "ericeira". |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Town slug from search_towns, e.g. \"ericeira\"."
}
},
"additionalProperties": false
}Places around a surf town, sorted by distance: stay (Places to stay), coffee (Coffee), food (Food & drinks), surf (Surf shops & schools), spots (Surf spots (community mapped)). Stays are a saved, merged OpenStreetMap + Overture Maps collection (hotels, resorts, hostels, surf camps, guesthouses, homestays, B&Bs, holiday rentals, villas, camping) with website, phone, email, socials, stars, rooms and facilities where known. Cafés, food and surf shops/schools are a saved Overture Maps collection too; community-mapped surf spots are a live OpenStreetMap lookup. Places with a reviewed, freely licensed photo (Wikimedia Commons) include it as photo { url, page, author, license }.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only one kind of place, e.g. stay: "surf_camp", "hostel", "homestay"; coffee: "cafe", "bakery"; food: "restaurant", "bar"; surf: "school", "shop". |
| town* | string | Town slug. |
| limit | integer | |
| category | string | |
| radius_km | number |
{
"type": "object",
"required": [
"town"
],
"properties": {
"kind": {
"enum": [
"hotel",
"resort",
"motel",
"hostel",
"surf_camp",
"guest_house",
"homestay",
"bed_and_breakfast",
"apartment",
"holiday_rental",
"villa",
"chalet",
"camp_site",
"caravan_site",
"cafe",
"bakery",
"juice_bar",
"restaurant",
"bar",
"pub",
"fast_food",
"ice_cream",
"shop",
"school"
],
"type": "string",
"description": "Only one kind of place, e.g. stay: \"surf_camp\", \"hostel\", \"homestay\"; coffee: \"cafe\", \"bakery\"; food: \"restaurant\", \"bar\"; surf: \"school\", \"shop\"."
},
"town": {
"type": "string",
"description": "Town slug."
},
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1
},
"category": {
"enum": [
"stay",
"coffee",
"food",
"surf",
"spots"
],
"type": "string",
"default": "stay"
},
"radius_km": {
"type": "number",
"maximum": 25,
"minimum": 0.5
}
},
"additionalProperties": false
}Find surf towns by name/country text, region, month with good surf, surfer level and wave type. All filters are optional; results are ranked most popular first (popularity.rank 1 = best known: Wikipedia readership, places to stay and surf spots) and include best months, water temperature, number of curated surf spots and a page URL. With a month, the towns are ranked by how good that month's surf measured over the last three years (good + great days) and each has inMonth: goodDays and greatDays (% of days rated Good or better, Great or better, at the town's best spot), seaTempC and waveHeightM (null where not measured yet).
| Argument | Type | Description |
|---|---|---|
| level | string | |
| limit | integer | |
| month | integer | Only towns whose best season includes this month (1 = January). |
| query | string | Free text: town, country, area or region, e.g. "portugal" or "bali". |
| region | string | |
| country | string | Country name or ISO code, e.g. "Portugal" or "PT". Each town also has a zone (e.g. "Lisbon coast", "Canary Islands"). |
| break_type | string | |
What Swell Cabin posts on social media, worked out from its own data: swell alerts (a swell building to 1.5 m or more with a Good-or-better day in it, on days the three wave models agree on), the best day this week (Good or better, and big enough for the word: Good from waist high, Great from chest high, Epic from head high), the weekend's best-rated towns, a town's surf season opening, surf events, the evergreen kinds (where to surf this month: the best-known towns in season with the water and wetsuit; a town spotlight from its own record; about Swell Cabin, in its own numbers), and the weekly stories (swell on the move: a long-period swell reaching towns of one region in the order it arrives; the week ahead in numbers on Mondays; the local surf scene, a town's reviewed local accounts, on Tuesdays; learn to surf this weekend on Thursdays; surf by day, out by night on Fridays; the spot of the week with a reviewed, credited surf clip on Saturdays). Cards show the town's or spot's reviewed, freely licensed photo with its credit; a list's towns follow as photo slides; a post for a spot with a reviewed clip shares the clip as its video. With a town: the posts it would make about that town now, best first, each written for Instagram, Facebook, Threads, X, Bluesky and Mastodon with its time (UTC, in the town's morning or evening), link, card image (a PNG drawn from the same facts: card for a feed post, story for 9:16) and the facts every number comes from. Without a town: the latest daily proposal across every town (the owner approves it; the approved posts go out through Buffer) and the posts already scheduled. A post names a surf spot only when it is well known (it has a cam or surf clips), and never says today or tomorrow (it goes out later than it's written).
| Argument | Type | Description |
|---|---|---|
| town | string | Town slug. Leave out for the latest daily proposal across every town and what is scheduled. |
{
"type": "object",
"properties": {
"town": {
"type": "string",
"description": "Town slug. Leave out for the latest daily proposal across every town and what is scheduled."
}
},
"additionalProperties": false
}Live surf cams for a town or one of its surf spots: free cams (e.g. MEO Beachcam and Surftotal in Portugal, Viewsurf and GoSurf in France, Beach Cam Israel, WaveHub and GoSurf Israel, council, surf-school and YouTube live cams) and premium ones (Surfline), each with when it was last checked, whether it was up, when a browser last saw it play a real picture (verifiedPlaying) and whether it is video (live: true) or still pictures (live: false), and embed: how Swell Cabin shows it on its own pages where the operator allows that (kind youtube: the YouTube player URL; kind still: the SkylineWebcams picture that updates every 5 minutes, from the still API; kind player: the operator's own player, which the operator agreed Swell Cabin may show, with the date they agreed (permission); null: a link only, e.g. MEO Beachcam, whose terms keep the stream its own); pinNote explains where a network pins the cam in the wrong place. `networks` are the local cam networks that cover the town (worth checking for spots without a saved cam). Only cams Swell Cabin opened and checked are listed (Surfline last); no search links. For spots without a saved cam, `search` lists the checked networks that cover the town.
| Argument | Type | Description |
|---|---|---|
| spot | string | Optional: one surf spot name, as returned by get_town or find_surf_spots. |
| town* | string | Town slug. |
{
"type": "object",
"required": [
"town"
],
"properties": {
"spot": {
"type": "string",
"description": "Optional: one surf spot name, as returned by get_town or find_surf_spots."
},
"town": {
"type": "string",
"description": "Town slug."
}
},
"additionalProperties": false
}Live 7-day surf forecast for a surf town and each of its spots, rated hour by hour for that spot (rating Flat, Poor, Fair, Good, Great or Epic with a 0–10 score and the reasons why, from the way the spot's coast faces, the swell trains, their period and the wind against the coast): per day the rating, the best time window (best.from–best.to, local time, which already accounts for the tide), what to expect in surfers' words (body: 'Chest to head high', surface: Glassy/Clean/Fair/Bumpy/Choppy/Blown out), breaking surf height (surf [min, max] m), wave height range, swell height, period and direction, wind, high and low tides with heights (predicted from the nearest tide gauge: see `tide`, or approximate from the ocean model where there is none), sunrise/sunset, water temperature (the ocean model's, set to the newest satellite measurement at the town: `water` says how, with source 'satellite' and the satellite's day, 'climate' when only this month's measured difference was used, or 'model'; months: the measured mean by month) and confidence (high/medium/low: three wave models compared, ECMWF, Météo-France and NOAA, with their figures in models; a model the town's buoy has shown to be far off there is left out), and, when the models differ on a day's size by 20% or more, `range` (wave [min, max] m at sea, surf [min, max] m at the spot, body in surfers' words); the town's days name the best spot (bestSpot). `accuracy`, where the town has a buoy (NOAA, Queensland Government, E.U. Copernicus Marine or Israel Oceanographic & Limnological Research): how often the forecast was within 20% of it over the last weeks, whether sizes are corrected for the model's bias there (method 'ratio', or 'power' with fit { k, beta }: the correction depends on size), at which spots (correctedSpots: those facing the same sea as the buoy), the swell period's record and correction (period: within15 is the share of hours within 1.5 s, offset the seconds added), each wave model's own record at the buoy (models: { n, mae, within20 }), the closest one (bestModel) and the ones left out of the confidence check (unreliable). `offshore`, for every town: the open water off the town checked against the satellite altimeters' passes (Copernicus Marine, within 100 km; passes, km, from/to, within20 and within20Raw, ratio satellite ÷ model, corrected: whether sizes here are scaled by it, which happens only where no buoy correction applies, models/bestModel/unreliable offshore, and the credit line to show). `updated` says when the forecast was worked out (it is cached for up to 3 hours). Plus the next 48 hours every 3 hours, `now` (rating, why, tide rising/falling, and water: this hour's sea temperature in °C, set to the satellites like the days'; trust it as measured only where `water.source` is 'satellite' or 'climate', as the town page does) and `live`: what the nearest buoy or wave station, the newest satellite altimeter pass near the town (satellite: mission, time, km out, wave height, and what the model said there and then) and the airport wind report (METAR) measure right now, checked against the forecast (check: on-track, bigger/smaller, windier/calmer; check.factor is the nudge applied to today's sizes, from the buoy, or from the satellite where there is no buoy). When it is not 1, `nowcast` says so and today's surf and body (now, hours, today's day) are already scaled toward the measurement, as on the site; ratings stay the model's. Waves from Open-Meteo Marine, wind from MET Norway.
Where the surf is good around the world in the next days: every town whose best day from today up to within_days ahead is at least min_rating, best and soonest first, each with that day (rating Flat … Epic at its best spot, the spot, its best time, the surf in surfers' words, how sure the forecast is, and when: today, tomorrow or the weekday in the town's own time) and today's rating. From Swell Cabin's forecast for every town, worked out twice a day (generated says when; stale is true when it is more than 36 hours old). Use it for "where is it good right now / this weekend", then surf_forecast for one town's full forecast, and share each town's url.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| region | string | |
| min_rating | string | |
| within_days | integer | Days from today, today included. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 150,
"minimum": 1
},
"region": {
"enum": [
"Europe",
"Africa",
"Asia",
"Oceania",
"Pacific Islands",
"North America",
"Mexico & Central America",
"Caribbean",
"South America"
],
"type": "string"
},
"min_rating": {
"enum": [
"fair",
"good",
"great",
"epic"
],
"type": "string",
"default": "good"
},
"within_days": {
"type": "integer",
"default": 3,
"maximum": 4,
"minimum": 1,
"description": "Days from today, today included."
}
},
"additionalProperties": false
}Wave pools and surf lakes open to the public (The Wave Bristol, URBNSURF, Alaïa Bay, Atlantic Park, DSRT Surf...): city, country, coordinates, wave technology where published (e.g. Wavegarden Cove), levels, website, notes (address, seasons), the date each was last checked and the published sources it was checked against. Give a town slug (pools within 250 km, nearest first, with km), lat and lng (with radius_km), a country code, or nothing for all of them. Pools are inland: they work when the sea is flat, and are good for beginners and for training.
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude, with lng, to search around a point. |
| lng | number | Longitude, with lat. |
| town | string | Town slug: pools within 250 km of it (or radius_km). |
| level | string | Only pools with sessions for this level. |
| country | string | ISO 3166-1 alpha-2 country code, e.g. GB, US, AU. |
| radius_km | number | Search radius for town or lat/lng (default 250, max 5000). |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"description": "Latitude, with lng, to search around a point."
},
"lng": {
"type": "number",
"description": "Longitude, with lat."
},
"town": {
"type": "string",
"description": "Town slug: pools within 250 km of it (or radius_km)."
},
"level": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string",
"description": "Only pools with sessions for this level."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code, e.g. GB, US, AU."
},
"radius_km": {
"type": "number",
"description": "Search radius for town or lat/lng (default 250, max 5000)."
}
},
"additionalProperties": false
}The town's Feed: what's new there, and what Swell Cabin's data says. insights: Swell Cabin's own cards worked out from the live forecast and what's on (today's surf in plain words, the best day this week with a 7-day wave chart, go early before the wind, swell building or dropping, a beginner or experts-only day with the spots for that level, what's on tonight, upcoming events, the season and the wetsuit for this month), each { key, kind, label, title, text, chart? }. posts: recent public Bluesky and Mastodon posts about surfing the town (text, photo or link, likes, replies, link to reply). recentVideos: YouTube videos about surfing the town from the last 30 days, newest first (at most two per channel), with links to watch, whether each is portrait (a Short), its duration in seconds, views and likes; videosAt: when they were fetched from YouTube (each town's videos are fetched at most once a day, the every-town ones every 12 hours, to stay within YouTube's quota; null when there are none yet). instagramPosts: the latest posts from the town's Instagram pages and its region's (instagramAccounts: e.g. the surf club, surf schools and shops, and regional pages such as a national surf-cam network, which carry region "zone:…" or "country:XX"; pages are found and ranked from measured activity, engagement, surf focus and the places their posts name), newest first (at most 4 from one page), with likes, comments, video (every reel's mp4 to play: from Business Discovery, or from the reel's public embed page when that leaves it out) and a link to like or comment on Instagram. articles: the newest articles from the major surf magazines (Surfer, Stab, BeachGrit, Surfer Today, The Surfer's Journal, Tracks, Carve, SurfGirl, Freesurf, Eastern Surf, Zigzag, and in French, Portuguese and Spanish Surf Session, ONFIRE, Waves and Surfer Rule; never Surfline) that name the town or one of its breaks (an article about Pipeline is Haleiwa's, one about Cloud 9 General Luna's), from the last 21 days, newest first: { magazine, name, title, summary, url, image, publishedAt, tags, towns (every town it names, most prominent first), town }. Every video and post has passed Swell Cabin's quality check first: hotel, villa and rental ads, property for sale, transport and transfer guides, children's videos, video games, TV, live-cam recordings and upcoming streams, posts nobody watched or liked after a fair chance, posts with too little to show, reels Instagram plays only in its own app (licensed music), Bluesky/Mastodon posts that say surf only in their hashtags or don't name the town, and the same post again from one account are left out; promos and clickbait are kept but ranked lower (quality below 1, with qualityFlags). quality: { checked, kept, dropped: { reason: count } }; review: true also lists what was left out and why (dropped). classics: surf clips a person picked for the town's breaks (or every town's with town "all"), what the site's Feed goes on with once everything new is shown. Every video, post and classic says which languages it's written in (langs, ISO 639-1 codes, main first; none when it's too short or too full of names to tell); the site shows each visitor only what's in English or in their own language (the page's, or one their browser is set to) and what's too short to tell; languages does the same here (e.g. ["pt"]: English, Portuguese and the unsure ones). Share the links and the town's Feed page so the user can watch. town "all" gives the same across every town (no insights), each item with its town slug and page, every magazine article (one about none of our towns has no town: general surf news), plus top: the home Feed's mix ranked across towns by engagement (likes, comments, views), quality and freshness, Instagram and videos before Bluesky/Mastodon, articles about a town before general surf news (which is spaced out, at most one card in ten; any article at most one in four), automated alert accounts left out; exclude leaves towns out.
What happens each night in a surf town (weekly schedule: parties, live music, DJs, comedy, movie nights, games, salsa, markets, culture) and upcoming dated events, with a short summary of the scene and the source of every entry. Defaults to tonight and the coming week, in the town's local time. Some towns aren't covered yet (covered: false).
| Argument | Type | Description |
|---|---|---|
| day | string | One weekday instead of tonight. |
| town* | string | Town slug. |
{
"type": "object",
"required": [
"town"
],
"properties": {
"day": {
"enum": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"type": "string",
"description": "One weekday instead of tonight."
},
"town": {
"type": "string",
"description": "Town slug."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
| include_towns_without_spots |
| boolean |
| By default only towns with curated surf spots (the ones listed on swellcabin.com) are returned. |
{
"type": "object",
"properties": {
"level": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 225,
"minimum": 1
},
"month": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Only towns whose best season includes this month (1 = January)."
},
"query": {
"type": "string",
"description": "Free text: town, country, area or region, e.g. \"portugal\" or \"bali\"."
},
"region": {
"enum": [
"Europe",
"Africa",
"Asia",
"Oceania",
"Pacific Islands",
"North America",
"Mexico & Central America",
"Caribbean",
"South America"
],
"type": "string"
},
"country": {
"type": "string",
"description": "Country name or ISO code, e.g. \"Portugal\" or \"PT\". Each town also has a zone (e.g. \"Lisbon coast\", \"Canary Islands\")."
},
"break_type": {
"enum": [
"beach",
"reef",
"point",
"rivermouth",
"pool"
],
"type": "string"
},
"include_towns_without_spots": {
"type": "boolean",
"default": false,
"description": "By default only towns with curated surf spots (the ones listed on swellcabin.com) are returned."
}
},
"additionalProperties": false
}| Argument | Type | Description |
|---|---|---|
| spot | string | Optional: one spot name from get_town. |
| town* | string | Town slug, e.g. "ericeira". |
{
"type": "object",
"required": [
"town"
],
"properties": {
"spot": {
"type": "string",
"description": "Optional: one spot name from get_town."
},
"town": {
"type": "string",
"description": "Town slug, e.g. \"ericeira\"."
}
},
"additionalProperties": false
}| Argument | Type | Description |
|---|---|---|
| town* | string | Town slug, or "all" for what's new across every town (the home page's Feed; each video and post then names its town). |
| limit | integer | |
| review | boolean | Also list the videos and posts the quality check left out, with why (dropped). |
| exclude | array | With town "all": town slugs to leave out. |
| languages | array | The languages the user reads (ISO 639-1 codes, e.g. ["pt"] or ["he"]): leaves out videos and posts that are in neither English nor one of these, as the site does for each visitor. Leave out for every language. |
{
"type": "object",
"required": [
"town"
],
"properties": {
"town": {
"type": "string",
"description": "Town slug, or \"all\" for what's new across every town (the home page's Feed; each video and post then names its town)."
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 50,
"minimum": 1
},
"review": {
"type": "boolean",
"default": false,
"description": "Also list the videos and posts the quality check left out, with why (dropped)."
},
"exclude": {
"type": "array",
"items": {
"type": "string"
},
"description": "With town \"all\": town slugs to leave out."
},
"languages": {
"type": "array",
"items": {
"type": "string"
},
"description": "The languages the user reads (ISO 639-1 codes, e.g. [\"pt\"] or [\"he\"]): leaves out videos and posts that are in neither English nor one of these, as the site does for each visitor. Leave out for every language."
}
},
"additionalProperties": false
}