Skip to content
Website

(PKCE) Refresh token

Request new access + refresh token pair with use of existing refresh token.

POST/oauth/token

Request new access + refresh token pair with use of existing refresh token.

Query parameters

Name Example Description
refresh_token demo_identifier -
grant_type refresh_token -
client_id {{client_id}} -

Code examples

cURL

curl --request POST 'https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id'

HTTP

POST /oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id HTTP/1.1
Host: app.datamolino.com

JavaScript Fetch

const response = await fetch("https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id", {
  method: "POST",
  headers: {},
});

const data = await response.json();

Node.js Axios

import axios from "axios";

const response = await axios({
  method: "post",
  url: "https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id",
  headers: {}
});

console.log(response.data);

Python Requests

import requests

url = "https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id"
headers = {}

response = requests.request("POST", url, headers=headers)
response.raise_for_status()
print(response.json())

Ruby Net::HTTP

require 'json'
require 'net/http'

uri = URI("https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id")
request = Net::HTTP::Post.new(uri)

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)

Ruby on Rails

# app/services/datamolino_client.rb
require 'json'
require 'net/http'

class DatamolinoClient
  BASE_URL = "https://app.datamolino.com"

  def initialize(access_token: Rails.application.credentials.dig(:datamolino, :access_token))
@access_token = access_token
  end

  def request_pkce_refresh_token
uri = URI("#{BASE_URL}/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id")
request = Net::HTTP::Post.new(uri)

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

JSON.parse(response.body)
  end
end

PHP Guzzle

<?php

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('POST', 'https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id', [
'headers' => json_decode('{}', true)
]);

echo $response->getBody();

Java OkHttp

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
.url("https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id")
.method("POST", null)
.build();

Response response = client.newCall(request).execute();

C# HttpClient

using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, "https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id");

using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Go Native

client := &http.Client{}
req, err := http.NewRequest("POST", "https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id", nil)
if err != nil { panic(err) }

res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()

body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
fmt.Println(string(body))

Swift URLSession

import Foundation

var request = URLRequest(url: URL(string: "https://app.datamolino.com/oauth/token?refresh_token=demo_refresh_token&grant_type=refresh_token&client_id=demo_client_id")!)
request.httpMethod = "POST"

let (data, _) = try await URLSession.shared.data(for: request)
print(String(data: data, encoding: .utf8)!)

Responses

200 OK

Content type: application/json; charset=utf-8

{
  "access_token": "demo_access_token",
  "token_type": "Bearer",
  "expires_in": 7200,
  "refresh_token": "demo_refresh_token",
  "scope": "public",
  "created_at": 1700583256
}

Type to search…

↑↓ navigate↵ selectEsc close