# StrollPoint API v1 (API-r16) Everything a StrollPoint tour holds, so a website can show it and stay right by itself. When the manager changes something in the tour, the next request here carries the change. ## Start here 1. Find the tour id. It is the long id in the tour's link: https://strollpoint.com/w/, or the value of capture= in it. 2. GET https://strollpoint.com/api/v1/tour/ That answers what THIS tour has switched on, how many of each, and the address of each. 3. GET the address of each family you want. Every answer is JSON. ## Rules - Read only. Nothing here can change a tour. - Published tours only. A tour that is not published answers 404, the same as one that does not exist. - No key and no sign-in. Any page may call it from the browser. - What a person typed into a form is never readable here: names, emails and phone numbers go in, never out. - No email address is sent, of anyone. To write to a place or about a storefront, send the booking form. - Private notes are reachable by no address. - StrollPoint never takes money. Every fee, ticket and gift card is the manager's or the place's own link. - Inside v1 a change only ever adds. Anything that would break a site becomes v2, with both answering for twelve months. - Every answer carries rev, the build that wrote it. ## Every answer - List families answer { rev, family, tour, now, count, total, items }. - Single families answer { rev, family, tour, now, item }. - now is the tour's own clock: { local, timezone }. Every status (before, live, after) is judged on it. - Answers carry an ETag. Send it back as If-None-Match and an unchanged answer costs nothing (304). - places, promos and events carry nextChangeInSeconds: ask again then, and the page is never stale. - Text marked "may hold simple formatting" is the manager's own HTML. Clean it before putting it in a page, or use the plain text twin beside it. ## Families (GET https://strollpoint.com/api/v1/tour//) ### about About this tour. What the tour is, who runs it and how to reach them. Answers: one record. Front Desk: About this tour. name string The tour's name. category string What kind of place it is, in the manager's words. description string One or two sentences. about string The longer story. May hold simple formatting (HTML). aboutText string The same, as plain text. address string Street address. phone string Phone. website string Website. action object|null The tour's own button: { label, url }. client string Who the tour was made for. date string A date the manager chose to show. socials object facebook, instagram, x, tiktok: full links, only the ones filled in. logo string|null The tour's logo, as an image address. link string The tour itself. ### places Places. Every business and place. The same records as the public business feed, plus gift cards, the place's own buttons, whether it takes visit requests, and its own tour when it has one. Answers: a list. Front Desk: Places. Ask with: ?id= ?q= ?category= ?limit= ?offset= id string Stays the same for the life of the place. name string Name. category string Retail, Restaurant, Cafe and so on. address string Street address. phone string Phone. website string Website. menu string Menu link. socials object facebook, instagram, x, tiktok. blurb string A few words about the place. hours array|null Seven rows, Sunday first: { open, close, closed }. null when never filled in. hoursNote string A note about the hours. logo string|null Logo, as an image address. photo string|null A flat picture of the place. point object|null The point on the tour: { id, lat, lon }. null when it sits on no point. visit string|null A link that opens the tour standing at this spot. offers array Offers running right now: { title, body, code }. updatedAt number|null When the card last changed. giftCards object|null When the place sells gift cards: { url }. url is their own page, or null. buttons array The place's own buttons, up to three: { label, url }. booking object|null When the place takes visit requests: what the form asks. See forms, booking. ownTour object|null When the place has a tour of its own, opened from its door: { id, name, url }. icon string The icon its kind of place wears in the tour. A name in the theme: icons.places and art.places. featured boolean The manager has featured it, and today is inside its days. The tour lists these first. Beside the records, the answer also carries: nextChangeInSecondsnumber|null Seconds until anything here changes. Ask again then. feedRev string The build of the public business feed these records came from. ### categories Categories. The categories that hold at least one place, in the editor's order. Answers: a list. Front Desk: Places. name string Category name. businessIds array The places in it. icon string The icon it wears in the tour. A name in the theme: icons.places and art.places. line string The line the tour writes under it, for example Somewhere to eat. Beside the records, the answer also carries: feedRev string The build of the public business feed these records came from. ### areas Areas. The streets and areas of the tour, in the manager's order. Answers: a list. Front Desk: Places. id string Area id. name string Name. color string|null Its color on the map. pointCount number How many points it holds. businessIds array The places in it. point object|null The point on the tour: { id, lat, lon }. null when it sits on no point. visit string|null A link that opens the tour standing at this spot. Beside the records, the answer also carries: feedRev string The build of the public business feed these records came from. ### points Points. Every point a visitor can stand on, with its position and its 360 picture. Answers: a list. Ask with: ?id= ?q= ?area= ?layer= ?limit= ?offset= id string Point id. name string Name. number number|null Its number in the tour. lat number|null Latitude. lon number|null Longitude. layerId string|null The location it belongs to. See layers. areaId string|null The area it belongs to. See areas. businessId string|null The place it belongs to. See places. kind string photo, or placeholder when its picture has not been taken yet. stepFree boolean false when it cannot be reached without steps. photo object|null { flat, pano }: a flat picture, and the full 360 picture. visit string|null A link that opens the tour standing at this spot. ### layers Locations and floors. The locations inside one tour: a building, a floor, the street outside. Answers: a list. id string Location id. name string Name. pointCount number How many points it holds. ### tags Info tags. The tappable tags inside a photo: a picture, a video, a link, a paragraph. Answers: a list. Ask with: ?id= ?point= ?limit= ?offset= id string Tag id. pointId string The point whose photo it sits in. title string Title. Empty when the author hid it. text string The paragraph. image string|null Picture address. imageLink string|null Where the picture leads. video string|null Video address. link string|null Link address. yaw number Where it sits in the photo, degrees around. pitch number Degrees up or down. icon string Icon name. color string|null Color. opensOnArrival boolean Opens by itself when the visitor arrives. visit string|null A link that opens the tour standing at this spot. ### essentials Nearby essentials. Parking, restrooms, ATMs and the rest. Answers: a list. Front Desk: Nearby essentials. Ask with: ?id= ?kind= ?limit= ?offset= id string Id. kind string parking, deck, street, restroom, atm, ev, bike, aed, water, info. kindLabel string The kind in words. name string Name. hours string Hours, in words. cost string Cost, in words. notes string Notes. accessible boolean Marked accessible. start string|null First day it applies. end string|null Last day it applies. status string before, live or after, on the tour's own clock. point object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. lat number|null Latitude when it is a pin with no point. lon number|null Longitude. visit string|null A link that opens the tour standing at this spot. icon string The icon it wears in the tour. A name in the theme: icons.essentials. group string The group the tour keeps it in: Parking, Restrooms, Water and so on. Three kinds of parking are one group. photo string|null A picture of where it stands: the 360 photo of its point, laid flat, twice as wide as it is tall. null when it is a pin with no point. ### accessibility Accessibility. Where the steps are, so a site can say which places are step free. Answers: one record. Front Desk: Accessibility. stepFreeRoutes boolean The tour offers step free walking directions. notReachable array Points that cannot be reached without steps: { id, name, lat, lon }. steps array Connections that have steps in them: { a, b }, each a point. ### storefronts Empty storefronts. Space for rent or sale, with who to call. Answers: a list. Front Desk: Empty storefronts. Ask with: ?id= ?status= ?limit= ?offset= id string Id. name string Name. address string Address. size string Size, in the manager's words. rent string Rent or price, in the manager's words. blurb string About the space. status string available or pending. A leased space leaves the list. contact object { name, phone }: who to call. To write to them, send the booking form. takesQuestions boolean A visitor can send a question. See forms, booking. deal string rent, sale or both. link string Opens the tour straight on this shop. point object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. lat number|null Latitude when it is a pin with no point. lon number|null Longitude. visit string|null A link that opens the tour standing at this spot. photo string|null A picture of where it stands: the 360 photo of its point, laid flat, twice as wide as it is tall. null when it is a pin with no point. ### inventory (preview: working, shape may still change) Inventory. What is on the shelves. Price and count appear only when the manager switched each one on. When the manager has not allowed browsing, a search of two letters or more is required. Answers: a list. Front Desk: Inventory. Ask with: ?id= ?q= ?category= ?limit= ?offset= id string Item id. name string Name. category string Category. sku string The shop's own number. price string|null Price, as the shop wrote it. null when prices are off. stock string|null How many. null when counts are off. description string About the item. May hold simple formatting (HTML). buy object|null The shop's own Buy link: { label, url }. point object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. visit string|null A link that opens the tour standing at this spot. photos array Picture addresses. Beside the records, the answer also carries: on boolean The manager put the inventory in the tour. browse boolean The whole list may be asked for. When false, only a search answers. prices boolean Prices are shown. stock boolean Counts are shown. ### linked (preview: working, shape may still change) Linked tours. Places with a tour of their own, opened from their own front door. Answers: a list. Front Desk: Linked tours. id string Id. name string Name. blurb string A few words. url string Their tour. tourId string|null Their tour's id, when it is a StrollPoint tour. api string|null Their tour's own address on this API. door object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. visit string|null A link that opens the tour standing at this spot. photo string|null A picture of its front door: the 360 photo of that point, laid flat. null when it has no door on this tour. ### events Events. Every event, its lineup with times and places, its tickets, and where it stands right now. Answers: a list. Front Desk: Events. Ask with: ?id= ?status= ?limit= ?offset= id string Event id. name string Name. start string Start, local time. end string End, local time. status string before, live, after or unknown. schedule array The lineup: { title, from, to, note, where, pointId, businessId, visit }. businessIds array The places taking part. tickets object|null The organiser's own ticket page: { label, url }. logo string|null The event's logo. visit string|null A link that opens the tour standing at this spot. Beside the records, the answer also carries: nextChangeInSecondsnumber|null Seconds until anything here changes. Ask again then. feedRev string The build of the public business feed these records came from. ### promos Promos and messages. Every promo and message that is switched on, with its schedule and the seconds until it starts or ends. Answers: a list. Front Desk: Location Based Services. Ask with: ?id= ?status= ?limit= ?offset= id string Id. type string offer or message. title string Title. body string Words. code string A code to show at the counter. businessId string|null The place it belongs to. where string Where, in words. point object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. lat number|null Latitude of its circle. lon number|null Longitude. radiusFt number|null How far out it reaches, in feet. image string|null Picture. cta object|null Its button: { label, url }. schedule object { dateStart, dateEnd, days, hourFrom, hourTo }. status string before, live or after, on the tour's own clock. window object|null The window it is in or the next one: { date, from, to }. startsInSeconds number|null Seconds until it starts. endsInSeconds number|null Seconds until it ends. visit string|null A link that opens the tour standing at this spot. updatedAt number|null When it last changed. Beside the records, the answer also carries: nextChangeInSecondsnumber|null Seconds until anything here changes. Ask again then. feedRev string The build of the public business feed these records came from. ### sponsors Sponsors. Who sponsors the tour: name, tier, logo, link and story. Answers: a list. Front Desk: Sponsors. Ask with: ?id= ?status= ?limit= ?offset= id string Id. name string Name. tier string Tier, in the manager's words. url string Their page. logo string|null Logo. photo string|null Picture. about string Their story. May hold simple formatting (HTML). aboutText string The same, as plain text. buttons array Up to two: { label, url }. onTour boolean Shown on the tour. onMap boolean Shown on the printed map. from string|null First day. to string|null Last day. status string before, live or after, on the tour's own clock. point object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. visit string|null A link that opens the tour standing at this spot. ### passports Passports. Stamp cards: the places, how many are needed, the prize and the dates. Answers: a list. Front Desk: Passports. Ask with: ?id= ?status= ?limit= ?offset= id string Id. name string Name. blurb string About it. need number Stamps needed. prize string The prize. where string Where to collect it. start string|null First day. end string|null Last day. status string before, live or after, on the tour's own clock. byWalking boolean A stamp is given for arriving. byCode boolean A stamp is given for scanning the code at the counter. sponsor object|null { name, url }. places array The places on the card: { pointId, name, businessId, lat, lon, visit }. visit string|null A link that opens the tour standing at this spot. ### polls Best of. Community votes: the question and the choices. Counts come from the voting address, when the manager shows them. Answers: a list. Front Desk: Best of. Ask with: ?id= ?status= ?limit= ?offset= id string Id. question string The question. blurb string A line under it. about string More about it. May hold simple formatting (HTML). category string When the choices are every place in one category. choices array { id, label, businessId }. from string|null First day. to string|null Last day. status string before, live or after, on the tour's own clock. results string When counts are shown: after (once it closes), always or never. sponsor object|null { name, url }. ### booking Book a visit. Which places take a visit request, and what each one asks for. Answers: a list. Front Desk: Book a visit. kind string place or storefront. businessId string|null The place. See places. storefrontId string|null The space. See storefronts. name string Name. send string The value to send as business in the booking form. asks object { date, time, party, message }: which boxes the form shows. note string A note from the place. ### lists Lists. Named sets of places with their own link: Open on Sunday, Good with kids. Answers: a list. Front Desk: Lists. Ask with: ?id= ?limit= ?offset= id string Id. name string Name. blurb string About it. category string When it draws from one category. places array { pointId, name, businessId, lat, lon, visit }. link string Opens the tour on this list. ### volunteer Volunteers. The shifts that are open, and how many hands are still needed. Answers: a list. Front Desk: Volunteers. id string Shift id. title string What it is. date string The day. from string Start time. to string End time. where string Where. note string About it. May hold simple formatting (HTML). need number How many are needed. 0 means as many as come. taken number How many said yes. left number|null How many are still needed. full boolean Nobody else is needed. questions array The shift's own questions: { id, q, type, req, choices }. Beside the records, the answer also carries: note string A line from the organiser. form object|null The organiser's own sign-up page, when they run one: { label, url }. ### applications Vendor applications. The vendor and artist forms that are open, and what each one asks. Answers: a list. Front Desk: Vendor applications. Ask with: ?id= ?status= id string Form id. kind string vendor or job. title string Title. blurb string The listing. May hold simple formatting (HTML). blurbText string The same, as plain text. button object|null The manager's own button: { label, url, mode }. mode is beside, takeover or only. fee string The fee, in the manager's words. Paid to them, never to StrollPoint. asks object { phone, what, size, web }: which built-in boxes the form shows. questions array The form's own questions: { id, q, type, req, choices }. from string|null First day. to string|null Last day. status string before, live or after, on the tour's own clock. onTour boolean Shown in the tour's own menu. page string The ready-made page for this form. ### jobs Job openings. The positions that are open. Answers: a list. Front Desk: Job openings. Ask with: ?id= ?status= id string Form id. kind string vendor or job. title string Title. blurb string The listing. May hold simple formatting (HTML). blurbText string The same, as plain text. button object|null The manager's own button: { label, url, mode }. mode is beside, takeover or only. fee string The fee, in the manager's words. Paid to them, never to StrollPoint. asks object { phone, what, size, web }: which built-in boxes the form shows. questions array The form's own questions: { id, q, type, req, choices }. from string|null First day. to string|null Last day. status string before, live or after, on the tour's own clock. onTour boolean Shown in the tour's own menu. page string The ready-made page for this form. ### frontscreen The front screen. The cards a visitor sees first, and the picture on each. Answers: one record. Front Desk: The front screen. opensOn string front when the tour opens on the front screen, photo when it opens on the first photo. cover string|null The cover picture. cards array { key, group, title, text, family, picture, wide, tourOnly }. family names where its records are on this API. ### features Tour features. How the tour behaves: where it starts, what it offers. Answers: one record. Front Desk: Tour features. welcome boolean The welcome walkthrough is on. startPoint object|null The point on the tour: { id, name, lat, lon }. null when it sits on no point. navigateFrom object|null Where Navigate starts from: a point. featuredTags array Up to six one-tap words at the top of the visitor menu. keepForTheDay boolean Visitors can save the tour to their phone. languages array The languages the tour speaks: { code, name, link }. stepFreeRoutes boolean Step free walking directions are offered. calendar object { on, takesEvents }: the public calendar, and whether anyone may send an event in. sponsorRotation object { how, seconds }: how sponsors take turns. ### website (preview: working, shape may still change) The tour's website. The website that is made from this tour: its header, its banner, its sections in order, and the sections the manager wrote. Drawn in the tour's own theme. Answers: one record. Front Desk: Website. on boolean false when the manager has switched the website off. address string The website, ready made. code string The two lines that put the same website on any page of another site. theme object { mode, main, accent, button, address }. mode is light, dark or auto. main is the manager's own colour for the bar across the top and the foot, accent is theirs for the small lines and the icons, button is theirs for the buttons; each is null for the theme's. address is the theme itself. place object { city, state, stateCode }: where the tour is, worked out from the tour. Each may be empty. header object { eyebrow, headline, lede, logo, buttons }. buttons: { label, to, url }, where to is tour, or the key of a section. banner object { from, picture, kind, center, overlay }. from is opening (the tour's opening view), own or none. kind is around (a picture of all the way around, twice as wide as tall, that repeats sideways) or flat. center { x, y } is the part of the picture to keep in view, as fractions across and down. overlay { color, opacity } is laid over the picture. tour object { frame, embed, poster }. frame is auto (the tour loads by itself, and it is how a website comes), press (a picture and a Start button; the tour loads when it is pressed) or off. sections array The sections of the page, in order: { key, kind, on, has, card, under, icon, eyebrow, title, text, came, changed, families, picture, steps, count }. kind is standard (a band of the page), feature (a card that opens its own section; the cards stand in the band whose key is more, under the word in `under`, which is the group the tour keeps that card in) or custom (one the manager wrote). has is false when the tour has nothing of that kind right now. eyebrow, title and text are what to show: the tour's own names unless the manager changed them. came is how they come, changed says whether the manager changed any. card names the front screen card a section is named after. The band how carries steps: three of { set, icon, art, title, text, came, changed }; set and icon name one of the tour's own icons, and art { set, name } one of the tour's own illustrations (theme, art). The band featured carries count: how many places the manager has featured today. Bands: how, walk, featured, places, more, about, sponsors, news. Features: basics, inside, event, offers, passport, bestof, lists, storefronts, applications, jobs, volunteer. pictureSizes array The only sizes a section's picture comes in: { ratio, width, height, name }. defaults object { header, overlay, banner }: the words, the overlay and the banner as they come, before the manager has changed any. header is { eyebrow, headline, lede, first, second }. banner is the tour's opening view: { picture, kind, center }, or null. ### links Links and sharing. The tour's own links, the code to put it on a page, and how to mark where visitors came from. Answers: one record. Front Desk: Links and QR, Share. tour string The whole tour. screen string The tour on a screen somebody else owns: a lobby, a visitor centre. place string The pattern for one spot. Replace {point} with a point id. event string The pattern for one event. Replace {event} with an event id. embed string The code that puts the tour on a page. calendarPage string|null The ready-made calendar page. calendarFile string|null The calendar, for a phone or desktop calendar. calendarEmbed string|null The code that puts the calendar on a page. applyPage string|null The ready-made applications page. volunteerPage string|null The ready-made volunteer page. source string How to mark a link so the tour's numbers show where visitors came from. blocks string The page where the paste-in blocks for this tour are picked and copied. blockScript string The script every paste-in block uses. website string The website made from this tour. theme string The tour's theme: its colours, type, containers and icons. ## Ask with ?id= One record by its id. Answers { item } or 404. ?q= Words to look for in the name. ?category= Only this category. ?area= Only this area (an id from areas). ?layer= Only this location (an id from layers). ?point= Only this point (an id from points). ?kind= Only this kind. ?status= before, live or after. ?limit= How many to send, 1 to 1000. ?offset= How many to skip. ## Pictures Every logo and picture in an answer is a full address. Use it as the src of an image. ## Forms a site can send Each one is the address the tour itself uses. Send JSON with content-type application/json. ### event: Send in an event Anyone proposes an event for the calendar. It waits for the manager's approval. POST https://strollpoint.com/api/events { op: submit, capture: the tour id, name: the event, start: YYYY-MM-DD or YYYY-MM-DDTHH:MM, end: the same form, where?: where, what?: about it, who: their name, email: their email, trap?: a hidden box; leave it empty } ### apply: Apply: vendor or job Send an application to one of the open forms. It waits for the manager's answer. POST https://strollpoint.com/api/apply { op: send, capture: the tour id, form: a form id from applications or jobs, who: their name, email: their email, phone?: phone, what?: what they bring, size?: the space they need, web?: their page, answers?: { questionId: answer } for the form's own questions, trap?: a hidden box; leave it empty } ### volunteer: Sign up for a shift Put a name down for a shift. They get an email with their own I am here link for the day. POST https://strollpoint.com/api/volunteer { op: signup, capture: the tour id, shift: a shift id from volunteer, name: their name, email: their email, phone?: phone, note?: a note, answers?: { questionId: answer } for the shift's own questions, trap?: a hidden box; leave it empty } ### booking: Ask for a visit Ask a place for a visit, or ask about an empty storefront. It is a request; the place answers it. POST https://strollpoint.com/api/booking { op: ask, capture: the tour id, business: the send value from booking, name: their name, email: their email, phone?: phone, date?: the day, time?: about what time, party?: how many, message?: anything they should know, consent?: true when they ticked the news box, trap?: a hidden box; leave it empty } ### vote: Vote One vote per phone per question. No name, no email. Ask for state first: it says whether this phone has voted, and carries the counts when the manager shows them. POST https://strollpoint.com/api/vote { op: state or vote, capture: the tour id, poll: a poll id from polls, choice?: a choice id, when voting, device: a random id the phone makes once and keeps } ### passport: Stamp and claim Read a phone's card, collect a stamp, claim the prize. A walking stamp is checked against where the place is. POST https://strollpoint.com/api/passport { op: state, stamp or claim, capture: the tour id, passport: a passport id from passports, device: a random id the phone makes once and keeps, place?: a pointId, when stamping, how?: gps or qr, when stamping, lat?: latitude, lon?: longitude, acc?: accuracy, sig?: the counter code's signature, email?: their email, when claiming, name?: their name, consent?: true when they ticked the news box, trap?: a hidden box; leave it empty } ### signup: Sign up for news A visitor asks to hear from the tour. The box must be ticked by them, the sentence they agreed to is kept, and the address counts only after they confirm by email. POST https://strollpoint.com/api/visitors { op: join, capture: the tour id, email: their email, name?: their name, source: where the box was, in a word, consent: the exact sentence they agreed to, trap: a hidden box; leave it empty } A name ending in ? is optional. The hidden box (trap) catches robots: put it in the form, hide it, send whatever it holds. The sign-up box also answers at POST https://strollpoint.com/api/v1/tour//send/signup, which a page on another website can read the answer of. Send { email, name?, source, consent, trap }. A visit request answers the same way at POST https://strollpoint.com/api/v1/tour//send/booking. Send { business, name, email, phone?, date?, time?, party?, message?, consent?, trap }, where business is the send value from the booking family. ## Paste-in blocks A part of a tour, drawn for you. Two lines in any web page, and it stays right by itself:
The blocks: site The whole website. Everything below in one piece, in the tour's own look: the header, the ways in, every section in order. tour The tour. Your tour's name, picture and a button that opens it. places Places. Every place, with its hours today, its links and a way into the tour. promos Offers. What is on offer now and what is coming up. events Events. What is on, the lineup with its times, and tickets. sponsors Sponsors. Your sponsors, with their logo, their story and their link. essentials Nearby essentials. Parking, restrooms, ATMs and the rest. storefronts Empty storefronts. Shops for rent or sale that somebody can walk through before they call. lists Lists. Your ready-made lists, like Open on Sunday. passports Passports. The stamp card: the places, the prize and the dates. polls Best of. The question, the choices and a way to vote on the tour. volunteer Lend a hand. The shifts that are open and how many people are still needed. applications Vendor applications. The forms that are open for vendors and artists. jobs Job openings. The positions that are open. signup Sign-up box. A box where people ask to get your news. They confirm by email before they count. What a block can be told: data-title Your own heading. Write none for no heading. data-show How many to show before the Show all button. It starts at 12. data-accent The colour of the main buttons, to match your website. For example #1e3a6b. data-theme light or dark. Left out, the block follows the page it sits on. data-category Places only: show one category, for example Restaurant. data-list Lists only: show one list, by its id. data-empty Write say and the block says so when there is nothing to show. Left out, it takes no room. For a website builder that takes an address and not code: https://strollpoint.com/block?tour=&show=places Pick and copy them for one tour at https://strollpoint.com/blocks?tour= ## The theme (GET https://strollpoint.com/api/v1/theme) The tour's own look: its colours, its type, its containers and every icon it wears. It is read from the tour itself when it is asked for. When the tour's look changes, this changes, and so does every website drawn from it. from string|null The build of the tour the theme was read from. source string tour when it was read from the tour's page just now. kept when that page could not be read and the copy kept beside the API answered. fonts object { display, text, mono, stylesheet }: the type families, and the stylesheet that loads them. mono is the one the tour sets its small labels in. colors object { light, dark }: every colour and measure the tour names, by the name the tour gives it (--fs-ink, --fs-paper, --fs-amber and so on). dark holds only what changes after dark. Put them on an element as CSS custom properties and everything drawn inside it, the artwork included, takes them. parts object The containers, by name: card, tile, row, medallion, pill, label, title, fact and the rest. Each is a short list of CSS properties and values, as the tour has them. pills object The tour's three voices for a button: jump (go and look), navigate (the way there), share. Each { background, color }. icons object { front, places, essentials, info, social, pills }. A set is { frame, items }; pills is a list of single icons. An item is { shapes, svg }: svg is the finished drawing, shapes is the same as a list of plain shapes for a page that builds its own. A social mark also carries its name and its own color, or blend, the colours it fades through. art object { front, card, places, redrawn }: the illustrations, the same way. front is the large artwork on the front screen's cards. card has a drawing for each card of the front screen and places one for each kind of place: look for the name of the thing first (venue, jobs), then for the icon the API gives it, then for other. redrawn is the build of the drawings. places object { rules, fallback, lines, essentials }. rules picks the icon for a kind of place: the first whose match, a regular expression, is found in the category in lower case. The API has already done this for you: places, categories and essentials carry icon. names object { groups, cards, essentials }: what the tour calls things, so a website calls them the same. cards is every card of the tour's front screen by its key: { group, icon, title, text }. essentials is the words over the basics and every kind: { key, name, group }. ## The website made from a tour Every published tour has a website, in the tour's own look, that keeps itself right: https://strollpoint.com/site/ The same website on any page of another site is the block named site. What it shows, and in what order, is the family named website. ## Not in v1 yet - directions: Walking directions. Steps, feet and minutes between any two places, step free or not. The tour works these out on the phone today. - search: Search across linked tours. One search across every linked shop, nearest by walking first. - numbers: The manager's numbers. Who applied, who signed up, the visit counts. These need a key, which v1 does not have yet. ## When something is wrong Every error answers { rev, error: { status, code, message } }. 404 not_found No published tour, or no record with that id. 404 unknown_family The address names a family v1 does not have. The answer lists the ones it does. 400 search_needed This inventory is search only: send q with two letters or more. 405 method_not_allowed Only GET and OPTIONS. 503 unavailable The tour could not be read just now. Ask again in a few seconds. ## Where this is found - https://strollpoint.com/llms.txt points here. - Every published tour's page names its own address on this API in its head, and answers with its own list when it is asked for text/markdown, text/plain or application/json. - The tour's own list carries handoff: the words a manager can paste to a web developer or an assistant. Answers are marked noindex. They are for building with, not for search results. ## The same, for tools JSON: https://strollpoint.com/api/v1 OpenAPI: https://strollpoint.com/api/v1/openapi