http

http

pg_http : HTTP client for PostgreSQL, allows web page retrieval inside the database.

Overview

ID Extension Package Version Category License Language
4070
http
pg_http
1.7.0
UTIL
MIT
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d--
No
Yes
No
Yes
no
no
Relationships
See Also
pg_net
pg_curl
pgjwt
pg_smtp_client
gzip
bzip
zstd
pgjq

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PGDG
1.7.0
18
17
16
15
14
13
pg_http -
RPM
PGDG
1.7.0
18
17
16
15
14
13
pg_http_$v* -
DEB
PGDG
1.7.0
18
17
16
15
14
13
postgresql-$v-http -
Linux / PG PG18 PG17 PG16 PG15 PG14 PG13
el8.x86_64
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
el8.aarch64
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
el9.x86_64
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
el9.aarch64
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
el10.x86_64
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
el10.aarch64
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
PIGSTY 1.7.0
d12.x86_64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
d12.aarch64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
d13.x86_64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
d13.aarch64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
u22.x86_64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
u22.aarch64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
u24.x86_64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
u24.aarch64
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
PGDG 1.7.0
Package Version OS ORG SIZE File URL
pg_http_18 1.7.0 el8.x86_64 pigsty 29.0 KiB pg_http_18-1.7.0-1PIGSTY.el8.x86_64.rpm
pg_http_18 1.7.0 el8.aarch64 pigsty 28.3 KiB pg_http_18-1.7.0-1PIGSTY.el8.aarch64.rpm
pg_http_18 1.7.0 el9.x86_64 pigsty 29.1 KiB pg_http_18-1.7.0-1PIGSTY.el9.x86_64.rpm
pg_http_18 1.7.0 el9.aarch64 pigsty 28.0 KiB pg_http_18-1.7.0-1PIGSTY.el9.aarch64.rpm
pg_http_18 1.7.0 el10.x86_64 pigsty 29.5 KiB pg_http_18-1.7.0-1PIGSTY.el10.x86_64.rpm
pg_http_18 1.7.0 el10.aarch64 pigsty 28.2 KiB pg_http_18-1.7.0-1PIGSTY.el10.aarch64.rpm
postgresql-18-http 1.7.0 d12.x86_64 pgdg 44.5 KiB postgresql-18-http_1.7.0-3.pgdg12+1_amd64.deb
postgresql-18-http 1.7.0 d12.aarch64 pgdg 43.1 KiB postgresql-18-http_1.7.0-3.pgdg12+1_arm64.deb
postgresql-18-http 1.7.0 d13.x86_64 pgdg 44.6 KiB postgresql-18-http_1.7.0-3.pgdg13+1_amd64.deb
postgresql-18-http 1.7.0 d13.aarch64 pgdg 43.2 KiB postgresql-18-http_1.7.0-3.pgdg13+1_arm64.deb
postgresql-18-http 1.7.0 u22.x86_64 pgdg 44.7 KiB postgresql-18-http_1.7.0-3.pgdg22.04+1_amd64.deb
postgresql-18-http 1.7.0 u22.aarch64 pgdg 43.1 KiB postgresql-18-http_1.7.0-3.pgdg22.04+1_arm64.deb
postgresql-18-http 1.7.0 u24.x86_64 pgdg 44.5 KiB postgresql-18-http_1.7.0-3.pgdg24.04+1_amd64.deb
postgresql-18-http 1.7.0 u24.aarch64 pgdg 43.0 KiB postgresql-18-http_1.7.0-3.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
pg_http_17 1.7.0 el8.x86_64 pigsty 29.1 KiB pg_http_17-1.7.0-1PIGSTY.el8.x86_64.rpm
pg_http_17 1.7.0 el8.aarch64 pigsty 28.3 KiB pg_http_17-1.7.0-1PIGSTY.el8.aarch64.rpm
pg_http_17 1.7.0 el9.x86_64 pigsty 29.2 KiB pg_http_17-1.7.0-1PIGSTY.el9.x86_64.rpm
pg_http_17 1.7.0 el9.aarch64 pigsty 28.1 KiB pg_http_17-1.7.0-1PIGSTY.el9.aarch64.rpm
pg_http_17 1.7.0 el10.x86_64 pigsty 29.5 KiB pg_http_17-1.7.0-1PIGSTY.el10.x86_64.rpm
pg_http_17 1.7.0 el10.aarch64 pigsty 28.4 KiB pg_http_17-1.7.0-1PIGSTY.el10.aarch64.rpm
postgresql-17-http 1.7.0 d12.x86_64 pgdg 44.6 KiB postgresql-17-http_1.7.0-3.pgdg12+1_amd64.deb
postgresql-17-http 1.7.0 d12.aarch64 pgdg 43.1 KiB postgresql-17-http_1.7.0-3.pgdg12+1_arm64.deb
postgresql-17-http 1.7.0 d13.x86_64 pgdg 44.6 KiB postgresql-17-http_1.7.0-3.pgdg13+1_amd64.deb
postgresql-17-http 1.7.0 d13.aarch64 pgdg 43.3 KiB postgresql-17-http_1.7.0-3.pgdg13+1_arm64.deb
postgresql-17-http 1.7.0 u22.x86_64 pgdg 48.9 KiB postgresql-17-http_1.7.0-3.pgdg22.04+1_amd64.deb
postgresql-17-http 1.7.0 u22.aarch64 pgdg 47.4 KiB postgresql-17-http_1.7.0-3.pgdg22.04+1_arm64.deb
postgresql-17-http 1.7.0 u24.x86_64 pgdg 44.6 KiB postgresql-17-http_1.7.0-3.pgdg24.04+1_amd64.deb
postgresql-17-http 1.7.0 u24.aarch64 pgdg 43.2 KiB postgresql-17-http_1.7.0-3.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
pg_http_16 1.7.0 el8.x86_64 pigsty 29.1 KiB pg_http_16-1.7.0-1PIGSTY.el8.x86_64.rpm
pg_http_16 1.7.0 el8.aarch64 pigsty 28.3 KiB pg_http_16-1.7.0-1PIGSTY.el8.aarch64.rpm
pg_http_16 1.7.0 el9.x86_64 pigsty 29.2 KiB pg_http_16-1.7.0-1PIGSTY.el9.x86_64.rpm
pg_http_16 1.7.0 el9.aarch64 pigsty 28.1 KiB pg_http_16-1.7.0-1PIGSTY.el9.aarch64.rpm
pg_http_16 1.7.0 el10.x86_64 pigsty 29.5 KiB pg_http_16-1.7.0-1PIGSTY.el10.x86_64.rpm
pg_http_16 1.7.0 el10.aarch64 pigsty 28.4 KiB pg_http_16-1.7.0-1PIGSTY.el10.aarch64.rpm
postgresql-16-http 1.7.0 d12.x86_64 pgdg 44.5 KiB postgresql-16-http_1.7.0-3.pgdg12+1_amd64.deb
postgresql-16-http 1.7.0 d12.aarch64 pgdg 43.1 KiB postgresql-16-http_1.7.0-3.pgdg12+1_arm64.deb
postgresql-16-http 1.7.0 d13.x86_64 pgdg 44.6 KiB postgresql-16-http_1.7.0-3.pgdg13+1_amd64.deb
postgresql-16-http 1.7.0 d13.aarch64 pgdg 43.3 KiB postgresql-16-http_1.7.0-3.pgdg13+1_arm64.deb
postgresql-16-http 1.7.0 u22.x86_64 pgdg 48.9 KiB postgresql-16-http_1.7.0-3.pgdg22.04+1_amd64.deb
postgresql-16-http 1.7.0 u22.aarch64 pgdg 47.3 KiB postgresql-16-http_1.7.0-3.pgdg22.04+1_arm64.deb
postgresql-16-http 1.7.0 u24.x86_64 pgdg 44.6 KiB postgresql-16-http_1.7.0-3.pgdg24.04+1_amd64.deb
postgresql-16-http 1.7.0 u24.aarch64 pgdg 43.2 KiB postgresql-16-http_1.7.0-3.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
pg_http_15 1.7.0 el8.x86_64 pigsty 29.4 KiB pg_http_15-1.7.0-1PIGSTY.el8.x86_64.rpm
pg_http_15 1.7.0 el8.aarch64 pigsty 28.6 KiB pg_http_15-1.7.0-1PIGSTY.el8.aarch64.rpm
pg_http_15 1.7.0 el9.x86_64 pigsty 29.5 KiB pg_http_15-1.7.0-1PIGSTY.el9.x86_64.rpm
pg_http_15 1.7.0 el9.aarch64 pigsty 28.4 KiB pg_http_15-1.7.0-1PIGSTY.el9.aarch64.rpm
pg_http_15 1.7.0 el10.x86_64 pigsty 29.9 KiB pg_http_15-1.7.0-1PIGSTY.el10.x86_64.rpm
pg_http_15 1.7.0 el10.aarch64 pigsty 28.7 KiB pg_http_15-1.7.0-1PIGSTY.el10.aarch64.rpm
postgresql-15-http 1.7.0 d12.x86_64 pgdg 45.4 KiB postgresql-15-http_1.7.0-3.pgdg12+1_amd64.deb
postgresql-15-http 1.7.0 d12.aarch64 pgdg 44.1 KiB postgresql-15-http_1.7.0-3.pgdg12+1_arm64.deb
postgresql-15-http 1.7.0 d13.x86_64 pgdg 45.7 KiB postgresql-15-http_1.7.0-3.pgdg13+1_amd64.deb
postgresql-15-http 1.7.0 d13.aarch64 pgdg 44.1 KiB postgresql-15-http_1.7.0-3.pgdg13+1_arm64.deb
postgresql-15-http 1.7.0 u22.x86_64 pgdg 50.0 KiB postgresql-15-http_1.7.0-3.pgdg22.04+1_amd64.deb
postgresql-15-http 1.7.0 u22.aarch64 pgdg 48.1 KiB postgresql-15-http_1.7.0-3.pgdg22.04+1_arm64.deb
postgresql-15-http 1.7.0 u24.x86_64 pgdg 45.5 KiB postgresql-15-http_1.7.0-3.pgdg24.04+1_amd64.deb
postgresql-15-http 1.7.0 u24.aarch64 pgdg 44.1 KiB postgresql-15-http_1.7.0-3.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
pg_http_14 1.7.0 el8.x86_64 pigsty 29.4 KiB pg_http_14-1.7.0-1PIGSTY.el8.x86_64.rpm
pg_http_14 1.7.0 el8.aarch64 pigsty 28.6 KiB pg_http_14-1.7.0-1PIGSTY.el8.aarch64.rpm
pg_http_14 1.7.0 el9.x86_64 pigsty 29.5 KiB pg_http_14-1.7.0-1PIGSTY.el9.x86_64.rpm
pg_http_14 1.7.0 el9.aarch64 pigsty 28.4 KiB pg_http_14-1.7.0-1PIGSTY.el9.aarch64.rpm
pg_http_14 1.7.0 el10.x86_64 pigsty 29.9 KiB pg_http_14-1.7.0-1PIGSTY.el10.x86_64.rpm
pg_http_14 1.7.0 el10.aarch64 pigsty 28.7 KiB pg_http_14-1.7.0-1PIGSTY.el10.aarch64.rpm
postgresql-14-http 1.7.0 d12.x86_64 pgdg 45.3 KiB postgresql-14-http_1.7.0-3.pgdg12+1_amd64.deb
postgresql-14-http 1.7.0 d12.aarch64 pgdg 44.0 KiB postgresql-14-http_1.7.0-3.pgdg12+1_arm64.deb
postgresql-14-http 1.7.0 d13.x86_64 pgdg 45.6 KiB postgresql-14-http_1.7.0-3.pgdg13+1_amd64.deb
postgresql-14-http 1.7.0 d13.aarch64 pgdg 44.1 KiB postgresql-14-http_1.7.0-3.pgdg13+1_arm64.deb
postgresql-14-http 1.7.0 u22.x86_64 pgdg 50.0 KiB postgresql-14-http_1.7.0-3.pgdg22.04+1_amd64.deb
postgresql-14-http 1.7.0 u22.aarch64 pgdg 48.1 KiB postgresql-14-http_1.7.0-3.pgdg22.04+1_arm64.deb
postgresql-14-http 1.7.0 u24.x86_64 pgdg 45.6 KiB postgresql-14-http_1.7.0-3.pgdg24.04+1_amd64.deb
postgresql-14-http 1.7.0 u24.aarch64 pgdg 44.1 KiB postgresql-14-http_1.7.0-3.pgdg24.04+1_arm64.deb
Package Version OS ORG SIZE File URL
pg_http_13 1.7.0 el8.x86_64 pigsty 28.9 KiB pg_http_13-1.7.0-1PIGSTY.el8.x86_64.rpm
pg_http_13 1.7.0 el8.aarch64 pigsty 28.5 KiB pg_http_13-1.7.0-1PIGSTY.el8.aarch64.rpm
pg_http_13 1.7.0 el9.x86_64 pigsty 29.4 KiB pg_http_13-1.7.0-1PIGSTY.el9.x86_64.rpm
pg_http_13 1.7.0 el9.aarch64 pigsty 28.7 KiB pg_http_13-1.7.0-1PIGSTY.el9.aarch64.rpm
pg_http_13 1.7.0 el10.x86_64 pigsty 29.7 KiB pg_http_13-1.7.0-1PIGSTY.el10.x86_64.rpm
pg_http_13 1.7.0 el10.aarch64 pigsty 28.6 KiB pg_http_13-1.7.0-1PIGSTY.el10.aarch64.rpm
postgresql-13-http 1.7.0 d12.x86_64 pgdg 45.3 KiB postgresql-13-http_1.7.0-3.pgdg12+1_amd64.deb
postgresql-13-http 1.7.0 d12.aarch64 pgdg 43.9 KiB postgresql-13-http_1.7.0-3.pgdg12+1_arm64.deb
postgresql-13-http 1.7.0 d13.x86_64 pgdg 45.5 KiB postgresql-13-http_1.7.0-3.pgdg13+1_amd64.deb
postgresql-13-http 1.7.0 d13.aarch64 pgdg 43.8 KiB postgresql-13-http_1.7.0-3.pgdg13+1_arm64.deb
postgresql-13-http 1.7.0 u22.x86_64 pgdg 49.6 KiB postgresql-13-http_1.7.0-3.pgdg22.04+1_amd64.deb
postgresql-13-http 1.7.0 u22.aarch64 pgdg 48.3 KiB postgresql-13-http_1.7.0-3.pgdg22.04+1_arm64.deb
postgresql-13-http 1.7.0 u24.x86_64 pgdg 45.4 KiB postgresql-13-http_1.7.0-3.pgdg24.04+1_amd64.deb
postgresql-13-http 1.7.0 u24.aarch64 pgdg 43.7 KiB postgresql-13-http_1.7.0-3.pgdg24.04+1_arm64.deb

