This example response shows the API proxy's status on 2 pods. The deployment status is
deployed on both pods.
Your response might show the deployment status of you API proxy on fewer or more pods, depending on
your cluster's configuration.
If you get an empty response or an error, check that:
You used the correct base URL. Note that the hybrid base URL is not the same as the
Edge API's base URL. Use https://apigee.googleapis.com/v1.
You used the correct endpoint URL. Note that the revision is "1" and the endpoint is
/organizations/my_organization/environments/test/apis/myproxy/revisions/1/deployments. If you
specify a revision that doesn't exist, the request results in an empty response like the
following:
{ }
You have permissions to access the organization that you specify in the request.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eThis document explains how to check the deployment status of an API proxy using the Apigee APIs, requiring the use of a service account key and an access token.\u003c/p\u003e\n"],["\u003cp\u003eTo retrieve the deployment status, you need to execute commands to generate a token using the service account key, and then use \u003ccode\u003ecurl\u003c/code\u003e to make a GET request to the revisions API endpoint, including the base URL, endpoint URL, protocol, method, and headers.\u003c/p\u003e\n"],["\u003cp\u003eThe response from the revisions API will show the deployment status of the API proxy on each pod, indicating if it is deployed, and provide details such as the deployment start time and status code.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting steps are provided for common issues, including checking the base URL, endpoint URL, permissions, token expiration, and header formatting.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation is for an outdated version, 1.5, and it suggests upgrading to a newer one.\u003c/p\u003e\n"]]],[],null,["# Check your API proxy's deployment status using the API\n\n| You are currently viewing version 1.5 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nThis section describes how to check the deployment status of an API proxy using the [Apigee APIs](/apigee/docs/reference/apis/apigee/rest).\n\n1. Deploy a test API proxy as explained in [Create and deploy a new API proxy](/apigee/docs/hybrid/v1.5/test-new-proxy).\n2. Locate the JSON file with the Apigee Organization Admin service account key. This service account and key was created in [Enable synchronizer access](/apigee/docs/hybrid/v1.5/install-apply-hybrid#enable-synchronizer-access).\n3. Execute these two commands to get a token: \n\n export GOOGLE_APPLICATION_CREDENTIALS=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eorg\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003eadmin\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003eservice\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003eaccount\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003efile\u003c/span\u003e\u003c/var\u003e\n export TOKEN=$(gcloud auth application-default print-access-token)\n\n\n Where \u003cvar translate=\"no\"\u003eorg-admin-service-account-file\u003c/var\u003e is the path on your system to the service\n account key you downloaded with the **Apigee Organization Admin** role.\n4. Call the revisions API, with the following parts:\n - **Base URL:** `https://apigee.googleapis.com/v1`\n - **Endpoint URL:** `/organizations/my-organization/environments/test/apis/myproxy/revisions/1/deployments`\n - **Protocol:** `HTTPS`\n - **Method:** `GET`\n - **Headers:** `\"Authorization: Bearer $TOKEN\"`\n\n The following example calls the deployment revisions API with these settings using\n `curl`: \n\n ```\n curl \"https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/apis/myproxy/revisions/1/deployments\" \\\n -X GET -H \"Authorization: Bearer $TOKEN\"\n ```\n\n You should receive a response similar to the following: \n\n ```\n {\n \"deployments\": [\n {\n \"environment\": \"test\",\n \"apiProxy\": \"myproxy\",\n \"revision\": \"1\",\n \"deployStartTime\": \"1560782439002\",\n \"pods\": [\n {\n \"podName\": \"apigee-runtime-my-organization-test-blue-56b642fv429v\",\n \"appVersion\": \"self\",\n \"deploymentStatusTime\": \"1560787671389\",\n \"deploymentStatus\": \"deployed\",\n \"statusCode\": \"200\",\n \"statusCodeDetails\": \"Deployment Success\",\n \"deploymentTime\": \"1560782471370\",\n \"podStatus\": \"active\",\n \"podStatusTime\": \"1560787671389\"\n },\n {\n \"podName\": \"apigee-runtime-my-organization-test-blue-564422f7dmwj\",\n \"appVersion\": \"self\",\n \"deploymentStatusTime\": \"1560787670121\",\n \"deploymentStatus\": \"deployed\",\n \"statusCode\": \"200\",\n \"statusCodeDetails\": \"Deployment Success\",\n \"deploymentTime\": \"1560782485204\",\n \"podStatus\": \"active\",\n \"podStatusTime\": \"1560787670121\"\n }\n ],\n \"basePath\": \"/\"\n }\n ]\n }\n ```\n\n This example response shows the API proxy's status on 2 pods. The deployment status is\n `deployed` on both pods.\n\n *Your* response might show the deployment status of you API proxy on fewer or more pods, depending on\n your cluster's configuration.\n\n If you get an empty response or an error, check that:\n - You used the correct base URL. Note that the hybrid base URL is not the same as the Edge API's base URL. Use `https://apigee.googleapis.com/v1`.\n - You used the correct endpoint URL. Note that the revision is \"1\" and the endpoint is `/organizations/my_organization/environments/test/apis/myproxy/revisions/1/deployments`. If you specify a revision that doesn't exist, the request results in an empty response like the following: \n\n ```\n { }\n ```\n - You have permissions to access the organization that you specify in the request.\n - Your token has not expired. If it has, regenerate a new one as described in [Obtain an OAuth 2.0 access token](/apigee/docs/api-platform/get-started/api-get-started#oauth20).\n - You wrapped the `\"Authorization: Bearer $TOKEN\"` header in quotes."]]