### GET /v1/projects Source: https://dev.zuplo.com/openapi Lists the projects by account. ```markdown ### Parameters - **accountName** (string, query, optional): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. ### Responses #### 200 - The request has succeeded. **Zuplo.Projects.ProjectsList** - **data** (array (Zuplo.Projects.Project)) (required) Array items: - **name** (string) (required): The name of the project (example: "lime-fox") - **accountName** (string) (required): The name of the account this project belongs to (example: "lime-fox") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/projects?accountName=string" ``` ``` -------------------------------- ### GET /v1/environments/{environmentName} Source: https://dev.zuplo.com/openapi Gets the specified environment. ```markdown ### Parameters - **environmentName** (string, path, required): The name of the environment. ### Responses #### 200 - The request has succeeded. **Zuplo.Environments.Environment** - **name** (string) (required): The name of the environment. (example: "lime-fox-main-bbe7540") - **createdOn** (string) (required) (example: "2023-07-25T23:41:41.468Z") - **accountName** (string) (required) (example: "chocolate_great_buzzard") - **projectName** (string) (required) (example: "lime-fox") - **branchName** (string) (required) (example: "main") - **environmentType** (string (production|preview|development)) (required) (example: "production") ("production"|"preview"|"development") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/environments/{environmentName}" ``` ``` -------------------------------- ### GET /v1/deployments/{deploymentName} Source: https://dev.zuplo.com/openapi Gets the specified deployment. ```markdown ### Parameters - **deploymentName** (string, path, required): The name of the deployment. You can find this in the Zuplo Portal under Settings > Environments. ### Responses #### 200 - The request has succeeded. **Zuplo.Deployments.Deployment** - **name** (string) (required): The name of the deployment. You can find this in the Zuplo Portal under Settings > Environments. (example: "lime-fox-main-bbe7540") - **url** (string) (required) (example: "https://api.zuplo.com/deployments/lime-fox-main-bbe7540") - **label** (string) (required) (example: "main") - **urlParameter** (string) (required) (example: "main") - **createdOn** (string) (required) (example: "2023-07-25T23:41:41.468Z") - **updatedOn** (string) (required) (example: "2023-07-25T23:41:41.468Z") - **loggingId** (string) (required) (example: "chocolate_great_buzzard::lime-fox::main::main::bbe7540") - **accountName** (string) (required) (example: "chocolate_great_buzzard") - **projectName** (string) (required) (example: "lime-fox") - **state** (string) (required) (example: "STARTED") - **message** (string ()) (required) (example: "") ("") - **branchName** (string) (required) (example: "main") - **environmentType** (string) (required) (example: "PRODUCTION") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/deployments/{deploymentName}" ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/keys Source: https://dev.zuplo.com/openapi Lists all keys for this consumer. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **bucketName** (string, path, required): The name of the bucket. Zuplo automatically creates a bucket for your project. You can find it in youe Zuplo Portal under Settings > Project Information. - **consumerName** (string, path, required): The name of the consumer. - **limit** (integer, query, required): The maximum number of entries to return. If the value exceeds the maximum, then the maximum value will be used. Default: 1000 - **offset** (integer, query, required): The offset of the first item returned in the collection. Default: 0 - **key-format** (Zuplo.ApiKeys.KeyFormat, query, optional): The format of the key to return. `none`: Key is completely hidden. `visible`: Key is completely visible. `masked`: Part of key suffix is visible. ### Responses #### 200 - The request has succeeded. **Zuplo.ApiKeys.ApiKeys** - **data** (array (Zuplo.ApiKeys.ApiKey)) (required) Array items: - **createdOn** (string (date-time)) (required): When the item was created. (example: "2023-04-18T05:54:34.408Z") - **updatedOn** (string (date-time)) (required): When the item was last updated. (example: "2023-04-20T05:54:34.408Z") - **id** (string) (required) - **expiresOn** (string (date-time)): When the key expires. - **description** (string): The description of the api key. - **key** (string): The API key's value. You can use this parameter to override Zuplo's default key format, but this is not recommended as you will lose our [API Key Leak Detection](https://zuplo.com/docs/articles/api-key-leak-detection) - **limit** (integer) (example: 1000) - **offset** (integer) (example: 0) - **total** (integer) #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 429 - response - **type** (string) (required): A URI reference that identifies the problem. (example: "https://httpproblems.com/http-status/429") - **title** (string) (required): A short, human-readable summary of the problem. (example: "Too Many Requests") - **status** (number) (required): The HTTP status code. (example: 429) - **instance** (string) (example: "/foo/bar") #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/keys?limit=0&offset=0&key-format=value" ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/projects/{projectName}/deployment-status/{statusId} Source: https://dev.zuplo.com/openapi Gets the deployment status of your upload. Use the UUID of the uploaded sources as the `statusId`. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **projectName** (string, path, required): The name of the project. You can find this in your Zuplo Portal under Settings > Project Information. - **statusId** (string, path, required): The UUID of the uploaded sources. ### Responses #### 200 - The request has succeeded. **Zuplo.DeploymentStatus.DeploymentStatus** - **status** (string (SUCCESS|ERROR|IN_PROGRESS)) (required) (example: "SUCCESS") ("SUCCESS"|"ERROR"|"IN_PROGRESS") - **url** (string) (required) (example: "https://api.zuplo.com/v1/deployments/lime-fox-main-bbe7540") - **steps** (object) (required) - **buildResult** (object) (required) #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 404 - The server cannot find the requested resource. **Zuplo.HttpProblemDetails.NotFoundProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/projects/{projectName}/deployment-status/{statusId}" ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName} Source: https://dev.zuplo.com/openapi Gets a consumer given a bucket name and consumer name. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **bucketName** (string, path, required): The name of the bucket. Zuplo automatically creates a bucket for your project. You can find it in youe Zuplo Portal under Settings > Project Information. - **consumerName** (string, path, required): The name of the consumer. - **include-api-keys** (boolean, query, optional): Include the api key data in the response. - **key-format** (Zuplo.ApiKeys.KeyFormat, query, optional): The format of the key to return. `none`: Key is completely hidden. `visible`: Key is completely visible. `masked`: Part of key suffix is visible. - **include-managers** (boolean, query, optional): Include the manager's data in the response. - **include-manager-invites** (boolean, query, optional): Include the manager invites data in the response. - **tag** (string, query, optional): Query by tag. Example usage is `tag.account=foo`, where `account` is the name of the tag property and `foo` is the value. ### Responses #### 200 - The request has succeeded. **Zuplo.ApiKeys.Consumer** - **createdOn** (string (date-time)) (required): When the item was created. (example: "2023-04-18T05:54:34.408Z") - **updatedOn** (string (date-time)) (required): When the item was last updated. (example: "2023-04-20T05:54:34.408Z") - **id** (string) (required) - **name** (string) (required): A friendly name for the consumer. This name is used as the default user.sub property in the API Key Authentication policy. - **apiKeys** (array (Zuplo.ApiKeys.ApiKey)) Array items: - **createdOn** (string (date-time)) (required): When the item was created. (example: "2023-04-18T05:54:34.408Z") - **updatedOn** (string (date-time)) (required): When the item was last updated. (example: "2023-04-20T05:54:34.408Z") - **id** (string) (required) - **expiresOn** (string (date-time)): When the key expires. - **description** (string): The description of the api key. - **key** (string): The API key's value. You can use this parameter to override Zuplo's default key format, but this is not recommended as you will lose our [API Key Leak Detection](https://zuplo.com/docs/articles/api-key-leak-detection) - **description** (string): A description of the consumer. - **tags** (object): Key value pairs to associate with the consumer. - **metadata** (object): Generic metadata associated with the consumer. #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 404 - The server cannot find the requested resource. **Zuplo.HttpProblemDetails.NotFoundProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 429 - response - **type** (string) (required): A URI reference that identifies the problem. (example: "https://httpproblems.com/http-status/429") - **title** (string) (required): A short, human-readable summary of the problem. (example: "Too Many Requests") - **status** (number) (required): The HTTP status code. (example: 429) - **instance** (string) (example: "/foo/bar") #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}?include-api-keys=true&key-format=value&include-managers=true&include-manager-invites=true&tag=string" ``` ``` -------------------------------- ### GET /v1/environments Source: https://dev.zuplo.com/openapi Query the environments by project and account. Also returns managed dedicated environments the user owns. ```markdown ### Parameters - **accountName** (string, query, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **projectName** (string, query, required): The name of the project. You can find this in your Zuplo Portal under Settings > Project Information. ### Responses #### 200 - The request has succeeded. **Zuplo.Environments.EnvironmentsList** - **data** (array (Zuplo.Environments.Environment)) (required) Array items: - **name** (string) (required): The name of the environment. (example: "lime-fox-main-bbe7540") - **createdOn** (string) (required) (example: "2023-07-25T23:41:41.468Z") - **accountName** (string) (required) (example: "chocolate_great_buzzard") - **projectName** (string) (required) (example: "lime-fox") - **branchName** (string) (required) (example: "main") - **environmentType** (string (production|preview|development)) (required) (example: "production") ("production"|"preview"|"development") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/environments?accountName=string&projectName=string" ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/projects/{projectName}/deployments Source: https://dev.zuplo.com/openapi Lists the deployments for the specified account and project. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **projectName** (string, path, required): The name of the project. You can find this in your Zuplo Portal under Settings > Project Information. ### Responses #### 200 - The request has succeeded. **Zuplo.Deployments.DeploymentsList** - **data** (array (Zuplo.Deployments.Deployment)) (required) Array items: - **name** (string) (required): The name of the deployment. You can find this in the Zuplo Portal under Settings > Environments. (example: "lime-fox-main-bbe7540") - **url** (string) (required) (example: "https://api.zuplo.com/deployments/lime-fox-main-bbe7540") - **label** (string) (required) (example: "main") - **urlParameter** (string) (required) (example: "main") - **createdOn** (string) (required) (example: "2023-07-25T23:41:41.468Z") - **updatedOn** (string) (required) (example: "2023-07-25T23:41:41.468Z") - **loggingId** (string) (required) (example: "chocolate_great_buzzard::lime-fox::main::main::bbe7540") - **accountName** (string) (required) (example: "chocolate_great_buzzard") - **projectName** (string) (required) (example: "lime-fox") - **state** (string) (required) (example: "STARTED") - **message** (string ()) (required) (example: "") ("") - **branchName** (string) (required) (example: "main") - **environmentType** (string) (required) (example: "PRODUCTION") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/projects/{projectName}/deployments" ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/keys/{keyId} Source: https://dev.zuplo.com/openapi Retrieves an API key for this consumer. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **bucketName** (string, path, required): The name of the bucket. Zuplo automatically creates a bucket for your project. You can find it in youe Zuplo Portal under Settings > Project Information. - **consumerName** (string, path, required): The name of the consumer. - **keyId** (string, path, required): The key id. - **key-format** (Zuplo.ApiKeys.KeyFormat, query, optional): The format of the key to return. `none`: Key is completely hidden. `visible`: Key is completely visible. `masked`: Part of key suffix is visible. - **tag** (string, query, optional): Query by tag. Example usage is `tag.account=foo`, where `account` is the name of the tag property and `foo` is the value. ### Responses #### 200 - The request has succeeded. **Zuplo.ApiKeys.ApiKey** - **createdOn** (string (date-time)) (required): When the item was created. (example: "2023-04-18T05:54:34.408Z") - **updatedOn** (string (date-time)) (required): When the item was last updated. (example: "2023-04-20T05:54:34.408Z") - **id** (string) (required) - **expiresOn** (string (date-time)): When the key expires. - **description** (string): The description of the api key. - **key** (string): The API key's value. You can use this parameter to override Zuplo's default key format, but this is not recommended as you will lose our [API Key Leak Detection](https://zuplo.com/docs/articles/api-key-leak-detection) #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 404 - The server cannot find the requested resource. **Zuplo.HttpProblemDetails.NotFoundProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 429 - response - **type** (string) (required): A URI reference that identifies the problem. (example: "https://httpproblems.com/http-status/429") - **title** (string) (required): A short, human-readable summary of the problem. (example: "Too Many Requests") - **status** (number) (required): The HTTP status code. (example: 429) - **instance** (string) (example: "/foo/bar") #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/keys/{keyId}?key-format=value&tag=string" ``` ``` -------------------------------- ### GET /v1/deployments/{deploymentName}/build-logs/{buildId} Source: https://dev.zuplo.com/openapi Retrieves the build logs for a deployment build, grouped by stage (API and Dev Portal) and by build step. Optionally filterable by `stage` and `step`. ```markdown ### Parameters - **deploymentName** (string, path, required): The name of the deployment. You can find this in the Zuplo Portal under Settings > Environments. - **buildId** (string, path, required): The unique identifier of the build (UUID). - **stage** (Zuplo.BuildLogs.BuildLogStage, query, optional): Filter build logs to a specific stage. Required when `step` is set. - **step** (string, query, optional): Filter build logs to a specific build step within the stage. Requires `stage` to also be set. ### Responses #### 200 - The request has succeeded. **Zuplo.BuildLogs.BuildLogsResponse** - **data** (object) (required): Build logs grouped by stage (API vs Dev Portal) and then by build step. - **api** (object) (required): Build logs for a stage, grouped by build step. Keys are step names (e.g. "build"); values are ordered arrays of build-log rows. - **devPortal** (object) (required): Build logs for a stage, grouped by build step. Keys are step names (e.g. "build"); values are ordered arrays of build-log rows. #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 404 - The server cannot find the requested resource. **Zuplo.HttpProblemDetails.NotFoundProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/deployments/{deploymentName}/build-logs/{buildId}?stage=value&step=string" ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/managers Source: https://dev.zuplo.com/openapi Lists all managers belonging to a consumer. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **bucketName** (string, path, required): The name of the bucket. Zuplo automatically creates a bucket for your project. You can find it in youe Zuplo Portal under Settings > Project Information. - **consumerName** (string, path, required): The name of the consumer. - **limit** (integer, query, required): The maximum number of entries to return. If the value exceeds the maximum, then the maximum value will be used. Default: 1000 - **offset** (integer, query, required): The offset of the first item returned in the collection. Default: 0 ### Responses #### 200 - The request has succeeded. **Zuplo.ApiKeys.Managers** - **data** (array (Zuplo.ApiKeys.Manager)) (required) Array items: - **email** (string) (required): The email address of the manager - **sub** (string) (required): The sub of the manager in the identity provider - **limit** (integer) (example: 1000) - **offset** (integer) (example: 0) - **total** (integer) #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 429 - response - **type** (string) (required): A URI reference that identifies the problem. (example: "https://httpproblems.com/http-status/429") - **title** (string) (required): A short, human-readable summary of the problem. (example: "Too Many Requests") - **status** (number) (required): The HTTP status code. (example: 429) - **instance** (string) (example: "/foo/bar") #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/managers?limit=0&offset=0" ``` ``` -------------------------------- ### API Overview: The Zuplo Developer API, powered by Zuplo Source: https://dev.zuplo.com/openapi Welcome to ZAPI - the Zuplo API where you can manage API keys, tunnels and more. To get your API key for this service login to [portal.zuplo.com](https://portal.zuplo.com) and navigate to your project **Settings > Zuplo API Keys.** ![API Keys](https://cdn.zuplo.com/uploads/zuplo-api-keys.png) ```yaml # The Zuplo Developer API, powered by Zuplo # Version: 0.0.0 Welcome to ZAPI - the Zuplo API where you can manage API keys, tunnels and more. To get your API key for this service login to [portal.zuplo.com](https://portal.zuplo.com) and navigate to your project **Settings > Zuplo API Keys.** ![API Keys](https://cdn.zuplo.com/uploads/zuplo-api-keys.png) # Base URL: https://developer-api-main-8600723.self.zuplo.com ``` -------------------------------- ### POST /v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/keys/$bulk Source: https://dev.zuplo.com/openapi Creates multiple new API keys for this consumer. ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. - **bucketName** (string, path, required): The name of the bucket. Zuplo automatically creates a bucket for your project. You can find it in youe Zuplo Portal under Settings > Project Information. - **consumerName** (string, path, required): The name of the consumer. ### Request Body **Content-Type:** application/json - Array of Zuplo.ApiKeys.ApiKeyCreateOrUpdateBody ### Responses #### 200 - The request has succeeded. **Zuplo.ApiKeys.ApiKeys** - **data** (array (Zuplo.ApiKeys.ApiKey)) (required) Array items: - **createdOn** (string (date-time)) (required): When the item was created. (example: "2023-04-18T05:54:34.408Z") - **updatedOn** (string (date-time)) (required): When the item was last updated. (example: "2023-04-20T05:54:34.408Z") - **id** (string) (required) - **expiresOn** (string (date-time)): When the key expires. - **description** (string): The description of the api key. - **key** (string): The API key's value. You can use this parameter to override Zuplo's default key format, but this is not recommended as you will lose our [API Key Leak Detection](https://zuplo.com/docs/articles/api-key-leak-detection) - **limit** (integer) (example: 1000) - **offset** (integer) (example: 0) - **total** (integer) #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 429 - response - **type** (string) (required): A URI reference that identifies the problem. (example: "https://httpproblems.com/http-status/429") - **title** (string) (required): A short, human-readable summary of the problem. (example: "Too Many Requests") - **status** (number) (required): The HTTP status code. (example: 429) - **instance** (string) (example: "/foo/bar") #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X POST "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/key-buckets/{bucketName}/consumers/{consumerName}/keys/$bulk" \ -H "Content-Type: application/json" \ -d '[ { "description": "My secret api key", "expiresOn": "2023-04-20T05:54:34.408Z", "key": "zpka_66b21c8591354c0997db232cc2f79c9e_69253f24" }, { "description": "My secret api key2", "expiresOn": "2023-05-20T05:54:34.408Z", "key": "zpka_77b21c8591354c0997db232cc2f79c9e_69253f99" } ]' ``` ``` -------------------------------- ### POST /v1/deployments/sources Source: https://dev.zuplo.com/openapi Creates a URL for uploading sources. ```markdown ### Request Body **Content-Type:** application/json - **accountName** (string) (required): The name of the account (example: "my-account") - **projectName** (string) (required): The name of the project (example: "my-project") - **branchName** (string) (required): The name of the branch for deployment (example: "main") ### Responses #### 200 - The request has succeeded. **Zuplo.Sources.Source** - **uploadUrl** (string) (required) (example: "https://storage.googleapis.com/[..]1fac8da132b9") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X POST "https://developer-api-main-8600723.self.zuplo.com/v1/deployments/sources" \ -H "Content-Type: application/json" \ -d '{ "accountName": "my-account", "projectName": "my-project", "branchName": "main" }' ``` ``` -------------------------------- ### POST /v1/projects Source: https://dev.zuplo.com/openapi Creates a new project for the account. ```markdown ### Parameters - **accountName** (string, query, optional): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. ### Request Body **Content-Type:** application/json - **name** (string) (required): The name of the project (example: "lime-fox") ### Responses #### 200 - The request has succeeded. **Zuplo.Projects.Project** - **name** (string) (required): The name of the project (example: "lime-fox") - **accountName** (string) (required): The name of the account this project belongs to (example: "lime-fox") #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X POST "https://developer-api-main-8600723.self.zuplo.com/v1/projects?accountName=string" \ -H "Content-Type: application/json" \ -d '{ "name": "lime-fox" }' ``` ``` -------------------------------- ### GET /v1/accounts/{accountName}/custom-domains Source: https://dev.zuplo.com/openapi Gets the account custom domains ```markdown ### Parameters - **accountName** (string, path, required): The name of the account. You can find this in your Zuplo Portal under Settings > Project Information. ### Responses #### 200 - The request has succeeded. **Zuplo.CustomDomains.CustomDomainsList** - **data** (array (Zuplo.CustomDomains.CustomDomain)) (required): The custom domains returned for the account. Array items: - **id** (string) (required): The unique identifier for the custom domain. (example: "cdm_01HZX8D7A1M9S0K4Y2N6P3Q8R5") - **accountName** (string) (required): The account that owns the custom domain. (example: "chocolate_great_buzzard") - **projectName** (string) (required): The project associated with the custom domain. (example: "todo-list-api") - **deployments** (array (Zuplo.CustomDomains.CustomDomainDeployment)) (required): The deployments currently mapped to this hostname. Array items: - **deploymentName** (string) (required): The deployment name associated with the custom domain. (example: "todo-list-api-main-59eec11") - **branch** (string) (required): The branch associated with the deployment. (example: "main") - **environmentType** (string (PRODUCTION|PREVIEW|WORKING_COPY)) (required): The environment type targeted by a custom domain deployment. ("PRODUCTION"|"PREVIEW"|"WORKING_COPY") - **isDefault** (boolean) (required): Whether this deployment is the default for the hostname. (example: true) - **stage** (string (api|dev-portal)) (required): The stage exposed by a custom domain. ("api"|"dev-portal") - **cname** (string) (required): The CNAME target for this deployment. (example: "todo-list-api-main-59eec11.zuplo.app") - **hostname** (string) (required): The hostname assigned to the custom domain. (example: "api.example.com") - **provider** (string (cloudflare|amazon|custom|alias)) (required): The provider backing a custom domain. ("cloudflare"|"amazon"|"custom"|"alias") - **offset** (integer) (required): The number of records skipped. (example: 0) - **limit** (integer) (required): The maximum number of records returned. (example: 100) #### 400 - The server could not understand the request due to invalid syntax. **Zuplo.HttpProblemDetails.BadRequestProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 401 - Access is unauthorized. **Zuplo.HttpProblemDetails.UnauthorizedProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) #### 500 - Server error **Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse** - **type** (string) (required) - **title** (string) (required) - **detail** (string) - **instance** (string) ### Example Usage ```bash curl -X GET "https://developer-api-main-8600723.self.zuplo.com/v1/accounts/{accountName}/custom-domains" ``` ```