oCoreoCore Docs
API Reference

Instances

List instances

Returns all instances for the organization. Optionally filter by server_id query parameter.

GET
/instances

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Query Parameters

server_idstring

Filter by server UUID

curl -X GET "//api.ocore.dev/api/instances?server_id=%3Cstring%3E" \
  -H "Authorization: <token>"

OK

{
  "instances": [
    {
      "activeColor": "string",
      "addonsPath": "string",
      "autoSubdomain": "string",
      "createdAt": "string",
      "domains": [
        {
          "createdAt": "string",
          "dnsProvider": "string",
          "dnsRecordId": "string",
          "dnsStatus": "string",
          "domain": "string",
          "id": "string",
          "isAutoGenerated": true,
          "isPrimary": true,
          "sslExpiresAt": "string",
          "sslStatus": "string"
        }
      ],
      "enterpriseBuildId": "string",
      "enterpriseDeployedAt": "string",
      "enterpriseUpdateAvailable": true,
      "envVars": {
        "property1": "string",
        "property2": "string"
      },
      "healthScore": 0,
      "healthScoreGrade": "string",
      "healthScoreUpdatedAt": "string",
      "hold": {
        "kind": "string",
        "operationId": "string",
        "operationType": "string",
        "startedAt": "string",
        "unresolvedRevision": true
      },
      "httpPort": 0,
      "httpPortHost": 0,
      "id": "string",
      "lastRestartAt": "string",
      "lastSeenAt": "string",
      "limitMemoryHard": 0,
      "limitMemorySoft": 0,
      "limitTimeCpu": 0,
      "limitTimeReal": 0,
      "logLevel": "string",
      "longpollingPort": 0,
      "longpollingPortHost": 0,
      "maxCronThreads": 0,
      "mcpWriteEnabled": true,
      "name": "string",
      "odooEdition": "string",
      "odooVersion": "string",
      "recoveryHold": {
        "kind": "string",
        "operationType": "string",
        "since": "string"
      },
      "restartCount": 0,
      "serverId": "string",
      "slug": "string",
      "status": "string",
      "statusMessage": "string",
      "templateId": "string",
      "updatedAt": "string",
      "wkhtmltopdfStatus": "string",
      "wkhtmltopdfVersion": "string",
      "workers": 0
    }
  ],
  "total": 0
}

Create a new Odoo instance

Creates a new Odoo instance on the specified server and enqueues a provisioning job. Requires manage:instances permission.

POST
/instances

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Request Body

application/jsonRequired

Instance creation details

addonsPathstring
branchstring
envVarsobject
environmentTypestring
namestring
odooEditionstring
odooVersionstring
projectIdstring
serverIdstring
slugstring
templateIdstring
curl -X POST "//api.ocore.dev/api/instances" \
  -H "Authorization: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "addonsPath": "string",
    "branch": "string",
    "envVars": {
      "property1": "string",
      "property2": "string"
    },
    "environmentType": "string",
    "name": "string",
    "odooEdition": "string",
    "odooVersion": "string",
    "projectId": "string",
    "serverId": "string",
    "slug": "string",
    "templateId": "string"
  }'

Accepted

{
  "activeColor": "string",
  "addonsPath": "string",
  "autoSubdomain": "string",
  "createdAt": "string",
  "domains": [
    {
      "createdAt": "string",
      "dnsProvider": "string",
      "dnsRecordId": "string",
      "dnsStatus": "string",
      "domain": "string",
      "id": "string",
      "isAutoGenerated": true,
      "isPrimary": true,
      "sslExpiresAt": "string",
      "sslStatus": "string"
    }
  ],
  "enterpriseBuildId": "string",
  "enterpriseDeployedAt": "string",
  "enterpriseUpdateAvailable": true,
  "envVars": {
    "property1": "string",
    "property2": "string"
  },
  "healthScore": 0,
  "healthScoreGrade": "string",
  "healthScoreUpdatedAt": "string",
  "hold": {
    "kind": "string",
    "operationId": "string",
    "operationType": "string",
    "startedAt": "string",
    "unresolvedRevision": true
  },
  "httpPort": 0,
  "httpPortHost": 0,
  "id": "string",
  "lastRestartAt": "string",
  "lastSeenAt": "string",
  "limitMemoryHard": 0,
  "limitMemorySoft": 0,
  "limitTimeCpu": 0,
  "limitTimeReal": 0,
  "logLevel": "string",
  "longpollingPort": 0,
  "longpollingPortHost": 0,
  "maxCronThreads": 0,
  "mcpWriteEnabled": true,
  "name": "string",
  "odooEdition": "string",
  "odooVersion": "string",
  "recoveryHold": {
    "kind": "string",
    "operationType": "string",
    "since": "string"
  },
  "restartCount": 0,
  "serverId": "string",
  "slug": "string",
  "status": "string",
  "statusMessage": "string",
  "templateId": "string",
  "updatedAt": "string",
  "wkhtmltopdfStatus": "string",
  "wkhtmltopdfVersion": "string",
  "workers": 0
}

