POST
/oauth/tokenRequest new access + refresh token pair with use of existing refresh token.
Request body
{
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}Code examples
curl --request POST 'https://app.datamolino.com/oauth/token' \
--header 'Content-Type: application/json' \
--data '{
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}'POST /oauth/token HTTP/1.1
Host: app.datamolino.com
Content-Type: application/json
{
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}const response = await fetch("https://app.datamolino.com/oauth/token", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}),
});
const data = await response.json();import axios from "axios";
const response = await axios({
method: "post",
url: "https://app.datamolino.com/oauth/token",
headers: {
"Content-Type": "application/json"
},
data: {
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}
});
console.log(response.data);import requests
url = "https://app.datamolino.com/oauth/token"
headers = {
"Content-Type": "application/json"
}
payload = {
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}
response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())require 'json'
require 'net/http'
uri = URI("https://app.datamolino.com/oauth/token")
request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts JSON.parse(response.body)# 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_refresh_token
uri = URI("#{BASE_URL}/oauth/token")
request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"grant_type": "refresh_token",
"refresh_token": "demo_refresh_token",
"client_id": "demo_client_id",
"client_secret": "demo_client_secret"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
JSON.parse(response.body)
end
end<?php
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('POST', 'https://app.datamolino.com/oauth/token', [
'headers' => json_decode('{"Content-Type":"application/json"}', true),
'json' => json_decode('{"grant_type":"refresh_token","refresh_token":"demo_refresh_token","client_id":"demo_client_id","client_secret":"demo_client_secret"}', true)
]);
echo $response->getBody();OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create("{\n \"grant_type\": \"refresh_token\",\n \"refresh_token\": \"demo_refresh_token\",\n \"client_id\": \"demo_client_id\",\n \"client_secret\": \"demo_client_secret\"\n}", MediaType.parse("application/json"));
Request request = new Request.Builder()
.url("https://app.datamolino.com/oauth/token")
.addHeader("Content-Type", "application/json")
.method("POST", body)
.build();
Response response = client.newCall(request).execute();using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, "https://app.datamolino.com/oauth/token");
request.Content = new StringContent("{\n \"grant_type\": \"refresh_token\",\n \"refresh_token\": \"demo_refresh_token\",\n \"client_id\": \"demo_client_id\",\n \"client_secret\": \"demo_client_secret\"\n}", Encoding.UTF8, "application/json");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());client := &http.Client{}
req, err := http.NewRequest("POST", "https://app.datamolino.com/oauth/token", strings.NewReader("{\n \"grant_type\": \"refresh_token\",\n \"refresh_token\": \"demo_refresh_token\",\n \"client_id\": \"demo_client_id\",\n \"client_secret\": \"demo_client_secret\"\n}"))
if err != nil { panic(err) }
req.Header.Add("Content-Type", "application/json")
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))import Foundation
var request = URLRequest(url: URL(string: "https://app.datamolino.com/oauth/token")!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\n \"grant_type\": \"refresh_token\",\n \"refresh_token\": \"demo_refresh_token\",\n \"client_id\": \"demo_client_id\",\n \"client_secret\": \"demo_client_secret\"\n}".data(using: .utf8)
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",
"created_at": 1588585847
}