Source

pig build pkg pg_http;		# build spec not ready

Install

Make sure PGDG repo available:

pig repo add pgdg -u    # add pgdg repo and update cache

Install this extension with pig:

pig install pg_http;		# install via package name, for the active PG version
pig install http;		# install by extension name, for the current active PG version

pig install http -v 18;   # install for PG 18
pig install http -v 17;   # install for PG 17
pig install http -v 16;   # install for PG 16
pig install http -v 15;   # install for PG 15
pig install http -v 14;   # install for PG 14
pig install http -v 13;   # install for PG 13

Create this extension with:

CREATE EXTENSION http;

Usage

https://github.com/pramsey/pgsql-http

Request / Response Schema:

     Composite type "public.http_request"
    Column    |       Type        | Modifiers
--------------+-------------------+-----------
 method       | http_method       |
 uri          | character varying |
 headers      | http_header[]     |
 content_type | character varying |
 content      | character varying |

    Composite type "public.http_response"
    Column    |       Type        | Modifiers
--------------+-------------------+-----------
 status       | integer           |
 content_type | character varying |
 headers      | http_header[]     |
 content      | character varying |

Examples

Sending HTTP GET requests with SQL

CREATE EXTENSION http;

-- get content
SELECT content FROM http_get('http://httpbun.com/');

