# Services from James Luu

> James Luu is a Tennis coach in Portland, Oregon.

Source: https://sites.coach/james-luu/services. Every page on this site has a Markdown version at its URL plus `/index.md`, or send `Accept: text/markdown`.

## Services

- [Tennis Lessons](https://sites.coach/james-luu/lessons)
- [Private Lessons](https://sites.coach/james-luu/private-lessons/index.md)

## Packages and prices

- **Lesson Package**: 4 prepaid 60-minute lessons for $160.00 ($40.00 per lesson). Sold as 1 to 20 lessons.

## Pages on this site

- [Home](https://sites.coach/james-luu/index.md)
- [All services](https://sites.coach/james-luu/services/index.md)
- [Tennis Lessons](https://sites.coach/james-luu/lessons)
- [Private Lessons](https://sites.coach/james-luu/private-lessons/index.md)
- [Lessons in Portland](https://sites.coach/james-luu/areas/portland)
- [Glenhaven Park - Portland, Portland](https://sites.coach/james-luu/locations/glenhaven-park-portland)
- [Grant Park Tennis Courts, Portland](https://sites.coach/james-luu/locations/grant-park-tennis-courts-portland)
- [Mt. Tabor Park OR, Portland](https://sites.coach/james-luu/locations/mt-tabor-park-or-portland)
- [Rose City Park, Portland](https://sites.coach/james-luu/locations/rose-city-park-portland)
- [Agent instructions](https://sites.coach/james-luu/llms.txt)

## Book through the API

James Luu sells Tennis lessons on this site. It is one coach on TeachMe.To, listing id `239edad0-de86-4962-bf29-7ee017bdf3cb`. An agent reads this coach, quotes what this site sells, and books it through the TeachMe.To agent API.

- [Agent instructions, generated from the live API](https://api.teachme.to/agent/v1/llms.txt): Read this before calling anything. Sessions need no registration.
- [This coach](https://api.teachme.to/agent/v1/coaches/239edad0-de86-4962-bf29-7ee017bdf3cb): The coach read. `site.packages` are the packages sold here, priced as this site prices them, and `site.cancellationPolicy` is this site's policy.
- [Open times](https://api.teachme.to/agent/v1/coaches/239edad0-de86-4962-bf29-7ee017bdf3cb/slots): Pass `sitePackageId` and `locationId` with `from` and `to`.
- Quotes and bookings: pass `sitePackageId` and `lessons` to `POST /quotes`, then `POST /bookings` with the quote. The booking returns `paymentUrl`; the student pays there, and the booking is readable while they do. Send `policyAccepted: true` after showing the student the policy when `site.cancellationPolicy.agreementRequired` is true.
- [OpenAPI 3.1](https://api.teachme.to/agent/v1/openapi.json): The machine contract.

The `sitePackageId` and `locationId` values for this site are in [llms.txt](https://sites.coach/james-luu/llms.txt).
