PingOne Platform APIs

Update Application (WS-Federation)

   

PUT {{apiPath}}/environments/{{envID}}/applications/{{appID}}

The PUT {{apiPath}}/environments/{{envID}}/applications operation updates and existing application resource to the specified environment. Set the protocol attribute in the request body to "WS_FED".

Prerequisites

Request Model

Base application data model (WS-Federation)

Refer to Applications base data model for complete descriptions.

Property Required? Type

audienceRestriction

N

Defaults to urn:federation:MicrosoftOnline.

enabled

Optional

Boolean (defaults to false)

description

Optional

String

homePageUrl

Optional

URL

icon.id

Optional

UUID

icon.href

Optional

URL

loginPageUrl

Optional

URL

name

Required

String

protocol

Required

WS_FED

type

Required

WEB_APP

Additional WS-Federation properties

Refer to Applications WS-Federation settings data model for complete descriptions.

Property Required? Type

assertionDuration

Optional

String

domainName

Required

Domain

idpSigning

Required

Object

idpSigning.algorithm

Required

Signing algorithm to use

idpSigning.key

Required

Object

idpSigning.key.id

Required

Signing key ID

replyUrl

Required

URL

sloEndpoint

N

Location for user single logout.

subjectNameIdentifierFormat

Optional

String

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "enabled": true,
    "name": "WS_FED App-2",
    "description": "Incredible",
    "type": "WEB_APP",
    "protocol": "WS_FED",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "loginPageUrl": "https://portal.office.com",
    "icon": {
        "id": "{{iconID}}",
        "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "domainName": "my.office365.domain",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "idpSigning": {
        "algorithm": "SHA256withRSA",
        "key": {
            "id": "{{keyID}}"
        }
    }
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff --request PUT '{{apiPath}}/environments/{{envID}}/applications/{{appID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "enabled": true,
    "name": "WS_FED App-2",
    "description": "Incredible",
    "type": "WEB_APP",
    "protocol": "WS_FED",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "loginPageUrl": "https://portal.office.com",
    "icon": {
        "id": "{{iconID}}",
        "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "domainName": "my.office365.domain",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "idpSigning": {
        "algorithm": "SHA256withRSA",
        "key": {
            "id": "{{keyID}}"
        }
    }
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/applications/{{appID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Put);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"    ""enabled"": true," + "\n" +
@"    ""name"": ""WS_FED App-2""," + "\n" +
@"    ""description"": ""Incredible""," + "\n" +
@"    ""type"": ""WEB_APP""," + "\n" +
@"    ""protocol"": ""WS_FED""," + "\n" +
@"    ""homePageUrl"": ""https://www.microsoft.com/en-ca/microsoft-365""," + "\n" +
@"    ""loginPageUrl"": ""https://portal.office.com""," + "\n" +
@"    ""icon"": {" + "\n" +
@"        ""id"": ""{{iconID}}""," + "\n" +
@"        ""href"": ""https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png""" + "\n" +
@"    }," + "\n" +
@"    ""domainName"": ""my.office365.domain""," + "\n" +
@"    ""replyUrl"": ""https://login.microsoftonline.com/login.srf""," + "\n" +
@"    ""sloEndpoint"": ""https://example.com/slo""," + "\n" +
@"    ""assertionDuration"": 500," + "\n" +
@"    ""subjectNameIdentifierFormat"": ""urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress""," + "\n" +
@"    ""idpSigning"": {" + "\n" +
@"        ""algorithm"": ""SHA256withRSA""," + "\n" +
@"        ""key"": {" + "\n" +
@"            ""id"": ""{{keyID}}""" + "\n" +
@"        }" + "\n" +
@"    }" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/environments/{{envID}}/applications/{{appID}}"
  method := "PUT"

  payload := strings.NewReader(`{
    "enabled": true,
    "name": "WS_FED App-2",
    "description": "Incredible",
    "type": "WEB_APP",
    "protocol": "WS_FED",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "loginPageUrl": "https://portal.office.com",
    "icon": {
        "id": "{{iconID}}",
        "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "domainName": "my.office365.domain",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "idpSigning": {
        "algorithm": "SHA256withRSA",
        "key": {
            "id": "{{keyID}}"
        }
    }
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
PUT /environments/{{envID}}/applications/{{appID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
    "enabled": true,
    "name": "WS_FED App-2",
    "description": "Incredible",
    "type": "WEB_APP",
    "protocol": "WS_FED",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "loginPageUrl": "https://portal.office.com",
    "icon": {
        "id": "{{iconID}}",
        "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "domainName": "my.office365.domain",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "idpSigning": {
        "algorithm": "SHA256withRSA",
        "key": {
            "id": "{{keyID}}"
        }
    }
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"enabled\": true,\n    \"name\": \"WS_FED App-2\",\n    \"description\": \"Incredible\",\n    \"type\": \"WEB_APP\",\n    \"protocol\": \"WS_FED\",\n    \"homePageUrl\": \"https://www.microsoft.com/en-ca/microsoft-365\",\n    \"loginPageUrl\": \"https://portal.office.com\",\n    \"icon\": {\n        \"id\": \"{{iconID}}\",\n        \"href\": \"https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png\"\n    },\n    \"domainName\": \"my.office365.domain\",\n    \"replyUrl\": \"https://login.microsoftonline.com/login.srf\",\n    \"sloEndpoint\": \"https://example.com/slo\",\n    \"assertionDuration\": 500,\n    \"subjectNameIdentifierFormat\": \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\",\n    \"idpSigning\": {\n        \"algorithm\": \"SHA256withRSA\",\n        \"key\": {\n            \"id\": \"{{keyID}}\"\n        }\n    }\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/applications/{{appID}}")
  .method("PUT", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/applications/{{appID}}",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "enabled": true,
    "name": "WS_FED App-2",
    "description": "Incredible",
    "type": "WEB_APP",
    "protocol": "WS_FED",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "loginPageUrl": "https://portal.office.com",
    "icon": {
      "id": "{{iconID}}",
      "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "domainName": "my.office365.domain",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "idpSigning": {
      "algorithm": "SHA256withRSA",
      "key": {
        "id": "{{keyID}}"
      }
    }
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '{{apiPath}}/environments/{{envID}}/applications/{{appID}}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "enabled": true,
    "name": "WS_FED App-2",
    "description": "Incredible",
    "type": "WEB_APP",
    "protocol": "WS_FED",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "loginPageUrl": "https://portal.office.com",
    "icon": {
      "id": "{{iconID}}",
      "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "domainName": "my.office365.domain",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "idpSigning": {
      "algorithm": "SHA256withRSA",
      "key": {
        "id": "{{keyID}}"
      }
    }
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests
import json

url = "{{apiPath}}/environments/{{envID}}/applications/{{appID}}"

payload = json.dumps({
  "enabled": True,
  "name": "WS_FED App-2",
  "description": "Incredible",
  "type": "WEB_APP",
  "protocol": "WS_FED",
  "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
  "loginPageUrl": "https://portal.office.com",
  "icon": {
    "id": "{{iconID}}",
    "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
  },
  "domainName": "my.office365.domain",
  "replyUrl": "https://login.microsoftonline.com/login.srf",
  "sloEndpoint": "https://example.com/slo",
  "assertionDuration": 500,
  "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
  "idpSigning": {
    "algorithm": "SHA256withRSA",
    "key": {
      "id": "{{keyID}}"
    }
  }
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/applications/{{appID}}');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n    "enabled": true,\n    "name": "WS_FED App-2",\n    "description": "Incredible",\n    "type": "WEB_APP",\n    "protocol": "WS_FED",\n    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",\n    "loginPageUrl": "https://portal.office.com",\n    "icon": {\n        "id": "{{iconID}}",\n        "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"\n    },\n    "domainName": "my.office365.domain",\n    "replyUrl": "https://login.microsoftonline.com/login.srf",\n    "sloEndpoint": "https://example.com/slo",\n    "assertionDuration": 500,\n    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",\n    "idpSigning": {\n        "algorithm": "SHA256withRSA",\n        "key": {\n            "id": "{{keyID}}"\n        }\n    }\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "json"
require "net/http"

url = URI("{{apiPath}}/environments/{{envID}}/applications/{{appID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "enabled": true,
  "name": "WS_FED App-2",
  "description": "Incredible",
  "type": "WEB_APP",
  "protocol": "WS_FED",
  "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
  "loginPageUrl": "https://portal.office.com",
  "icon": {
    "id": "{{iconID}}",
    "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
  },
  "domainName": "my.office365.domain",
  "replyUrl": "https://login.microsoftonline.com/login.srf",
  "sloEndpoint": "https://example.com/slo",
  "assertionDuration": 500,
  "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
  "idpSigning": {
    "algorithm": "SHA256withRSA",
    "key": {
      "id": "{{keyID}}"
    }
  }
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"enabled\": true,\n    \"name\": \"WS_FED App-2\",\n    \"description\": \"Incredible\",\n    \"type\": \"WEB_APP\",\n    \"protocol\": \"WS_FED\",\n    \"homePageUrl\": \"https://www.microsoft.com/en-ca/microsoft-365\",\n    \"loginPageUrl\": \"https://portal.office.com\",\n    \"icon\": {\n        \"id\": \"{{iconID}}\",\n        \"href\": \"https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png\"\n    },\n    \"domainName\": \"my.office365.domain\",\n    \"replyUrl\": \"https://login.microsoftonline.com/login.srf\",\n    \"sloEndpoint\": \"https://example.com/slo\",\n    \"assertionDuration\": 500,\n    \"subjectNameIdentifierFormat\": \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\",\n    \"idpSigning\": {\n        \"algorithm\": \"SHA256withRSA\",\n        \"key\": {\n            \"id\": \"{{keyID}}\"\n        }\n    }\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/applications/{{appID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "PUT"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

200 OK

{
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/applications/bd9ccf5d-0fec-484d-a2da-38c719798af7"
        },
        "environment": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        },
        "attributes": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/applications/bd9ccf5d-0fec-484d-a2da-38c719798af7/attributes"
        },
        "idpSigningKey": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/keys/cfedd3e5-90c6-4957-ae90-942009cfb377"
        }
    },
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "id": "bd9ccf5d-0fec-484d-a2da-38c719798af7",
    "name": "WS_FED App-2",
    "description": "Incredible",
    "enabled": true,
    "type": "WEB_APP",
    "loginPageUrl": "https://portal.office.com",
    "homePageUrl": "https://www.microsoft.com/en-ca/microsoft-365",
    "icon": {
        "id": "58a03414-4a8c-4adf-8040-36f91a96723e",
        "href": "https://uploads.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/images/492cf828-14a8-4794-83c2-b9bf4fe796c6_843714e5-1590-4585-8aec-085e33141dbf_original.png"
    },
    "protocol": "WS_FED",
    "createdAt": "2026-01-07T16:02:14.610Z",
    "updatedAt": "2026-01-07T22:09:24.169Z",
    "clientId": "bd9ccf5d-0fec-484d-a2da-38c719798af7",
    "replyUrl": "https://login.microsoftonline.com/login.srf",
    "subjectNameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
    "domainName": "my.office365.domain",
    "sloEndpoint": "https://example.com/slo",
    "assertionDuration": 500,
    "idpSigning": {
        "key": {
            "id": "cfedd3e5-90c6-4957-ae90-942009cfb377"
        },
        "algorithm": "SHA256withRSA"
    },
    "audienceRestriction": "urn:federation:MicrosoftOnline"
}