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

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

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

## Request

- Base URL: `https://appengine.googleapis.com`
- URL: `https://appengine.googleapis.com/v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates`
- 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/authorizedCertificates/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads the specified SSL certificate.

## Path parameters

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

## Request body

- AuthorizedCertificate: An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.
  - `certificateRawData` CertificateRawData: An SSL certificate obtained from a certificate authority.
    - `privateKey` string: Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly
    - `publicCertificate` string: PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
  - `displayName` string: The user-specified display name of the certificate. This is not guaranteed to be unique. Example: My Certificate.
  - `domainMappingsCount` integer: Aggregate count of the domain mappings with this certificate mapped. This count includes domain mappings on applications for which the user does not have VIEWER permissions.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly
  - `domainNames` string[]: Output only. Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
  - `expireTime` string, google-datetime: The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
  - `id` string: Output only. Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
  - `managedCertificate` ManagedCertificate: A certificate managed by App Engine.
    - `lastRenewalTime` string, google-datetime: Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus.@OutputOnly
    - `status` 'MANAGEMENT_STATUS_UNSPECIFIED' | 'OK' | 'PENDING' | 'FAILED_RETRYING_NOT_VISIBLE' | 'FAILED_PERMANENT' | 'FAILED_RETRYING_CAA_FORBIDDEN' | 'FAILED_RETRYING_CAA_CHECKING': Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly
  - `name` string: Output only. Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly
  - `visibleDomainMappings` string[]: Output only. The full paths to user visible Domain Mapping resources that have this certificate mapped. Example: apps/myapp/domainMappings/example.com.This may not represent the full list of mapped domain mappings if the user does not have VIEWER permissions on all of the applications that have this certificate mapped. See domain_mappings_count for a complete count.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly

## Response `200`

Successful response

- AuthorizedCertificate: An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.
  - `certificateRawData` CertificateRawData: An SSL certificate obtained from a certificate authority.
    - `privateKey` string: Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly
    - `publicCertificate` string: PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
  - `displayName` string: The user-specified display name of the certificate. This is not guaranteed to be unique. Example: My Certificate.
  - `domainMappingsCount` integer: Aggregate count of the domain mappings with this certificate mapped. This count includes domain mappings on applications for which the user does not have VIEWER permissions.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly
  - `domainNames` string[]: Output only. Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
  - `expireTime` string, google-datetime: The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
  - `id` string: Output only. Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
  - `managedCertificate` ManagedCertificate: A certificate managed by App Engine.
    - `lastRenewalTime` string, google-datetime: Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus.@OutputOnly
    - `status` 'MANAGEMENT_STATUS_UNSPECIFIED' | 'OK' | 'PENDING' | 'FAILED_RETRYING_NOT_VISIBLE' | 'FAILED_PERMANENT' | 'FAILED_RETRYING_CAA_FORBIDDEN' | 'FAILED_RETRYING_CAA_CHECKING': Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly
  - `name` string: Output only. Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly
  - `visibleDomainMappings` string[]: Output only. The full paths to user visible Domain Mapping resources that have this certificate mapped. Example: apps/myapp/domainMappings/example.com.This may not represent the full list of mapped domain mappings if the user does not have VIEWER permissions on all of the applications that have this certificate mapped. See domain_mappings_count for a complete count.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly

## 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/authorizedCertificates/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)
