Render · Capability

Render Public API — Postgres

Render Public API — Postgres. 17 operations. Lead operation: List Postgres instances. Self-contained Naftiko capability covering one Render business surface.

Run with Naftiko RenderPostgres

What You Can Do

GET
Listpostgres — List Postgres instances
/v1/postgres
POST
Createpostgres — Create Postgres instance
/v1/postgres
GET
Retrievepostgres — Retrieve Postgres instance
/v1/postgres/{postgresid}
PATCH
Updatepostgres — Update Postgres instance
/v1/postgres/{postgresid}
DELETE
Deletepostgres — Delete Postgres instance
/v1/postgres/{postgresid}
GET
Retrievepostgresconnectioninfo — Retrieve Postgres connection info
/v1/postgres/{postgresid}/connection-info
GET
Listpostgresusers — List PostgreSQL Users
/v1/postgres/{postgresid}/credentials
POST
Createpostgresuser — Create PostgreSQL User
/v1/postgres/{postgresid}/credentials
DELETE
Deletepostgresuser — Delete PostgreSQL User
/v1/postgres/{postgresid}/credentials/{username}
GET
Listpostgresexport — List Postgres exports
/v1/postgres/{postgresid}/export
POST
Createpostgresexport — Create Postgres export
/v1/postgres/{postgresid}/export
POST
Failoverpostgres — Failover Postgres instance
/v1/postgres/{postgresid}/failover
GET
Retrievepostgresrecoveryinfo — Retrieve point-in-time recovery status
/v1/postgres/{postgresid}/recovery
POST
Recoverpostgres — Trigger point-in-time recovery
/v1/postgres/{postgresid}/recovery
POST
Restartpostgres — Restart Postgres instance
/v1/postgres/{postgresid}/restart
POST
Resumepostgres — Resume Postgres instance
/v1/postgres/{postgresid}/resume
POST
Suspendpostgres — Suspend Postgres instance
/v1/postgres/{postgresid}/suspend

MCP Tools

list-postgres-instances

List Postgres instances

read-only idempotent
create-postgres-instance

Create Postgres instance

retrieve-postgres-instance

Retrieve Postgres instance

read-only idempotent
update-postgres-instance

Update Postgres instance

idempotent
delete-postgres-instance

Delete Postgres instance

idempotent
retrieve-postgres-connection-info

Retrieve Postgres connection info

read-only idempotent
list-postgresql-users

List PostgreSQL Users

read-only idempotent
create-postgresql-user

Create PostgreSQL User

delete-postgresql-user

Delete PostgreSQL User

idempotent
list-postgres-exports

List Postgres exports

read-only idempotent
create-postgres-export

Create Postgres export

failover-postgres-instance

Failover Postgres instance

retrieve-point-time-recovery-status

Retrieve point-in-time recovery status

read-only idempotent
trigger-point-time-recovery

Trigger point-in-time recovery

restart-postgres-instance

Restart Postgres instance

resume-postgres-instance

Resume Postgres instance

suspend-postgres-instance

Suspend Postgres instance

Capability Spec

