Official scripts
Explore our curated collection of scripts
Suggest Deutsche Bahn (bahn.de) stations and places
Look up stations, addresses and points of interest on Deutsche Bahn (bahn.de) by name, as its Start and Destination fields suggest them while you type, in bahn.de's own order (up to 10). Returns each place's id, name, type (station, address or point of interest), station number, coordinates and the kinds of transport that stop there. Pass a place's id to bahn.de/search_journeys as origin or destination. A city name in capitals, such as MUNICH (MÜNCHEN), stands for all the stations of that city. Names are in English where bahn.de has an English name, with the local name in brackets. bahn.de's matching is loose: a text it does not know still brings up places whose names start like it, so check the names before you search.
Search Deutsche Bahn (bahn.de) train journeys and prices
Search train journeys on Deutsche Bahn (bahn.de) between two places from bahn.de/suggest_locations, departing or arriving at a time on a date (or a number of days after today, for searches that run on a schedule), with the options bahn.de offers: class, travellers with their ages and discount cards (BahnCard and others), fastest connections, direct services only, transport modes, bicycle transport, seat booking only, Deutschland-Ticket. Returns the journeys bahn.de lists from that time (about 5 to 10), each with its planned and estimated times, duration, changes, the cheapest price bahn.de shows for the travellers asked (null when no ticket is on sale, and marked when the price covers only part of the journey), the expected occupancy per class, bahn.de's messages, and each leg (stations, platforms, train, operator, and, with includeStops, every stop). Pass laterCursor or earlierCursor back as cursor, with the same search, for the next or previous journeys. A route bahn.de has no connection on returns an empty list. bahn.de refuses searches for a few minutes after many in a short time: the run then fails and says so.
Search Trainline train journeys (+ all stops)
Search train journeys on Trainline between two stations or cities, given as Trainline codes from thetrainline.com/suggest_locations, on a date or a number of days after today (for searches that run on a schedule), from a time of day. Returns the journeys Trainline lists from about that time (about 10), across carriers such as SNCF and Deutsche Bahn: departure and arrival times, ISO duration, changes and legs (stations, train, train number, carrier), and the prices as Trainline sells them. A journey is sold as one ticket or as several, and each ticket lists its offers: price, currency, flexibility, seller, and each fare's name, exchange and refund conditions and class on each train. For later trains, search again from a later time. With includeStops=true, each leg also gets every calling point of its train with scheduled times, platform and live status; Trainline has these only for near-term trains, so a leg far ahead gets null. A route Trainline sells no tickets on returns an empty list.
Suggest Trainline stations and cities
Look up stations and cities on Trainline by name, as its From and To fields suggest them while you type, in Trainline's own order. Returns each place's name, type (station or city), country code and Trainline code, which thetrainline.com/search_journeys takes as origin and destination. Trainline's matching is loose: a name it does not know can still bring up an unrelated place, so check the names before you search. A text Trainline has no suggestion for returns an empty list.
Search La French Tech jobs
Search job listings on La French Tech's public careers board (la-french-tech.welcomekit.co, an embeddable careers widget aggregating openings across French Tech ecosystem startups) by free-text keyword and optional filters: department (site's own category, e.g. "Tech", "Sales", "Business" — French labels), city (e.g. "Paris", "Lyon"), and contractType (site's own French label, e.g. "CDI", "Stage", "Alternance", "CDD / Temporaire"). Filter values must match the site's own labels exactly — an unrecognized value throws rather than silently searching unfiltered. Pagination is 1-based via page; requesting a page beyond what's available throws rather than silently returning page 1. Returns total, page, totalPages, and jobs (id, reference, slug, title, url, company {name, slug, employees, logoUrl}, department, profession, contractType + contractTypeLabel, remote, salary, office, offices, publishedAt, promoted). A query/filter combination with no matches returns an empty jobs list, not an error.
Add Jewish Museum Berlin tickets to the basket
Put tickets for one date and one entry slot in the basket of the official Jewish Museum Berlin ticket shop, with a quantity per ticket type (adults, under age of 18). Take the slot and the ticket types from check_availability: a slot is its time (HH:MM) or its startsAt value, a ticket type is its id or a part of its title. Returns the basket lines (ticket, slot, quantity, unit price, line total) and the total in euros. The basket lives in this browser: tickets already in it stay, unless emptyBasketFirst is true. Nothing is booked until complete_booking places the order. A slot with too few places, an unknown slot or ticket type, or a quantity above the most one order can hold fails with an error that names the valid values.
Fill Jewish Museum Berlin booking details
Give the booker's details to the official Jewish Museum Berlin ticket shop as a guest, so the basket filled with add_to_cart can be ordered with complete_booking. The guest form asks for first name, last name, email, postcode, country and correspondence language, and the shop's terms and conditions must be accepted (acceptTerms). No password and no customer account are created; the tickets are sent to the email. Returns the fields the shop requires and whether each is filled. A browser already signed in, as a guest or with an account, returns already_identified and changes nothing. It stops before the order: run complete_booking next.
Search Cadremploi jobs
Search Cadremploi (French executive and manager job board) by keyword and optional French city, with an optional radius in km and paging (30 per page). A city Cadremploi does not recognize fails with an error; regions and departments are not supported. Results come in Cadremploi's groups: exact matches, matches around the city, a wider fallback and related offers; each job's matchType says which. total counts all of them. An unmatched keyword returns total 0 and an empty list, not an error.
Search France Travail jobs
Search France Travail (formerly Pôle Emploi) public job listings by keyword, optional free-text location (city or department) or location code, and page (20 offers/page). Returns jobs (jobId, title, company, location, description, contract, postedAgo, url) and, on page 1 only, the total match count. An ambiguous or unrecognized location is refused rather than silently searching nationwide.
Get a lawyer's details from the Barreau de Nantes
One lawyer's public detail sheet from the Barreau de Nantes directory, by slug (from list_lawyers or list_lawyers_by_cabinet): name, phone, email, photo, plus the page's own labelled fields (cabinet, address, languages, dominant activities, case palais, oath date, fax). Which labelled fields appear varies per lawyer. No login required. An unknown slug throws a clear not-found error rather than returning the directory's error page as a person.
Search Events (FR)
Search Ticketmaster France for events by keyword. Returns each event's starting price in EUR, venue, city, genre, and date.
Add Château de Versailles tickets to the cart
Put tickets for one date, one entry slot and one ticket type (Passport by default) in the cart of the official Château de Versailles ticket shop, with a quantity per rate (full, reduced, youth, child, free). Take the slot and the rates from check_availability: a slot is its slotId or its time (HH:MM), a rate is its priceId or its label. Returns the cart lines (date, slot time, entrance, ticket, rate, quantity, unit price, line total), the cart total in euros and how many seconds the site still holds the cart. The cart lives in this browser: tickets already in it stay there and are listed too. The site holds a cart for about 35 minutes. Nothing is paid or booked. A quantity above what the slot allows, an unknown slot or an unknown rate fails with an error that names the valid ones.
Add Musée d'Orsay timed-entry tickets to the basket
Put tickets for one date and one timed-entry slot in the basket of the official Musée d'Orsay ticket shop, with a quantity per rate. Take the slot and the rates from check_availability: a slot is its slotId or its time (HH:MM), a rate is its priceId or its label. Returns the basket lines (event, date and time, rate, quantity, unit price), the total in euros and how many seconds the shop still holds the basket (about 15 minutes). Tickets already in the basket stay. Nothing is paid or booked. A slot that is full, an unknown slot or rate, or a quantity above what the slot allows fails with an error that names the valid values.
