Start the upload of a package version
const url = 'https://api.gampeon.com/v1/projects/example/packages';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"manifest":{"name":"example","version":"example","engine":"example","files":[{"path":"example","size":1,"sha256":"example"}]},"licenseConfirmed":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.gampeon.com/v1/projects/example/packages \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "manifest": { "name": "example", "version": "example", "engine": "example", "files": [ { "path": "example", "size": 1, "sha256": "example" } ] }, "licenseConfirmed": true }'Send the manifest from gampeon-package.json, which the GAMPEON cook command writes, and confirm your license (licenseConfirmed: true, text in GET …/packages). Only content: the .uplugin must not have code modules, and only cooked paks (Content/Paks/<platform>/*.pak|utoc|ucas|sig) and files for web interfaces (Nui/…) are allowed. Sending the same manifest again continues an unfinished upload.
Not available with access tokens.
Rate limit: 30 per hour per account.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Project slug
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Package name, the name of the content plugin
Version, such as 1.0.0. Each upload needs a new version.
The GAMPEON version the package was cooked for
All files of the package, 1 to 256
object
Path inside the package, such as GamCity.uplugin, Content/Paks/WindowsClient/GamCity….pak or Nui/icons/cash.png
Bytes
SHA-256, 64 hex characters
You confirm the license statement
Responses
Section titled “Responses”Version created (200: unfinished upload continued)
object
ready once every file is uploaded and finish was called. Only ready versions reach players.
Bytes of all files
Bytes uploaded so far
object
Bytes of this file uploaded so far
Unix time in milliseconds
Example
{ "status": "uploading"}Error codes: invalid_field, invalid_package, invalid_package_file, license_not_confirmed
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: unauthorized
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: token_not_allowed, project_hidden
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: not_found
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: version_exists
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: package_too_large, quota_exceeded
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Limit: 30 per hour per account. Error codes: rate_limited
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}Error codes: packages_unavailable
object
Machine-readable error code, for example not_found or rate_limited.
Human-readable detail. Only present for some errors.
Example generated
{ "error": "example", "message": "example"}