All endpoints must be accessed with the X-API-Key header:
- X-API-Key: <your-api-key>
Deploys a container
Request query parameters:
- *repoUrl: The repository URL (and optional branch followed after an '@')
- subdomain: Subdomain to be deployed to (if empty, will attempt to deploy to https://pinkcloud.studio)
- *mode: Mode to be deployed (either 'preview' or 'production')
Example:
curl --request POST \ --url "https://voyager-api.pinkcloud.studio/deployment?repoUrl=PinkCloudStudios/MyDeployment@MyBranch&subdomain=my-deployment&mode=preview" \ --header 'X-Api-Key: 123123123abcabcabc'
Response content type is application/json and is of format:
{ logs: { message: string, errors: array[string], }, id: string or null }
Example:
Status Code: 200 (OK) Response body: { "logs": { "message": "Success!", "errors": [], }, "id": "f7ea72e3-9c8e-40ef-8464-18b732667c38" }
Status code: 403 (Forbidden) Response body: { "logs": { "message": "Failed to create deployment", "errors": ["Deployment already exists"] }, "id": null }
Gets the logs from a container
Path Variables:
- *id: The deployment id
Example
curl --request GET \ --url "https://voyager-api.pinkcloud.studio/deployments/f7ea72e3-9c8e-40ef-8464-18b732667c38/logs" \ --header 'X-API-Key: 123123abcabc'
Response content type is of application/json and is of format:
{ logs: { message: string, errors: array[string], }, deployment_logs: array[string] or null }
Example:
Status Code: 200 (OK): Response body: { "logs": { "message": "Success!", "errors": [], }, "deployment_logs": ["Starting container..", "Done!"] }
Status Code: 404 (Not Found): Response body: { "logs": { "message": "Success!", "errors": [], }, "deployment_logs": null }
Stops and removes the deployment
Path Variables:
- *id: The deployment id
Example:
curl --request DELETE \ --url "https://voyager-api.pinkcloud.studio/deployments/f7ea72e3-9c8e-40ef-8464-18b732667c38" \ --header 'X-API-Key: 123123abcabc'
Response content type is of application/json and is of format:
{ logs: { message: string, errors: array[string], } }
Example:
Status Code: 200 (OK): Response body: { "logs": { "message": "Success!", "errors": [], } }
Status Code 500 (Internal Server Error): Response body: { "logs": { "message": "Failed to stop container", "errors": ["Could not stop docker container: "] }, }
Gets information about a deployment
Path Variables:
- *id: The deployment id
Example:
curl --request GET \ --url "https://voyager-api.pinkcloud.studio/deployments/f7ea72e3-9c8e-40ef-8464-18b732667c38" \ --header 'X-API-Key: 123123abcabc'
Response content type is of application/json and is of format:
{ logs: { message: string, errors: array[string], }, deployment: object { id: string, containerId: string, port: integer, dnsRecordId: string, mode: string, host: string, state: string, directory: string, repoUrl: string, branch: string, createdAt: integer, } or null }
Example:
Status Code: 200 (OK): Response body: { "logs": { "message": "Success!", "errors": [], }, "deployment": { "id": "f7ea72e3-9c8e-40ef-8464-18b732667c38", "containerId": "j4f1iojf1i2kj4e1lkj", "port": 34395, "dnsRecordId": "jf2398rilhjfsklfh254", "mode": "preview", "host": "test-preview.pinkcloud.studio", "state": "DEPLOYED", "directory": "test-preview-default", "repoUrl": "test", "branch": "main", "createdAt": 1706153432 } }
Status Code 404 (Not Found): Response body: { "logs": { "message": "Success!", "errors": [], }, "deployment": null }
Lists all deployments
Request query parameters:
- repoUrl: specify a repository url to search for (optional)
- branch: specify a branch to search for (optional)
Example:
curl --request GET \ --url "https://voyager-api.pinkcloud.studio/deployment?repoUrl=PinkCloudStudios/my-repo" \ --header 'X-API-Key: 123123abcabc'
Response content type is of application/json and is of format:
{ logs: { message: string, errors: array[string], }, deployments: array[ object { id: string, containerId: string, port: integer, dnsRecordId: string, mode: string, host: string, state: string, directory: string, repoUrl: string, branch: string, createdAt: integer, } ] }
Example:
Status Code: 200 (OK): Response body: { "logs": { "message": "Success!", "errors": [], }, "deployments": [ { "id": "f7ea72e3-9c8e-40ef-8464-18b732667c38", "containerId": "j4f1iojf1i2kj4e1lkj", "port": 34395, "dnsRecordId": "jf2398rilhjfsklfh254", "mode": "preview", "host": "test-preview.pinkcloud.studio", "state": "DEPLOYED", "directory": "test-preview-default", "repoUrl": "test", "branch": "main", "createdAt": 1706153432 }, { "id": "e1f67af8-5d5c-42c9-a144-4198c26197c8", "containerId": "d4gu23984guy123894gu", "port": 7418, "dnsRecordId": "dfhjffjm2u834", "mode": "production", "host": "test.pinkcloud.studio", "state": "DEPLOYED", "directory": "test-branch2", "repoUrl": "test", "branch": "branch2", "createdAt": 1706156534 } ] }
Status Code 500 (Internal Server Error): Response body: { "logs": { "message": "Failed to retrieve deployments", "errors": ["Bla bla bla"], }, "deployments": [] }