-- get status and content_type
SELECT status, content_type FROM http_get('http://httpbun.com/');

--  status |       content_type
-- --------+--------------------------
--     200 | text/html; charset=utf-8

-- get headers
SELECT (unnest(headers)).* FROM http_get('http://httpbun.com/');

--             field           |                      value
--  ---------------------------+--------------------------------------------------
--  Location                  | https://httpbun.com/
--  Date                      | Mon, 04 Nov 2024 09:00:36 GMT
--  Content-Length            | 0
--  Connection                | close
--  alt-svc                   | h3=":443"; ma=2592000
--  content-security-policy   | frame-ancestors 'none'
--  content-type              | text/html
--  date                      | Mon, 04 Nov 2024 09:00:37 GMT
--  strict-transport-security | max-age=31536000; includeSubDomains; preload
--  x-content-type-options    | nosniff
--  x-powered-by              | httpbun/af040d24038613575a85f74c2283ae79f8169927
--  (11 rows)
SELECT status, content::json->'form' AS form FROM http_post('http://httpbun.com/post', jsonb_build_object('myvar','myval','foo','bar'));

Issue http put requests:

SELECT status, content_type, content::json->>'data' AS data
  FROM http_put('http://httpbun.com/put', 'some text', 'text/plain');


--  status |   content_type   |   data
-- --------+------------------+-----------
--  200 | application/json | some text

Issue http post request:

Last updated on