{
  "name": "Legwork",
  "what": "Street marketing for iPhone apps in London, paid per download. Startups book; marketers go out, talk to people and show a QR code; the App Store counts first-time downloads through each marketer's own link.",
  "price_per_download_gbp": {
    "min": 3.5,
    "max": 50,
    "note": "Set by the startup. Marketers see open bookings highest price first."
  },
  "budget_gbp": {
    "min": 50,
    "max": 10000
  },
  "areas": [
    "Anywhere in London",
    "Shoreditch",
    "Soho",
    "Camden",
    "King's Cross",
    "Canary Wharf",
    "Brixton",
    "Stratford"
  ],
  "when": [
    "any time",
    "weekday lunchtimes",
    "evenings",
    "weekends"
  ],
  "money": "At booking the whole budget is held on the startup's card; nothing is taken. After the session the startup reports the App Store's counts, and only downloads x price is taken (never more than the budget); the rest of the hold is let go. A hold lasts about a week; if no counts are in the day before it runs out and marketers have gone out, it is taken in full and the difference refunded once counts arrive.",
  "fees": "No booking fee. The card and payout costs come out of the marketers' share; nothing else is kept.",
  "counting": "Each marketer gets their own App Store campaign link. The App Store counts first-time downloads within 24 hours of a scan, and lists a campaign once it has 5.",
  "payments": "off",
  "steps_for_a_startup": [
    "find_app",
    "create_booking",
    "the person opens pay_url and holds the budget on a card",
    "add_campaign_link",
    "marketers take spots and go out",
    "report_counts",
    "rate_marketer"
  ],
  "steps_for_a_marketer": [
    "join_as_marketer",
    "list_open_bookings",
    "take_spot",
    "show the link as a QR code on the street",
    "my_spots"
  ],
  "site": "https://legwork.spacedrecall.app",
  "mcp": "https://legwork.spacedrecall.app/api/mcp",
  "openapi": "https://legwork.spacedrecall.app/openapi.json",
  "llms": "https://legwork.spacedrecall.app/llms.txt",
  "endpoints": {
    "GET /api/pricing": "the rules",
    "GET /api/apps?q=": "find an iPhone app by name or App Store link",
    "POST /api/bookings": "book: {app, budget_gbp, price_per_download_gbp, area, when, brief, contact_name, contact_email, campaign_link?}",
    "GET /api/bookings/{booking_token}": "a booking as it stands",
    "GET /api/bookings/{booking_token}/pay": "opens Stripe to hold the budget on a card (for a person)",
    "POST /api/bookings/{booking_token}/campaign-link": "{link}",
    "POST /api/bookings/{booking_token}/counts": "{counts: {campaign: downloads}}",
    "POST /api/bookings/{booking_token}/rate": "{campaign, stars}",
    "POST /api/bookings/{booking_token}/cancel": "before any spot is taken",
    "POST /api/bookings/resend": "{email}: fresh links by email",
    "GET /api/board": "open bookings, highest price first",
    "POST /api/marketers": "join: {name, email, area?}",
    "POST /api/marketers/link": "{email}: a fresh marketer link by email",
    "GET /api/me": "Authorization: Bearer <marketer_token>",
    "POST /api/spots": "Authorization: Bearer <marketer_token>, {ref}",
    "DELETE /api/spots/{ref}": "Authorization: Bearer <marketer_token>"
  }
}