Skip to main content
GET
/
v2
/
link
/
provider
/
oauth
/
{oauth_provider}
curl --request GET \
     --url {{BASE_URL}}/v2/link/provider/oauth/{oauth_provider} \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'x-vital-link-token: <VITAL-LINK-TOKEN>'
import { JunctionClient, JunctionEnvironment, OAuthProviders } from "@junction-api/sdk";

const client = new JunctionClient({
    apiKey: "YOUR_API_KEY",
    environment: JunctionEnvironment.Sandbox,
});

const tokenResponse = await client.link.token({ userId: "<user_id>" });

const data = await client.link.generateOauthLink({
    oauthProvider: OAuthProviders.Oura,
    vitalLinkToken: tokenResponse.linkToken,
});
from junction import Junction, OAuthProviders
from junction.environment import JunctionEnvironment

client = Junction(
    api_key="YOUR_API_KEY",
    environment=JunctionEnvironment.SANDBOX,
)

token_response = client.link.token(user_id="<user_id>")

data = client.link.generate_oauth_link(
    OAuthProviders.OURA,
    vital_link_token=token_response.link_token,
)
import com.junction.api.Junction;
import com.junction.api.core.Environment;
import com.junction.api.resources.link.requests.GenerateOauthLinkLinkRequest;
import com.junction.api.resources.link.requests.LinkTokenExchange;
import com.junction.api.types.OAuthProviders;

Junction client = Junction.builder()
    .apiKey("YOUR_API_KEY")
    .environment(Environment.SANDBOX)
    .build();

var tokenResponse = client.link().token(
    LinkTokenExchange.builder()
        .userId("<user_id>")
        .build()
);

var data = client.link().generateOauthLink(
    OAuthProviders.OURA,
    GenerateOauthLinkLinkRequest.builder()
        .vitalLinkToken(tokenResponse.getLinkToken())
        .build()
);
import (
    "context"

    junction "github.com/junction-api/junction-go"
    "github.com/junction-api/junction-go/client"
    "github.com/junction-api/junction-go/option"
)

c := client.NewClient(
    option.WithApiKey("YOUR_API_KEY"),
    option.WithBaseURL(junction.Environments.Sandbox),
)

tokenResponse, err := c.Link.Token(context.TODO(), &junction.LinkTokenExchange{
    UserId: "<user_id>",
})
if err != nil {
    return err
}

response, err := c.Link.GenerateOauthLink(context.TODO(), &junction.GenerateOauthLinkLinkRequest{
    OauthProvider:  junction.OAuthProvidersOura,
    VitalLinkToken: &tokenResponse.LinkToken,
})
if err != nil {
    return err
}
fmt.Printf("Received data %s\n", response)
{
  "auth_type": "oauth",
  "description": "Garmin Watches",
  "id": 1,
  "logo": "https://garmin.com",
  "name": "Garmin",
  "oauth_url": "https://garmin_aouth_url.com",
  "slug": "garmin"
}
{
"detail": "<unknown>"
}
curl --request GET \
     --url {{BASE_URL}}/v2/link/provider/oauth/{oauth_provider} \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'x-vital-link-token: <VITAL-LINK-TOKEN>'
import { JunctionClient, JunctionEnvironment, OAuthProviders } from "@junction-api/sdk";

const client = new JunctionClient({
    apiKey: "YOUR_API_KEY",
    environment: JunctionEnvironment.Sandbox,
});

const tokenResponse = await client.link.token({ userId: "<user_id>" });

const data = await client.link.generateOauthLink({
    oauthProvider: OAuthProviders.Oura,
    vitalLinkToken: tokenResponse.linkToken,
});
from junction import Junction, OAuthProviders
from junction.environment import JunctionEnvironment

client = Junction(
    api_key="YOUR_API_KEY",
    environment=JunctionEnvironment.SANDBOX,
)

token_response = client.link.token(user_id="<user_id>")

data = client.link.generate_oauth_link(
    OAuthProviders.OURA,
    vital_link_token=token_response.link_token,
)
import com.junction.api.Junction;
import com.junction.api.core.Environment;
import com.junction.api.resources.link.requests.GenerateOauthLinkLinkRequest;
import com.junction.api.resources.link.requests.LinkTokenExchange;
import com.junction.api.types.OAuthProviders;

Junction client = Junction.builder()
    .apiKey("YOUR_API_KEY")
    .environment(Environment.SANDBOX)
    .build();

var tokenResponse = client.link().token(
    LinkTokenExchange.builder()
        .userId("<user_id>")
        .build()
);

var data = client.link().generateOauthLink(
    OAuthProviders.OURA,
    GenerateOauthLinkLinkRequest.builder()
        .vitalLinkToken(tokenResponse.getLinkToken())
        .build()
);
import (
    "context"

    junction "github.com/junction-api/junction-go"
    "github.com/junction-api/junction-go/client"
    "github.com/junction-api/junction-go/option"
)

c := client.NewClient(
    option.WithApiKey("YOUR_API_KEY"),
    option.WithBaseURL(junction.Environments.Sandbox),
)

tokenResponse, err := c.Link.Token(context.TODO(), &junction.LinkTokenExchange{
    UserId: "<user_id>",
})
if err != nil {
    return err
}

response, err := c.Link.GenerateOauthLink(context.TODO(), &junction.GenerateOauthLinkLinkRequest{
    OauthProvider:  junction.OAuthProvidersOura,
    VitalLinkToken: &tokenResponse.LinkToken,
})
if err != nil {
    return err
}
fmt.Printf("Received data %s\n", response)

Authorizations

x-vital-api-key
string
header
required

Headers

x-vital-link-token
string | null

Path Parameters

oauth_provider
enum<string>
required

ℹ️ This enum is non-exhaustive.

Available options:
oura,
fitbit,
garmin,
strava,
wahoo,
ihealth,
withings,
google_fit,
dexcom_v3,
polar,
cronometer,
omron,
whoop_v2,
my_fitness_pal_v2,
ultrahuman,
runkeeper,
google_health

Response

Successful Response

name
string
required
slug
string
required
description
string
required
id
integer
required
group
string | null
oauth_url
string | null
auth_type
enum<string> | null
default:oauth

ℹ️ This enum is non-exhaustive.

Available options:
oauth,
team_oauth,
sdk,
password,
email,
app,
source_type
enum<string> | null
default:device

ℹ️ This enum is non-exhaustive.

Available options:
app,
ble,
device,
lab,
provider
is_active
boolean | null
default:true
backfill_num_days
integer | null