---
title: "Get the blueprint for a kind of application"
method: GET
path: "/advice"
tags: ["Project"]
---

# Get the blueprint for a kind of application

`GET /advice`

## Request

- Base URL: `https://api.hypamoon.com/api/v1`
- URL: `https://api.hypamoon.com/api/v1/advice`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.hypamoon.com/oauth/authorize`, token URL `https://api.hypamoon.com/oauth/token`, scopes: `project:read`)

Advice for building a webshop, appointments and bookings, a restaurant site, or a course or membership: the questions that matter (each with why and a default when the user does not know; only the ones marked blocking stop a working result), the build plan with the Hypamoon tools in order, the go-live checklist for the country (EU in detail, UK and US basics, a general fallback), the common mistakes, and a structured-data (JSON-LD) snippet for search engines. Advice only: nothing here is required of the user. The checklist is guidance, not legal or tax advice.

## Query parameters

- `type` 'webshop' | 'bookings' | 'restaurant' | 'course_membership' | 'wordpress_portal' | 'app'
- `description` string
- `topic` 'sandbox_blocks_upload' | 'image_too_large' | 'version_conflict' | 'phone_verification_required' | 'site_not_visible' | 'is_hypamoon_down'
- `country` string
- `audience` 'consumers' | 'businesses' | 'both'

## Response `200`

The blueprint, with a short markdown summary. With topic: that one known problem (id, symptom, what_to_do, tell_user, other_topics).

- Advice
  - `type` 'webshop' | 'bookings' | 'restaurant' | 'course_membership' | 'wordpress_portal', required
  - `title` string, required
  - `summary` string, required
  - `country` string, nullable, required
  - `region` 'eu' | 'uk' | 'us' | 'other', required: eu (detailed), uk and us (basics), other (a general fallback).
  - `audience` 'consumers' | 'businesses' | 'both', required
  - `how_to_use` string, required: For the agent: inform yourself, ask only the blocking questions, use the defaults for the rest, and offer the checklist; never a questionnaire or a gate.
  - `ask_first` object[], required
    - `id` string, required
    - `question` string, required
    - `why` string, required
    - `default` string, required: What to use when the user does not know or skips the question.
    - `blocking` boolean, required: Only these block a working result; at most two or three per type.
  - `build_plan` object[], required
    - `id` string, required
    - `title` string, required
    - `how` string, required
    - `tools` string[], required
    - `optional` boolean
  - `go_live_checklist` object[], required
    - `id` string, required
    - `level` 'usually_required' | 'recommended', required
    - `description` string, required
    - `why` string, required
    - `how_on_hypamoon` string, required
    - `checked_by_check_readiness` boolean, required
  - `pitfalls` object[], required
    - `id` string, required
    - `pitfall` string, required
    - `instead` string, required
  - `structured_data` object, required: Structured data for search engines, ready to fill in and add with deploy_site.
    - `schema_type` string, required: The schema.org type, like LocalBusiness, Restaurant, Product or Course.
    - `why` string, required
    - `snippet` string, required: A <script type="application/ld+json"> block with YOUR ... placeholders; fill them with the user's real details only, never invented ones.
    - `required` string[], required: The fields check_readiness expects in the block.
  - `note` string, required: Guidance, not legal or tax advice.
  - `other_types` object, required
    - `available` string[], required
    - `planned` string[], required
  - `known_problems` object[], required: Known problems (an upload blocked by a sandbox, an image too large, version_conflict, phone verification, a site nobody else can see, is Hypamoon down), each with what to do and what to tell the user. GET /advice?topic=<id> returns one.
    - `id` 'sandbox_blocks_upload' | 'image_too_large' | 'version_conflict' | 'phone_verification_required' | 'site_not_visible' | 'is_hypamoon_down', required
    - `symptom` string, required: How you recognise it.
    - `what_to_do` string, required: What you, the agent, do.
    - `tell_user` string, required: What you can say to the user, in plain words.
  - `recipes` object[], required: Recipes to build with existing tools and adjust to the user's words, like dunning for course_membership: reminder emails on subscription.payment_failed on day 1, 4 and 10 with the buyer's signed pay_url. Empty when there are none.
    - `id` string, required
    - `title` string, required
    - `when` string, required
    - `event` string, required
    - `stop_on` string[], required
    - `variables` string[], required
    - `steps` object[], required
      - `day` integer, required
      - `wait_minutes` integer, required
      - `template` object, required
        - `name` string, required
        - `subject` string, required
        - `text` string, required
    - `calls` string[], required
    - `adjust` string, required
    - `tools` string[], required
  - `summary_markdown` string, required

## Other responses

- `401`: Unauthorized: unauthorized, missing_api_key, invalid_api_key, api_key_revoked, project_deleted.
- `403`: Forbidden: project_not_enabled, key_mode_mismatch, missing_scope, verification_required.
- `422`: Unprocessable Content: validation_failed.
- `429`: Too Many Requests: rate_limited.
- `500`: Internal Server Error: internal_error.
- `503`: Service Unavailable: service_unavailable.

---

[API](https://skmtc.dev/hypamoon/apis/hypamoon-api.md) · [All operations](https://skmtc.dev/hypamoon/apis/hypamoon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hypamoon/apis/hypamoon-api/revisions/9f0b90004c06?raw)
