---
title: "POST /v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings"
method: POST
path: "/v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings"
tags: ["projects"]
---

# POST /v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings

`POST /v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings`

## Request

- Base URL: `https://appengine.googleapis.com`
- URL: `https://appengine.googleapis.com/v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/cloud-platform`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-platform`
- TypeScript: <https://skmtc.dev/google/apis/appengine/docs/v1/projects/:projectsId/locations/:locationsId/applications/:applicationsId/domainMappings/post.ts> (a function with typed inputs; its response is checked against the schema)

Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.

## Path parameters

- `projectsId` string, required
- `locationsId` string, required
- `applicationsId` string, required

## Query parameters

- `overrideStrategy` 'UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY' | 'STRICT' | 'OVERRIDE'

## Request body

- DomainMapping: A domain serving an App Engine application.
  - `id` string: Relative name of the domain serving the application. Example: example.com.
  - `name` string: Output only. Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly
  - `resourceRecords` ResourceRecord[]: Output only. The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly
    - `name` string: Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.
    - `rrdata` string: Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).
    - `type` 'RECORD_TYPE_UNSPECIFIED' | 'A' | 'AAAA' | 'CNAME': Resource record type. Example: AAAA.
  - `sslSettings` SslSettings: SSL configuration for a DomainMapping resource.
    - `certificateId` string: ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify SslManagementType.MANUAL on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345.
    - `pendingManagedCertificateId` string: Output only. ID of the managed AuthorizedCertificate resource currently being provisioned, if applicable. Until the new managed certificate has been successfully provisioned, the previous SSL state will be preserved. Once the provisioning process completes, the certificate_id field will reflect the new managed certificate and this field will be left empty. To remove SSL support while there is still a pending managed certificate, clear the certificate_id field with an UpdateDomainMappingRequest.@OutputOnly
    - `sslManagementType` 'SSL_MANAGEMENT_TYPE_UNSPECIFIED' | 'AUTOMATIC' | 'MANUAL': SSL management type for this domain. If AUTOMATIC, a managed certificate is automatically provisioned. If MANUAL, certificate_id must be manually specified in order to configure SSL for this domain.

## Response `200`

Successful response

- Operation: This resource represents a long-running operation that is the result of a network API call.
  - `done` boolean: If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
  - `error` Status: The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `metadata` object: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
  - `name` string: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.
  - `response` object: The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.

## Changes

- **2026-10-10** `6e6d92024789`: 2 breaking
  - removed the request body
  - removed the media type `*/*` for the response with the status `200`

[Operation history](https://skmtc.dev/google/apis/appengine/changes/v1/projects/:projectsId/locations/:locationsId/applications/:applicationsId/domainMappings/post.md)

---

[API](https://skmtc.dev/google/apis/appengine.md) - [All operations](https://skmtc.dev/google/apis/appengine/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/appengine/revisions/a4132641c665?raw)