render-postgres.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Render Public API — Postgres
  description: 'Render Public API — Postgres. 17 operations. Lead operation: List Postgres instances. Self-contained Naftiko
    capability covering one Render business surface.'
  tags:
  - Render
  - Postgres
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    RENDER_API_KEY: RENDER_API_KEY
capability:
  consumes:
  - type: http
    namespace: render-postgres
    baseUri: https://api.render.com/v1
    description: Render Public API — Postgres business capability. Self-contained, no shared references.
    resources:
    - name: postgres
      path: /postgres
      operations:
      - name: listpostgres
        method: GET
        description: List Postgres instances
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createpostgres
        method: POST
        description: Create Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: postgres-postgresId
      path: /postgres/{postgresId}
      operations:
      - name: retrievepostgres
        method: GET
        description: Retrieve Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postgresId
          in: path
          type: string
          required: true
      - name: updatepostgres
        method: PATCH
        description: Update Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postgresId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletepostgres
        method: DELETE
        description: Delete Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postgresId
          in: path
          type: string
          required: true
    - name: postgres-postgresId-connection-info
      path: /postgres/{postgresId}/connection-info
      operations:
      - name: retrievepostgresconnectioninfo
        method: GET
        description: Retrieve Postgres connection info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postgresId
          in: path
          type: string
          required: true
    - name: postgres-postgresId-credentials
      path: /postgres/{postgresId}/credentials
      operations:
      - name: listpostgresusers
        method: GET
        description: List PostgreSQL Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createpostgresuser
        method: POST
        description: Create PostgreSQL User
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: postgres-postgresId-credentials-username
      path: /postgres/{postgresId}/credentials/{username}
      operations:
      - name: deletepostgresuser
        method: DELETE
        description: Delete PostgreSQL User
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: postgres-postgresId-export
      path: /postgres/{postgresId}/export
      operations:
      - name: listpostgresexport
        method: GET
        description: List Postgres exports
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createpostgresexport
        method: POST
        description: Create Postgres export
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: postgres-postgresId-failover
      path: /postgres/{postgresId}/failover
      operations:
      - name: failoverpostgres
        method: POST
        description: Failover Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: postgres-postgresId-recovery
      path: /postgres/{postgresId}/recovery
      operations:
      - name: retrievepostgresrecoveryinfo
        method: GET
        description: Retrieve point-in-time recovery status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postgresId
          in: path
          type: string
          required: true
      - name: recoverpostgres
        method: POST
        description: Trigger point-in-time recovery
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postgresId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: postgres-postgresId-restart
      path: /postgres/{postgresId}/restart
      operations:
      - name: restartpostgres
        method: POST
        description: Restart Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: postgres-postgresId-resume
      path: /postgres/{postgresId}/resume
      operations:
      - name: resumepostgres
        method: POST
        description: Resume Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: postgres-postgresId-suspend
      path: /postgres/{postgresId}/suspend
      operations:
      - name: suspendpostgres
        method: POST
        description: Suspend Postgres instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.RENDER_API_KEY}}'
  exposes:
  - type: rest
    namespace: render-postgres-rest
    port: 8080
    description: REST adapter for Render Public API — Postgres. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/postgres
      name: postgres
      description: REST surface for postgres.
      operations:
      - method: GET
        name: listpostgres
        description: List Postgres instances
        call: render-postgres.listpostgres
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createpostgres
        description: Create Postgres instance
        call: render-postgres.createpostgres
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}
      name: postgres-postgresid
      description: REST surface for postgres-postgresId.
      operations:
      - method: GET
        name: retrievepostgres
        description: Retrieve Postgres instance
        call: render-postgres.retrievepostgres
        with:
          postgresId: rest.postgresId
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatepostgres
        description: Update Postgres instance
        call: render-postgres.updatepostgres
        with:
          postgresId: rest.postgresId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletepostgres
        description: Delete Postgres instance
        call: render-postgres.deletepostgres
        with:
          postgresId: rest.postgresId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/connection-info
      name: postgres-postgresid-connection-info
      description: REST surface for postgres-postgresId-connection-info.
      operations:
      - method: GET
        name: retrievepostgresconnectioninfo
        description: Retrieve Postgres connection info
        call: render-postgres.retrievepostgresconnectioninfo
        with:
          postgresId: rest.postgresId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/credentials
      name: postgres-postgresid-credentials
      description: REST surface for postgres-postgresId-credentials.
      operations:
      - method: GET
        name: listpostgresusers
        description: List PostgreSQL Users
        call: render-postgres.listpostgresusers
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createpostgresuser
        description: Create PostgreSQL User
        call: render-postgres.createpostgresuser
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/credentials/{username}
      name: postgres-postgresid-credentials-username
      description: REST surface for postgres-postgresId-credentials-username.
      operations:
      - method: DELETE
        name: deletepostgresuser
        description: Delete PostgreSQL User
        call: render-postgres.deletepostgresuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/export
      name: postgres-postgresid-export
      description: REST surface for postgres-postgresId-export.
      operations:
      - method: GET
        name: listpostgresexport
        description: List Postgres exports
        call: render-postgres.listpostgresexport
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createpostgresexport
        description: Create Postgres export
        call: render-postgres.createpostgresexport
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/failover
      name: postgres-postgresid-failover
      description: REST surface for postgres-postgresId-failover.
      operations:
      - method: POST
        name: failoverpostgres
        description: Failover Postgres instance
        call: render-postgres.failoverpostgres
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/recovery
      name: postgres-postgresid-recovery
      description: REST surface for postgres-postgresId-recovery.
      operations:
      - method: GET
        name: retrievepostgresrecoveryinfo
        description: Retrieve point-in-time recovery status
        call: render-postgres.retrievepostgresrecoveryinfo
        with:
          postgresId: rest.postgresId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: recoverpostgres
        description: Trigger point-in-time recovery
        call: render-postgres.recoverpostgres
        with:
          postgresId: rest.postgresId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/restart
      name: postgres-postgresid-restart
      description: REST surface for postgres-postgresId-restart.
      operations:
      - method: POST
        name: restartpostgres
        description: Restart Postgres instance
        call: render-postgres.restartpostgres
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/resume
      name: postgres-postgresid-resume
      description: REST surface for postgres-postgresId-resume.
      operations:
      - method: POST
        name: resumepostgres
        description: Resume Postgres instance
        call: render-postgres.resumepostgres
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/postgres/{postgresid}/suspend
      name: postgres-postgresid-suspend
      description: REST surface for postgres-postgresId-suspend.
      operations:
      - method: POST
        name: suspendpostgres
        description: Suspend Postgres instance
        call: render-postgres.suspendpostgres
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: render-postgres-mcp
    port: 9090
    transport: http
    description: MCP adapter for Render Public API — Postgres. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: list-postgres-instances
      description: List Postgres instances
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: render-postgres.listpostgres
      outputParameters:
      - type: object
        mapping: $.
    - name: create-postgres-instance
      description: Create Postgres instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.createpostgres
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-postgres-instance
      description: Retrieve Postgres instance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: render-postgres.retrievepostgres
      with:
        postgresId: tools.postgresId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-postgres-instance
      description: Update Postgres instance
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: render-postgres.updatepostgres
      with:
        postgresId: tools.postgresId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-postgres-instance
      description: Delete Postgres instance
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: render-postgres.deletepostgres
      with:
        postgresId: tools.postgresId
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-postgres-connection-info
      description: Retrieve Postgres connection info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: render-postgres.retrievepostgresconnectioninfo
      with:
        postgresId: tools.postgresId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-postgresql-users
      description: List PostgreSQL Users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: render-postgres.listpostgresusers
      outputParameters:
      - type: object
        mapping: $.
    - name: create-postgresql-user
      description: Create PostgreSQL User
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.createpostgresuser
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-postgresql-user
      description: Delete PostgreSQL User
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: render-postgres.deletepostgresuser
      outputParameters:
      - type: object
        mapping: $.
    - name: list-postgres-exports
      description: List Postgres exports
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: render-postgres.listpostgresexport
      outputParameters:
      - type: object
        mapping: $.
    - name: create-postgres-export
      description: Create Postgres export
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.createpostgresexport
      outputParameters:
      - type: object
        mapping: $.
    - name: failover-postgres-instance
      description: Failover Postgres instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.failoverpostgres
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-point-time-recovery-status
      description: Retrieve point-in-time recovery status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: render-postgres.retrievepostgresrecoveryinfo
      with:
        postgresId: tools.postgresId
      outputParameters:
      - type: object
        mapping: $.
    - name: trigger-point-time-recovery
      description: Trigger point-in-time recovery
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.recoverpostgres
      with:
        postgresId: tools.postgresId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: restart-postgres-instance
      description: Restart Postgres instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.restartpostgres
      outputParameters:
      - type: object
        mapping: $.
    - name: resume-postgres-instance
      description: Resume Postgres instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.resumepostgres
      outputParameters:
      - type: object
        mapping: $.
    - name: suspend-postgres-instance
      description: Suspend Postgres instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: render-postgres.suspendpostgres
      outputParameters:
      - type: object
        mapping: $.