Get instance details

Returns detailed instance information including status, configuration, and active deployment color.

GET
/instances/{id}

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Path Parameters

idRequiredstring

Instance UUID

curl -X GET "//api.ocore.dev/api/instances/<string>" \
  -H "Authorization: <token>"

OK

{
  "activeColor": "string",
  "addonsPath": "string",
  "autoSubdomain": "string",
  "createdAt": "string",
  "domains": [
    {
      "createdAt": "string",
      "dnsProvider": "string",
      "dnsRecordId": "string",
      "dnsStatus": "string",
      "domain": "string",
      "id": "string",
      "isAutoGenerated": true,
      "isPrimary": true,
      "sslExpiresAt": "string",
      "sslStatus": "string"
    }
  ],
  "enterpriseBuildId": "string",
  "enterpriseDeployedAt": "string",
  "enterpriseUpdateAvailable": true,
  "envVars": {
    "property1": "string",
    "property2": "string"
  },
  "healthScore": 0,
  "healthScoreGrade": "string",
  "healthScoreUpdatedAt": "string",
  "hold": {
    "kind": "string",
    "operationId": "string",
    "operationType": "string",
    "startedAt": "string",
    "unresolvedRevision": true
  },
  "httpPort": 0,
  "httpPortHost": 0,
  "id": "string",
  "lastRestartAt": "string",
  "lastSeenAt": "string",
  "limitMemoryHard": 0,
  "limitMemorySoft": 0,
  "limitTimeCpu": 0,
  "limitTimeReal": 0,
  "logLevel": "string",
  "longpollingPort": 0,
  "longpollingPortHost": 0,
  "maxCronThreads": 0,
  "mcpWriteEnabled": true,
  "name": "string",
  "odooEdition": "string",
  "odooVersion": "string",
  "recoveryHold": {
    "kind": "string",
    "operationType": "string",
    "since": "string"
  },
  "restartCount": 0,
  "serverId": "string",
  "slug": "string",
  "status": "string",
  "statusMessage": "string",
  "templateId": "string",
  "updatedAt": "string",
  "wkhtmltopdfStatus": "string",
  "wkhtmltopdfVersion": "string",
  "workers": 0
}

Delete instance

Marks an instance for asynchronous removal and enqueues a cleanup job. Requires manage:instances permission.

DELETE
/instances/{id}

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Path Parameters

idRequiredstring

Instance UUID

curl -X DELETE "//api.ocore.dev/api/instances/<string>" \
  -H "Authorization: <token>"

Accepted

{
  "message": "string"
}

Update instance

Updates instance name, addons path, and environment variables. Requires manage:instances permission.

PUT
/instances/{id}

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Request Body

application/jsonRequired

Instance fields to update

addonsPathstring
envVarsobject
mcpWriteEnabledboolean
namestring

Path Parameters

idRequiredstring

Instance UUID

curl -X PUT "//api.ocore.dev/api/instances/<string>" \
  -H "Authorization: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "addonsPath": "string",
    "envVars": {
      "property1": "string",
      "property2": "string"
    },
    "mcpWriteEnabled": true,
    "name": "string"
  }'

OK

