MetriBeacon
Menu

POST Publish a tested SSO configuration

/api/v1/enterprise/connections/{connection}/publish

Publish a tested SSO configuration. Owner configuration requires a fresh action-bound email confirmation. Test the configuration before enabling required SSO. Personal and unrelated company access remain independent.

On this page

Access and permissions

Publish a tested SSO configuration. Owner configuration requires a fresh action-bound email confirmation. Test the configuration before enabling required SSO. Personal and unrelated company access remain independent.

Browser session: __Host-mb_session cookie.

Parameters and headers

FieldLocationType and limitsRequiredMeaning
connectionPathstring; {"format":"uuid"}YesCompany connection identifier.

Request body

FieldType and limitsRequiredMeaning
$objectYes—
$.confirmationobjectYes—
$.confirmation.codestringYes—
$.confirmation.idstringYes—
$.revisionintegerYes—

Responses

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—
Stable error codes
test_required

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

application/json

FieldType and limitsRequiredMeaning
$objectYes—

Retries and asynchronous work

This change does not have a general retry guarantee. If the response is unclear, read the affected resource before trying again. Follow Retry-After waiting times and request new sign-in or action codes when they expire.

Request examples

Replace demo IDs, timestamps and placeholders with your own values. For a retry, keep the same IDs, time and content. These examples do not run requests on this page.

Keep login links, codes, cookies and keys private. Do not print them in logs or share them in support requests.

shell
curl --proto "=https" --tlsv1.2 --silent --show-error --max-time 10 --output /dev/null --write-out "%{http_code}\n" \
  --request POST \
  --header @"$HOME/.config/metribeacon/headers.txt" \
  --data-binary @"$HOME/.config/metribeacon/request-body" \
  "https://metribeacon.com/api/v1/enterprise/connections/{connection}/publish"
python
import json
from pathlib import Path
from urllib.request import Request, HTTPRedirectHandler, build_opener
from urllib.error import HTTPError

config = Path.home() / ".config/metribeacon"
headers = json.loads((config / "headers.json").read_text())
body = (config / "request-body").read_bytes()
request = Request("https://metribeacon.com/api/v1/enterprise/connections/{connection}/publish", data=body, headers=headers, method="POST")
class NoRedirect(HTTPRedirectHandler):
    def redirect_request(self, request, fp, code, message, headers, target):
        return None

try:
    with build_opener(NoRedirect()).open(request, timeout=10) as response:
        print(response.status)
except HTTPError as error:
    print(error.code)
    error.close()
javascript
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";

const config = join(homedir(), ".config/metribeacon");
const headers = JSON.parse(await readFile(join(config, "headers.json"), "utf8"));
const body = await readFile(join(config, "request-body"));
const response = await fetch("https://metribeacon.com/api/v1/enterprise/connections/{connection}/publish", {
  method: "POST", headers, redirect: "manual",
  body,
  signal: AbortSignal.timeout(10000),
});
console.log(response.status);
await response.body?.cancel();
go
package main

import (
 "encoding/json"
 "fmt"
 "net/http"
 "os"
 "path/filepath"
 "time"
 "bytes"
)

func main() {
 home, err := os.UserHomeDir(); if err != nil { panic("local configuration unavailable") }
 config := filepath.Join(home, ".config/metribeacon")
 raw, err := os.ReadFile(filepath.Join(config,"headers.json")); if err != nil { panic("local headers unavailable") }
 var headers map[string]string
 if json.Unmarshal(raw,&headers) != nil { panic("invalid local headers") }
 body, err := os.ReadFile(filepath.Join(config,"request-body")); if err != nil { panic("local request unavailable") }
 request, err := http.NewRequest("POST","https://metribeacon.com/api/v1/enterprise/connections/{connection}/publish",bytes.NewReader(body))
 if err != nil { panic("request unavailable") }
 for key,value := range headers { request.Header.Set(key,value) }
 client := &http.Client{Timeout:10*time.Second,CheckRedirect:func(*http.Request,[]*http.Request)error{return http.ErrUseLastResponse}}
 response, err := client.Do(request); if err != nil { panic("request failed; credentials and response omitted") }
 defer response.Body.Close()
 fmt.Println(response.StatusCode)
}
  • HTTP API, OAuth and MCP

    Find the user API endpoints, their permissions, fields, examples and response formats.

  • GET Read a company connection

    Read a company connection. Owner configuration requires a fresh action-bound email confirmation. Test the configuration before enabling required SSO. Personal and unrelated company access remain independent.

  • PUT Save an SSO configuration draft

    Save an SSO configuration draft. Owner configuration requires a fresh action-bound email confirmation. Test the configuration before enabling required SSO. Personal and unrelated company access remain independent.

  • DELETE Delete a company connection

    Delete a company connection. Owner configuration requires a fresh action-bound email confirmation. Test the configuration before enabling required SSO. Personal and unrelated company access remain independent.