---
title: "Get Google Ads launch readiness"
method: GET
path: "/api/apps/{app_id}/google-ads/launch-readiness"
---

# Get Google Ads launch readiness

`GET /api/apps/{app_id}/google-ads/launch-readiness`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns what Base44 will do on launch, so you can check a launch will succeed before spending anything.

Read this first. It tells you the currency the account will be billed in, whether a card is on file, the business details that will go on the Google Ads account, and the landing page Google will be asked to crawl. Send `landing_page` back verbatim on [Launch campaign](/api-reference/launch-google-ads-campaign) rather than deriving the URL yourself: Base44 prefers a custom domain only once it actually routes, and a URL Google cannot fetch gets the campaign rejected after the account already exists.

Nothing is created or charged by this call.

`landing_page_ready` is best-effort. If Base44 cannot check the app's published address it comes back `false` with an empty `landing_page`, which is indistinguishable from an app that genuinely has no crawlable page.

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app to advertise.

## Response `200`

What a launch would do, and whether it can succeed.

- LaunchReadinessResponse — Everything that decides whether a launch will succeed. Omits `payment_method_last4` and `payment_method_brand`, which the response also carries. Card detail is not something this endpoint needs to publish to answer "can this launch"; `has_payment_method` is. Both fields keep being sent, so leaving them undocumented changes no API.
  - `has_payment_method` boolean, required — Whether the workspace has a card on file. Launching without one is rejected with a 402.
  - `stripe_unavailable` boolean, required — `true` when Base44 could not reach its payment provider, so `has_payment_method` is not trustworthy. Launching in this state is rejected rather than allowed through.
  - `currency_code` string, required — Currency the campaign will be billed in. On an account that already exists this is the currency it was created with and cannot change. Otherwise Base44 derives it from where the request comes from, not from how the workspace pays.
  - `account_exists` boolean, required — Whether the app already has a Google Ads account. When `false`, launching creates one, which cannot be undone.
  - `account_id` string, required — ID of that account, empty when there is none yet.
  - `landing_page_ready` boolean, required — Whether Base44 resolved a page Google can actually crawl. Launching without one gets the campaign rejected by Google after the account already exists.
  - `landing_page` string, required — The exact URL to send as the campaign's `landing_page`: a live custom domain if the app has one, otherwise its published address. Empty when neither resolves. Send this rather than building the URL yourself.
  - `business_info` LaunchBusinessInfo — The business details Base44 will put on the Google Ads account.
    - `name` string, required — Business name. Base44 falls back to the app's name when this is empty.
    - `category` string, required — Business category, empty when none is saved.
    - `description` string, required — What the business does, empty when none is saved.
    - `phone` string, required — Contact phone number, empty when none is saved.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, the app does not exist, or you used a workspace API key. A missing app and an app you cannot reach are deliberately the same answer.

## Changes

- **2026-08-30** `394136a6cdd4` — 1 info
  - removed the non-success response with the status `422`
- **2026-08-26** `f2727732ced1` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/google-ads/launch-readiness/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idealspot/base44-app-management-api/revisions/394136a6cdd4/schema)