{
  "activeColor": "string",
  "addonsPath": "string",
  "autoSubdomain": "string",
  "createdAt": "string",
  "domains": [
    {
      "createdAt": "string",
      "dnsProvider": "string",
      "dnsRecordId": "string",
      "dnsStatus": "string",
      "domain": "string",
      "id": "string",
      "isAutoGenerated": true,
      "isPrimary": true,
      "sslExpiresAt": "string",
      "sslStatus": "string"
    }
  ],
  "enterpriseBuildId": "string",
  "enterpriseDeployedAt": "string",
  "enterpriseUpdateAvailable": true,
  "envVars": {
    "property1": "string",
    "property2": "string"
  },
  "healthScore": 0,
  "healthScoreGrade": "string",
  "healthScoreUpdatedAt": "string",
  "hold": {
    "kind": "string",
    "operationId": "string",
    "operationType": "string",
    "startedAt": "string",
    "unresolvedRevision": true
  },
  "httpPort": 0,
  "httpPortHost": 0,
  "id": "string",
  "lastRestartAt": "string",
  "lastSeenAt": "string",
  "limitMemoryHard": 0,
  "limitMemorySoft": 0,
  "limitTimeCpu": 0,
  "limitTimeReal": 0,
  "logLevel": "string",
  "longpollingPort": 0,
  "longpollingPortHost": 0,
  "maxCronThreads": 0,
  "mcpWriteEnabled": true,
  "name": "string",
  "odooEdition": "string",
  "odooVersion": "string",
  "recoveryHold": {
    "kind": "string",
    "operationType": "string",
    "since": "string"
  },
  "restartCount": 0,
  "serverId": "string",
  "slug": "string",
  "status": "string",
  "statusMessage": "string",
  "templateId": "string",
  "updatedAt": "string",
  "wkhtmltopdfStatus": "string",
  "wkhtmltopdfVersion": "string",
  "workers": 0
}

Control instance (start/stop/restart)

Performs a lifecycle action (start, stop, restart) on an instance. Requires manage:instances permission.

POST
/instances/{id}/control

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Request Body

application/jsonRequired

Action to perform

actionstring

Path Parameters

idRequiredstring

Instance UUID

curl -X POST "//api.ocore.dev/api/instances/<string>/control" \
  -H "Authorization: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "string"
  }'

Accepted

{
  "message": "string"
}

Get instance health

Returns the current health status of an instance including last seen timestamp.

GET
/instances/{id}/health

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Path Parameters

idRequiredstring

Instance UUID

curl -X GET "//api.ocore.dev/api/instances/<string>/health" \
  -H "Authorization: <token>"

OK

{
  "id": "string",
  "lastSeenAt": "string",
  "slug": "string",
  "status": "string",
  "statusMessage": "string"
}

Get instance health score

Returns the computed health score with factor breakdown for an instance.

GET
/instances/{id}/health-score

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Path Parameters

idRequiredstring

Instance ID

curl -X GET "//api.ocore.dev/api/instances/<string>/health-score" \
  -H "Authorization: <token>"

OK

{
  "computedAt": "string",
  "factors": [
    {
      "details": "string",
      "name": "string",
      "score": 0,
      "weight": 0,
      "weighted": 0
    }
  ],
  "grade": "string",
  "score": 0
}

Acknowledge instance recovery

Legacy holds accept operator acknowledgement. Revision-owned holds require the exact release token and independently verified pre-mutation evidence; acknowledgement never proves an unknown mutation safe. Requires manage:instances permission.

POST
/instances/{id}/recovery/acknowledge

Authorization

Authorization<token>

JWT Bearer token (format: Bearer {token})

In: header

Request Body

application/jsonOptional

Required exact identity and reason for revision-owned recovery

commitShastring
deploymentIdstring
generationinteger
intentIdstring
operationIdstring
operationTypestring

OperationType and OperationID reconcile a hold left by a remote command whose outcome was never confirmed. They must name the exact owner the hold records, which the operator can only read from the hold itself, and Reason must state what was verified. This is the only exit from that state.

reasonstring

Path Parameters

idRequiredstring

Instance UUID

curl -X POST "//api.ocore.dev/api/instances/<string>/recovery/acknowledge" \
  -H "Authorization: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "commitSha": "string",
    "deploymentId": "string",
    "generation": 0,
    "intentId": "string",
    "operationId": "string",
    "operationType": "string",
    "reason": "string"
  }'

OK

{
  "message": "string",
  "operationId": "string",
  "operationType": "string"
}

Was this page helpful?