Skip to main content

BusinessApplicationsAPI

A Business Application groups machine identities (for example AI agents or applications) under a common owner and sanctioned status. Business Applications can be defined out-of-the-box, discovered from a source, or created by an administrator. Signatures on a Business Application drive automatic correlation of machine identities to it; sanctioned status is independent metadata that machine identities inherit once linked. All URIs are relative to https://sailpoint.api.identitynow.com

MethodHTTP requestDescription
create-business-application-v1Post /business-applications/v1Create Business Application
get-business-application-v1Get /business-applications/v1/{id}Get Business Application
list-business-applications-v1Get /business-applications/v1List Business Applications
update-business-application-v1Patch /business-applications/v1/{id}Update Business Application

create-business-application-v1​

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

configuration = Configuration()
configuration.Experimental = true

Create Business Application Creates a custom Business Application. Requires the idn:business-application:create right, the Machine Identity Security product to be enabled, and the custom Business Application feature to be enabled for the tenant. The name must be unique within the tenant, and any provided signatures must not already be assigned to another Business Application.

API Spec

Path Parameters​

Other Parameters​

Other parameters are passed through a pointer to a apiCreateBusinessApplicationV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]
businessApplicationBusinessApplication

Return type​

BusinessApplication

HTTP request headers​

  • Content-Type: application/json
  • Accept: application/json

Example​

package main

import (
"context"
"fmt"
"os"
"encoding/json"
business_applications "github.com/sailpoint-oss/golang-sdk/v3/business_applications"
sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
businessapplicationJson := []byte(`{
"owner" : {
"name" : "William Wilson",
"id" : "2c91808568c529c60168cca6f90c1313",
"type" : "IDENTITY"
},
"vendor" : "Cursor",
"created" : "2026-01-15T13:45:12.312Z",
"origin" : "",
"name" : "Cursor",
"description" : "AI coding assistant used by the platform engineering team.",
"modified" : "2026-02-20T09:31:47.882Z",
"id" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"source" : {
"name" : "William Wilson",
"id" : "2c91808568c529c60168cca6f90c1313",
"type" : "IDENTITY"
},
"signatures" : [ {
"name" : "cursor",
"type" : "AI Agent"
}, {
"name" : "cursor",
"type" : "AI Agent"
} ],
"additionalOwners" : [ {
"name" : "William Wilson",
"id" : "2c91808568c529c60168cca6f90c1313",
"type" : "IDENTITY"
}, {
"name" : "William Wilson",
"id" : "2c91808568c529c60168cca6f90c1313",
"type" : "IDENTITY"
} ],
"sanctionedStatus" : ""
}`) // BusinessApplication |

var businessApplication business_applications.BusinessApplication
if err := json.Unmarshal(businessapplicationJson, &businessApplication); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.BusinessApplicationsAPI.CreateBusinessApplicationV1(context.Background()).XSailPointExperimental(xSailPointExperimental).BusinessApplication(businessApplication).Execute()
//resp, r, err := apiClient.BusinessApplicationsAPI.CreateBusinessApplicationV1(context.Background()).XSailPointExperimental(xSailPointExperimental).BusinessApplication(businessApplication).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `BusinessApplicationsAPI.CreateBusinessApplicationV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `CreateBusinessApplicationV1`: BusinessApplication
fmt.Fprintf(os.Stdout, "Response from `BusinessApplicationsAPI.CreateBusinessApplicationV1`: %v\n", resp)
}

[Back to top]

get-business-application-v1​

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

configuration = Configuration()
configuration.Experimental = true

Get Business Application Returns a single Business Application by ID for the requesting tenant. Requires the idn:business-application:read right and the Machine Identity Security product to be enabled.

API Spec

Path Parameters​

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringBusiness Application ID.

Other Parameters​

Other parameters are passed through a pointer to a apiGetBusinessApplicationV1Request struct via the builder pattern

NameTypeDescriptionNotes

xSailPointExperimental | string | Use this header to enable this experimental API. | [default to "true"]

Return type​

BusinessApplication

HTTP request headers​

  • Content-Type: Not defined
  • Accept: application/json

Example​

package main

import (
"context"
"fmt"
"os"


sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
id := `a1b2c3d4-e5f6-7890-abcd-ef1234567890` // string | Business Application ID. # string | Business Application ID.
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.BusinessApplicationsAPI.GetBusinessApplicationV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Execute()
//resp, r, err := apiClient.BusinessApplicationsAPI.GetBusinessApplicationV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `BusinessApplicationsAPI.GetBusinessApplicationV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetBusinessApplicationV1`: BusinessApplication
fmt.Fprintf(os.Stdout, "Response from `BusinessApplicationsAPI.GetBusinessApplicationV1`: %v\n", resp)
}

[Back to top]

list-business-applications-v1​

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

configuration = Configuration()
configuration.Experimental = true

List Business Applications Returns the list of Business Applications defined for the requesting tenant. Requires the idn:business-application:read right and the Machine Identity Security product to be enabled for the tenant.

API Spec

Path Parameters​

Other Parameters​

Other parameters are passed through a pointer to a apiListBusinessApplicationsV1Request struct via the builder pattern

