Creates an API proxy. The API proxy created will not be accessible at runtime until it is deployed to an environment.
Create a new API proxy by setting thenamequery parameter to the name of the API proxy.
Import an API proxy configuration bundle stored in zip format on your local machine to your organization by doing the following:
Set thenamequery parameter to the name of the API proxy.
Set theactionquery parameter toimport.
Set theContent-Typeheader tomultipart/form-data.
Pass as a file the name of API proxy configuration bundle stored in zip format on your local machine using thefileform field.
Note: To validate the API proxy configuration bundle only without importing it, set theactionquery parameter tovalidate.
When importing an API proxy configuration bundle, if the API proxy does not exist, it will be created. If the API proxy exists, then a new revision is created. Invalid API proxy configurations are rejected, and a list of validation errors is returned to the client.
HTTP request
POST https://apigee.googleapis.com/v1/{parent=organizations/*}/apis
Required. Name of the organization in the following format:organizations/{org}
If the API Proxy resource has thespaceattribute set, IAM permissions are checked against the Space resource path. To learn more, read theApigee Spaces Overview.
Authorization requires the followingIAMpermission on the specified resourceparent:
apigee.proxies.create
Query parameters
Parameters
name
string
Name of the API proxy. Restrict the characters used to: A-Za-z0-9._-
action
string
Action to perform when importing an API proxy configuration bundle. Set this parameter to one of the following values:
importto import the API proxy configuration bundle.
validateto validate the API proxy configuration bundle without importing it.
validate
boolean
Ignored. All uploads are validated regardless of the value of this field. Maintained for compatibility with Apigee Edge API.
space
string
Optional. The ID of the space associated with this proxy. Any IAM policies applied to the space will affect access to this proxy. Note that this field is only respected when creating a new proxy. It has no effect when creating a new revision for an existing proxy.
[[["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-09-04 UTC."],[[["\u003cp\u003eThis API call creates a new API proxy, which must be deployed to an environment before it can be accessed.\u003c/p\u003e\n"],["\u003cp\u003eYou can create a new API proxy by specifying its name using the \u003ccode\u003ename\u003c/code\u003e query parameter in the HTTP request.\u003c/p\u003e\n"],["\u003cp\u003eTo import an API proxy configuration bundle, you must set the \u003ccode\u003eaction\u003c/code\u003e query parameter to \u003ccode\u003eimport\u003c/code\u003e and provide the bundle file.\u003c/p\u003e\n"],["\u003cp\u003eYou can validate an API proxy configuration bundle without importing it by setting the \u003ccode\u003eaction\u003c/code\u003e query parameter to \u003ccode\u003evalidate\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe API proxy configuration can be done using different types of parameters such as path parameters, query parameters and request body.\u003c/p\u003e\n"]]],[],null,["# Method: organizations.apis.create\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Query parameters](#body.QUERY_PARAMETERS)\n- [Request body](#body.request_body)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nCreates an API proxy. The API proxy created will not be accessible at runtime until it is deployed to an environment.\n\nCreate a new API proxy by setting the `name` query parameter to the name of the API proxy.\n\nImport an API proxy configuration bundle stored in zip format on your local machine to your organization by doing the following:\n\n- Set the `name` query parameter to the name of the API proxy.\n- Set the `action` query parameter to `import`.\n- Set the `Content-Type` header to `multipart/form-data`.\n- Pass as a file the name of API proxy configuration bundle stored in zip format on your local machine using the `file` form field.\n\n**Note** : To validate the API proxy configuration bundle only without importing it, set the `action` query parameter to `validate`.\n\nWhen importing an API proxy configuration bundle, if the API proxy does not exist, it will be created. If the API proxy exists, then a new revision is created. Invalid API proxy configurations are rejected, and a list of validation errors is returned to the client.\n\n### HTTP request\n\n`POST https://apigee.googleapis.com/v1/{parent=organizations/*}/apis`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Query parameters\n\n### Request body\n\nThe request body contains an instance of [HttpBody](/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keystores.aliases#HttpBody).\n\n### Response body\n\nIf successful, the response body contains a newly created instance of [ApiProxyRevision](/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis.revisions#ApiProxyRevision).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/cloud-platform`"]]