auth.oauth.app.set
curl --request POST \
--url https://platform.trylath.com/auth/oauth/app/set \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clientId": "<string>",
"clientSecret": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({clientId: '<string>', clientSecret: '<string>'})
};
fetch('https://platform.trylath.com/auth/oauth/app/set', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/auth/oauth/app/set"
payload = {
"clientId": "<string>",
"clientSecret": "<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/app/set"
payload := strings.NewReader("{\n \"clientId\": \"<string>\",\n \"clientSecret\": \"<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": {
"provider": "<string>",
"mode": "live",
"clientId": "<string>",
"source": "own",
"callbackUrl": "<string>"
}
}auth.oauth.app.set
Gives this project its own OAuth app for a provider, so the consent screen shows the customer’s name instead of Lath’s. Registered per mode, because live and test send people back to different addresses. The secret is stored sealed and never returned. Without one, the deployment’s shared app is used.
POST
/
auth
/
oauth
/
app
/
set
auth.oauth.app.set
curl --request POST \
--url https://platform.trylath.com/auth/oauth/app/set \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clientId": "<string>",
"clientSecret": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({clientId: '<string>', clientSecret: '<string>'})
};
fetch('https://platform.trylath.com/auth/oauth/app/set', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/auth/oauth/app/set"
payload = {
"clientId": "<string>",
"clientSecret": "<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/app/set"
payload := strings.NewReader("{\n \"clientId\": \"<string>\",\n \"clientSecret\": \"<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": {
"provider": "<string>",
"mode": "live",
"clientId": "<string>",
"source": "own",
"callbackUrl": "<string>"
}
}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
Available options:
google, microsoft, github Which rung this app is registered for; its redirect URI must match that rung's callback
Available options:
live, test Required string length:
1 - 500Required string length:
1 - 500Last modified on September 13, 2026
Was this page helpful?

