Build a failed deployment's commit again, as a new attempt of the same deployment. The build runs as the member who connected the repository. Refused with 409 unless the deployment failed and its repository is still connected. Workspace API keys return 403; use a personal API key or scoped OAuth token.
OAuth scope: api:write.
/api/v2/apps/{appId}/deployments/{deploymentId}/rebuildYour Agent Serve API key, personal or workspace-scoped. Generate one under Settings, then API Keys. Operations that reject workspace keys say so in their own description.
In: header
Path Parameters
App identifier.
1 <= length <= 64Deployment identifier.
1 <= length <= 64Request Body
application/json
Workspace scope.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://agentserve.valnoraelric.com/api/v2/apps/string/deployments/string/rebuild" \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "workspaceId": "string" }'{
"data": {
"deployment": {
"id": "string",
"appId": "string",
"provider": "github",
"repository": "string",
"commitSha": "string",
"branch": "string",
"authorName": "string",
"commitMessage": "string",
"status": "queued",
"error": "string",
"attempt": -9007199254740991,
"versionId": "string",
"version": "string",
"liveWorkspaceIds": [
"string"
],
"dependencyAudit": {
"tool": "string",
"high": -9007199254740991,
"critical": -9007199254740991,
"unknownRegistries": [
"string"
],
"error": "string",
"allowed": true
},
"publishRequestedByUserId": "string",
"publishedAt": "2019-08-24T14:15:22Z",
"startedAt": "2019-08-24T14:15:22Z",
"finishedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z"
}
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient workspace permissions",
"details": {
"code": "INSUFFICIENT_WORKSPACE_ROLE"
}
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Not found"
}
}{
"error": {
"code": "CONFLICT",
"message": "The request conflicts with the current state of the resource"
}
}{
"error": {
"code": "PAYLOAD_TOO_LARGE",
"message": "Request body is too large"
}
}{
"error": {
"code": "UNSUPPORTED_MEDIA_TYPE",
"message": "Request body must be sent as application/json"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "API rate limit exceeded",
"details": {
"retryAfter": "2026-01-01T00:00:30.000Z"
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable"
}
}