NameTypeDescriptionNotes
xSailPointExperimentalstringUse this header to enable this experimental API.[default to "true"]
filtersstringFilter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: id: eq name: eq, co vendor: eq, co signatures.type: eq, co signatures.name: eq, co source.name: eq, co sanctionedStatus: eq
sortersstringSort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: id, name, sanctionedStatus
countboolIf true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored. Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used. See V3 API Standard Collection Parameters for more information.[default to false]
limitint32Max number of results to return. See V3 API Standard Collection Parameters for more information.[default to 250]
offsetint32Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.[default to 0]

Return type​

[]BusinessApplication

HTTP request headers​

  • Content-Type: Not defined
  • Accept: application/json

Example​

package main

import (
"context"
"fmt"
"os"


sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
filters := `sanctionedStatus eq "SANCTIONED"` // string | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq, co* **vendor**: *eq, co* **signatures.type**: *eq, co* **signatures.name**: *eq, co* **source.name**: *eq, co* **sanctionedStatus**: *eq* (optional) # string | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq, co* **vendor**: *eq, co* **signatures.type**: *eq, co* **signatures.name**: *eq, co* **source.name**: *eq, co* **sanctionedStatus**: *eq* (optional)
sorters := `name` // string | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, sanctionedStatus** (optional) # string | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, sanctionedStatus** (optional)
count := true // bool | If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to false) # bool | If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to false)
limit := 250 // int32 | Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 250) # int32 | Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 250)
offset := 0 // int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 0) # int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 0)



configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.BusinessApplicationsAPI.ListBusinessApplicationsV1(context.Background()).XSailPointExperimental(xSailPointExperimental).Execute()
//resp, r, err := apiClient.BusinessApplicationsAPI.ListBusinessApplicationsV1(context.Background()).XSailPointExperimental(xSailPointExperimental).Filters(filters).Sorters(sorters).Count(count).Limit(limit).Offset(offset).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `BusinessApplicationsAPI.ListBusinessApplicationsV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `ListBusinessApplicationsV1`: []BusinessApplication
fmt.Fprintf(os.Stdout, "Response from `BusinessApplicationsAPI.ListBusinessApplicationsV1`: %v\n", resp)
}

[Back to top]

update-business-application-v1​

experimental

This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.

setting x-sailpoint-experimental header

on the configuration object you can set the x-sailpoint-experimental header to `true' to enable all experimantl endpoints within the SDK. Example:

configuration = Configuration()
configuration.Experimental = true

Update Business Application Updates a Business Application using the JSON Patch standard. Requires the idn:business-application:update right and the Machine Identity Security product to be enabled. Patchable fields: name, description, owner, additionalOwners, sanctionedStatus, and signatures. Modifying signatures additionally requires the custom Business Application feature to be enabled.

API Spec

Path Parameters​

NameTypeDescriptionNotes
ctxcontext.Contextcontext for authentication, logging, cancellation, deadlines, tracing, etc.
idstringBusiness Application ID.

Other Parameters​

Other parameters are passed through a pointer to a apiUpdateBusinessApplicationV1Request struct via the builder pattern

NameTypeDescriptionNotes

xSailPointExperimental | string | Use this header to enable this experimental API. | [default to "true"] jsonPatchOperation | []JsonPatchOperation | A JSON array of patch operations per RFC 6902. |

Return type​

BusinessApplication

HTTP request headers​

  • Content-Type: application/json-patch+json, application/json
  • Accept: application/json

Example​

package main

import (
"context"
"fmt"
"os"
"encoding/json"
business_applications "github.com/sailpoint-oss/golang-sdk/v3/business_applications"
sailpoint "github.com/sailpoint-oss/golang-sdk/v3"
)

func main() {
id := `a1b2c3d4-e5f6-7890-abcd-ef1234567890` // string | Business Application ID. # string | Business Application ID.
xSailPointExperimental := `true` // string | Use this header to enable this experimental API. (default to "true") # string | Use this header to enable this experimental API. (default to "true")
jsonpatchoperationJson := []byte(`[{"op":"replace","path":"/sanctionedStatus","value":"SANCTIONED"}]`) // []JsonPatchOperation | A JSON array of patch operations per RFC 6902.

var jsonPatchOperation []business_applications.JsonPatchOperation
if err := json.Unmarshal(jsonpatchoperationJson, &jsonPatchOperation); err != nil {
fmt.Println("Error:", err)
return
}


configuration := sailpoint.NewDefaultConfiguration()
apiClient := sailpoint.NewAPIClient(configuration)
resp, r, err := apiClient.BusinessApplicationsAPI.UpdateBusinessApplicationV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).JsonPatchOperation(jsonPatchOperation).Execute()
//resp, r, err := apiClient.BusinessApplicationsAPI.UpdateBusinessApplicationV1(context.Background(), id).XSailPointExperimental(xSailPointExperimental).JsonPatchOperation(jsonPatchOperation).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `BusinessApplicationsAPI.UpdateBusinessApplicationV1``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `UpdateBusinessApplicationV1`: BusinessApplication
fmt.Fprintf(os.Stdout, "Response from `BusinessApplicationsAPI.UpdateBusinessApplicationV1`: %v\n", resp)
}

[Back to top]