0

Create Postgres instance

by
Published Oct 17, 2025

Create a new Postgres instance.

Script render Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type Render = {
3
	apiKey: string
4
}
5
/**
6
 * Create Postgres instance
7
 * Create a new Postgres instance.
8

9
 */
10
export async function main(
11
	auth: Render,
12
	body: {
13
		databaseName?: string
14
		databaseUser?: string
15
		datadogAPIKey?: string
16
		datadogSite?: string
17
		name: string
18
		enableHighAvailability?: false | true
19
		environmentId?: string
20
		ownerId: string
21
		plan:
22
			| 'free'
23
			| 'starter'
24
			| 'standard'
25
			| 'pro'
26
			| 'pro_plus'
27
			| 'custom'
28
			| 'basic_256mb'
29
			| 'basic_1gb'
30
			| 'basic_4gb'
31
			| 'pro_4gb'
32
			| 'pro_8gb'
33
			| 'pro_16gb'
34
			| 'pro_32gb'
35
			| 'pro_64gb'
36
			| 'pro_128gb'
37
			| 'pro_192gb'
38
			| 'pro_256gb'
39
			| 'pro_384gb'
40
			| 'pro_512gb'
41
			| 'accelerated_16gb'
42
			| 'accelerated_32gb'
43
			| 'accelerated_64gb'
44
			| 'accelerated_128gb'
45
			| 'accelerated_256gb'
46
			| 'accelerated_384gb'
47
			| 'accelerated_512gb'
48
			| 'accelerated_768gb'
49
			| 'accelerated_1024gb'
50
		diskSizeGB?: number
51
		region?: string
52
		ipAllowList?: { cidrBlock: string; description: string }[]
53
		readReplicas?: { name: string }[]
54
		version: '11' | '12' | '13' | '14' | '15' | '16' | '17'
55
	}
56
) {
57
	const url = new URL(`https://api.render.com/v1/postgres`)
58

59
	const response = await fetch(url, {
60
		method: 'POST',
61
		headers: {
62
			'Content-Type': 'application/json',
63
			Authorization: 'Bearer ' + auth.apiKey
64
		},
65
		body: JSON.stringify(body)
66
	})
67
	if (!response.ok) {
68
		const text = await response.text()
69
		throw new Error(`${response.status} ${text}`)
70
	}
71
	return await response.json()
72
}
73