Skip to main content
curl -X POST https://api.usenaive.ai/v1/apps/ca7a1b8c-a4d4-4824-b92d-89d5b297eb62/publish \
  -H "Authorization: Bearer nv_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"deploymentId": "deployment-uuid"}'
{
  "url": "https://naive-my-landing-page-ca7a1b.vercel.app",
  "deploymentId": "deployment-uuid"
}

Request Body

FieldTypeRequiredDescription
deploymentIdstringYesNaive deployment record UUID (from deploy or deployments)

Behavior

Waits for the deployment to reach READY on Vercel (polls up to 60s), then aliases it to the app’s production domain — the primary custom domain if one is set, otherwise the default {projectName}.vercel.app. Traffic switches immediately with zero downtime. The previous production deployment is demoted and the app’s latestDeploymentStatus is updated.

Errors

400
{
  "error": {
    "code": "invalid_input",
    "message": "deploymentId is required"
  }
}
404
{
  "error": {
    "code": "resource_not_found",
    "message": "Deployment not found"
  }
}