auth.oauth.start
curl --request POST \
--url https://platform.trylath.com/auth/oauth/start \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"redirectTo": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({redirectTo: '<string>'})
};
fetch('https://platform.trylath.com/auth/oauth/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/auth/oauth/start"
payload = { "redirectTo": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/auth/oauth/start"
payload := strings.NewReader("{\n \"redirectTo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"activityId": "<string>",
"result": {
"challengeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"state": "<string>",
"provider": "<string>",
"expiresInSeconds": 0
}
}auth.oauth.start
Begins a sign-in with Google, Microsoft or GitHub. Returns the URL to send the person to, and the challenge id the callback needs. The state is single-use and bound to this environment and this provider; the PKCE verifier never leaves Lath. Refuses when the method is turned off for this environment, or when neither this project nor the deployment has an app registered for that provider.
POST
/
auth
/
oauth
/
start
auth.oauth.start
curl --request POST \
--url https://platform.trylath.com/auth/oauth/start \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"redirectTo": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({redirectTo: '<string>'})
};
fetch('https://platform.trylath.com/auth/oauth/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/auth/oauth/start"
payload = { "redirectTo": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/auth/oauth/start"
payload := strings.NewReader("{\n \"redirectTo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"activityId": "<string>",
"result": {
"challengeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"state": "<string>",
"provider": "<string>",
"expiresInSeconds": 0
}
}Authorizations
A Lath API key: lath_live_sk… or lath_test_sk… on a server, lath_live_pk… or lath_test_pk… in a browser.
Headers
Replays the stored response for the same key and input; refuses different input.
Body
application/json
Last modified on September 13, 2026
Was this page helpful?

