Skip to main content

http: RESTful Client

The http extension allows you to call RESTful endpoints within Postgres.


Let's cover some basic concepts:

  • REST: stands for REpresentational State Transfer. It's simply a way to request data from external services.
  • RESTful APIs are servers which accept HTTP "calls". The calls are typically:
    • GET − Read only access to a resource.
    • POST − Creates a new resource.
    • DELETE − Removes a resource.
    • PUT − Updates an existing resource or creates a new resource.

You can use the http extension to make these network requests from Postgres.



1. Go to the Database page.2. Click on "Extensions" in the sidebar.3. Search for "http".4. Click the toggle.

Available functions#

While the main usage is simply http('http_request'), there are 5 wrapper functions for specific functionality:

  • http_get()
  • http_post()
  • http_put()
  • http_delete()
  • http_head()

Returned values#

A successful call to a web URL from the http extension returns a record with the following fields:

  • status: integer
  • content_type: character varying
  • headers: http_header[]
  • content: character varying. Typically you would want to cast this to jsonb using the format content::jsonb


Simple GET example#

select   "status", "content"::jsonbfrom   http_get('');

Simple POST example#

select   "status", "content"::jsonbfrom   http_post(    '',    '{ "title": "foo", "body": "bar", "userId": 1 }',    'application/json'  );