Change app slug

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

Changes the app's slug, which sets its <slug>.base44.app address.

Send null to reset the slug to the one Base44 generates from the app's name and ID. Sending the current slug, in any capitalization, changes nothing.

<Warning>The old address stops working as soon as the slug changes, and nothing redirects it to the new one. Change the slug before you share the app's URL or point ads at it.</Warning>

An app listed on Launchpad can't change its slug while a voting round is live, because the slug is also the listing's public URL.

Changing the slug is limited to 30 requests an hour per caller. Some workspaces have a different limit.

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

patch/api/apps/{app_id}/metadata/slug

Path parameters

app_idstring required

ID of the app.

ID of the app.

Request body

slugstring nullable required

New slug, 3 to 50 characters of letters, numbers, and hyphens that starts and ends with a letter or number. It has to be unused by any other app and not a reserved name, and it's lowercased before it's saved. Send null to reset it to the slug Base44 generates from the app's name and ID.

Example request

{
  "slug": "nordwind-furniture"
}

Response

The app, with its new slug.

idstring nullable

ID of the app.

namestring nullable

Display name of the app.

slugstring nullable

URL slug for the app, auto generated from the name and app ID or set to a custom value, or null if the app has no slug yet. The published URL is built from it.

user_descriptionstring nullable

Description of the app, or null if none was set. On a newly created app this holds the original prompt text.

created_bystring nullable

Email of the user who created the app.

created_datestring date-time nullable

Time the app was created, as a UTC timestamp in ISO 8601 format.

updated_datestring date-time nullable

Time the app document was last written, as a UTC timestamp in ISO 8601 format.

last_deployed_atstring date-time nullable

Time the app was last published, as a UTC timestamp in ISO 8601 format, or null if it has never been published.

screenshot_urlstring nullable

URL of a screenshot of the published app. Captured shortly after each publish, so it can briefly lag or be null right after publishing.

preview_screenshot_urlstring nullable

URL of a preview screenshot taken before publishing, distinct from screenshot_url, or null if none has been captured.

Example response

{
  "id": "6820f3a4e7b91d003c45a1f2",
  "name": "My CRM",
  "slug": "my-crm-3c45a1f2",
  "user_description": "A CRM to track leads and deals",
  "created_by": "developer@example.com",
  "created_date": "2026-08-01T09:15:00",
  "updated_date": "2026-08-02T14:30:00",
  "status": {
    "state": "ready",
    "details": "Publishing app",
    "request_id": "a1b2c3d4e5f67890abcdef12",
    "last_updated_date": "2026-08-02T14:30:00Z",
    "error_source": "build",
    "paywall_context": {
      "billing_organization_id": "67e0b12c4d8a3f005b21c9e4",
      "user_id": "6706af53b9c1e2004a37d85f",
      "evaluated_at": "2026-08-02T14:30:00Z"
    }
  },
  "last_deployed_at": "2026-08-02T14:30:00",
  "screenshot_url": "https://storage.base44.com/screenshots/6820f3a4e7b91d003c45a1f2.png",
  "preview_screenshot_url": "https://storage.base44.com/previews/6820f3a4e7b91d003c45a1f2.png"
}

Changes