Environments

Get all environments

get

Retrieves environments with optional filtering. Returns grouped by category when no specific category filter is provided, or a flat array when filtering by a specific category. Each environment includes current lock status and queue information.

Authorizations
Query parameters
repositoryIdentifierstringOptional

Filter by repository identifier (e.g., owner/repo)

Example: myorg/myrepo
categorystring · enumOptional

Filter by environment category. When specified, returns a flat array of that category only.

Possible values:
isActivebooleanOptional

Filter by active status

Example: true
branchstringOptional

Filter by git branch

Example: main
Responses
200

List of environments with lock status. Returns GroupedEnvironmentsDto when no category filter, or EnvironmentDto[] when category is specified. Each environment includes isLocked, lockedBy, lockExpiresAt, lockExpiresInSeconds, and detailed lockStatus object.

application/json
get
GET /sfp/api/environments HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
200

List of environments with lock status. Returns GroupedEnvironmentsDto when no category filter, or EnvironmentDto[] when category is specified. Each environment includes isLocked, lockedBy, lockExpiresAt, lockExpiresInSeconds, and detailed lockStatus object.

{
  "dev": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "repositoryIdentifier": "myorg/myrepo",
      "repositoryName": "myrepo",
      "name": "dev1",
      "description": "Development environment",
      "category": "dev",
      "salesforceUsername": "[email protected]",
      "devHubUsername": null,
      "isActive": true,
      "isDefault": false,
      "isLocked": false,
      "lockedBy": null,
      "lockExpiresAt": null,
      "lockExpiresInSeconds": null,
      "lockStatus": {
        "isLocked": false,
        "currentLock": null,
        "queuedLocks": []
      },
      "metadata": {},
      "tags": [
        "development"
      ],
      "branch": "develop",
      "orchestrationOrder": null,
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "test": [
    {
      "id": "223e4567-e89b-12d3-a456-426614174000",
      "repositoryIdentifier": "myorg/myrepo",
      "repositoryName": "myrepo",
      "name": "test1",
      "description": "Test environment",
      "category": "test",
      "salesforceUsername": "[email protected]",
      "devHubUsername": null,
      "isActive": true,
      "isDefault": false,
      "isLocked": true,
      "lockedBy": "ci-pipeline",
      "lockExpiresAt": "2024-01-15T15:00:00Z",
      "lockExpiresInSeconds": 3600,
      "lockStatus": {
        "isLocked": true,
        "currentLock": {
          "lockedBy": "ci-pipeline",
          "lockReason": "Running integration tests",
          "expiresAt": "2024-01-15T15:00:00Z",
          "expiresInSeconds": 3600
        },
        "queuedLocks": [
          {
            "position": 1,
            "requestedBy": "deploy-bot",
            "lockReason": "Deployment to test",
            "estimatedWaitSeconds": 3600,
            "ticketId": "ticket_456def"
          }
        ]
      },
      "metadata": {
        "tier": "sandbox"
      },
      "tags": [
        "testing",
        "automated"
      ],
      "branch": "develop",
      "orchestrationOrder": null,
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-15T14:00:00Z"
    }
  ],
  "snapshot": [],
  "release": [
    {
      "id": "323e4567-e89b-12d3-a456-426614174000",
      "repositoryIdentifier": "myorg/myrepo",
      "repositoryName": "myrepo",
      "name": "prod",
      "description": "Production environment",
      "category": "release",
      "salesforceUsername": "[email protected]",
      "devHubUsername": null,
      "isActive": true,
      "isDefault": true,
      "isLocked": false,
      "lockedBy": null,
      "lockExpiresAt": null,
      "lockExpiresInSeconds": null,
      "lockStatus": {
        "isLocked": false,
        "currentLock": null,
        "queuedLocks": []
      },
      "metadata": {
        "region": "us-west",
        "tier": "enterprise"
      },
      "tags": [
        "critical",
        "monitored"
      ],
      "branch": "main",
      "orchestrationOrder": 1,
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ]
}

Create a new environment

post

Creates a new environment linked to a repository and Salesforce org. The environment can be locked using the mutex system for exclusive access.

Authorizations
Body
stringOptional
Responses
201

Environment created successfully with lock status information

application/json
ResponseanyExample: {"id":"456e7890-e89b-12d3-a456-426614174001","repositoryIdentifier":"myorg/myrepo","repositoryName":"myrepo","name":"prod","description":"Production environment","category":"release","salesforceUsername":"[email protected]","devHubUsername":null,"isActive":true,"isDefault":true,"isLocked":false,"lockedBy":null,"lockExpiresAt":null,"lockExpiresInSeconds":null,"lockStatus":{"isLocked":false,"currentLock":null,"queuedLocks":[]},"metadata":{"region":"us-west","tier":"enterprise"},"tags":["critical","monitored"],"branch":"main","orchestrationOrder":null,"createdAt":"2024-01-01T00:00:00Z","updatedAt":"2024-01-01T00:00:00Z","createdBy":"[email protected]","updatedBy":"[email protected]"}
post
POST /sfp/api/environments HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 287

{
  "repositoryIdentifier": "myorg/myrepo",
  "name": "prod",
  "description": "Production environment",
  "category": "release",
  "salesforceUsername": "[email protected]",
  "isActive": true,
  "isDefault": true,
  "metadata": {
    "region": "us-west",
    "tier": "enterprise"
  },
  "tags": [
    "critical",
    "monitored"
  ],
  "branch": "main"
}
{
  "id": "456e7890-e89b-12d3-a456-426614174001",
  "repositoryIdentifier": "myorg/myrepo",
  "repositoryName": "myrepo",
  "name": "prod",
  "description": "Production environment",
  "category": "release",
  "salesforceUsername": "[email protected]",
  "devHubUsername": null,
  "isActive": true,
  "isDefault": true,
  "isLocked": false,
  "lockedBy": null,
  "lockExpiresAt": null,
  "lockExpiresInSeconds": null,
  "lockStatus": {
    "isLocked": false,
    "currentLock": null,
    "queuedLocks": []
  },
  "metadata": {
    "region": "us-west",
    "tier": "enterprise"
  },
  "tags": [
    "critical",
    "monitored"
  ],
  "branch": "main",
  "orchestrationOrder": null,
  "createdAt": "2024-01-01T00:00:00Z",
  "updatedAt": "2024-01-01T00:00:00Z",
  "createdBy": "[email protected]",
  "updatedBy": "[email protected]"
}

Get orchestration order for environments

get

Retrieves the deployment orchestration order for environments within a specific category in a repository. Returns an ordered array of environment names.

Authorizations
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Example: myorg/myrepo
categorystring · enumRequired

Environment category

Possible values:
includeInactivestringRequired
Responses
200

Ordered array of environment names

application/json
Responsestring[]Example: ["dev1","dev2","dev3"]
get
GET /sfp/api/environments/orchestration-order?repositoryIdentifier=myorg%2Fmyrepo&category=dev&includeInactive=text HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
[
  "dev1",
  "dev2",
  "dev3"
]

Update orchestration order for environments

put

Updates the deployment orchestration order for environments within a specific category in a repository. Replaces the entire order with the provided array.

Authorizations
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Example: myorg/myrepo
categorystring · enumRequired

Environment category

Possible values:
includeInactivestringRequired
Body
stringOptional
Responses
200

Updated orchestration order

application/json
Responsestring[]Example: ["dev3","dev1","dev2"]
put
PUT /sfp/api/environments/orchestration-order?repositoryIdentifier=myorg%2Fmyrepo&category=dev&includeInactive=text HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 43

{
  "environmentOrder": [
    "dev1",
    "dev2",
    "dev3"
  ]
}
[
  "dev3",
  "dev1",
  "dev2"
]

Get environment by name and repository

get

Retrieves detailed information about a specific environment by its name and repository identifier

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Example: myorg/myrepo
includeAuthUrlstring · enumOptional

Include SFDX auth URL in response (requires owner/application role)

Possible values:
Responses
200

Environment details

get
GET /sfp/api/environments/by-name/{name}?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*

No content

Delete environment by name

delete

Permanently deletes an environment by name and repository. Cannot delete a locked environment.

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Example: myorg/myrepo
Responses
204

Environment deleted successfully

delete
DELETE /sfp/api/environments/by-name/{name}?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*

No content

Update environment by name

patch

Updates environment properties by name and repository. Only provided fields will be updated.

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Example: myorg/myrepo
Body
stringOptional
Responses
200

Environment updated successfully

patch
PATCH /sfp/api/environments/by-name/{name}?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"

No content

Get environment by ID

get

Retrieves detailed information about a specific environment including its lock status

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
Query parameters
includeAuthUrlstring · enumOptional

Include SFDX auth URL in response (requires owner/application role)

Possible values:
Responses
200

Environment details

application/json
ResponseanyExample: {"id":"456e7890-e89b-12d3-a456-426614174001","repositoryIdentifier":"myorg/my-salesforce-project","repositoryName":"my-salesforce-project","name":"prod","description":"Production environment","category":"release","salesforceUsername":"[email protected]","isActive":true,"isDefault":true,"isLocked":true,"lockedBy":"deploy-bot","metadata":{"region":"us-west","tier":"enterprise"},"tags":["critical","monitored"],"branch":"main","createdAt":"2024-01-01T00:00:00Z","updatedAt":"2024-01-15T12:00:00Z","createdBy":"user123","updatedBy":"user456"}
get
GET /sfp/api/environments/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "id": "456e7890-e89b-12d3-a456-426614174001",
  "repositoryIdentifier": "myorg/my-salesforce-project",
  "repositoryName": "my-salesforce-project",
  "name": "prod",
  "description": "Production environment",
  "category": "release",
  "salesforceUsername": "[email protected]",
  "isActive": true,
  "isDefault": true,
  "isLocked": true,
  "lockedBy": "deploy-bot",
  "metadata": {
    "region": "us-west",
    "tier": "enterprise"
  },
  "tags": [
    "critical",
    "monitored"
  ],
  "branch": "main",
  "createdAt": "2024-01-01T00:00:00Z",
  "updatedAt": "2024-01-15T12:00:00Z",
  "createdBy": "user123",
  "updatedBy": "user456"
}

Delete environment

delete

Permanently deletes an environment. Cannot delete a locked environment. All associated tags and audit records will be deleted.

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
Responses
204

Environment deleted successfully

delete
DELETE /sfp/api/environments/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*

No content

Update environment

patch

Updates environment properties. Only provided fields will be updated. Changing salesforceUsername will validate the new org exists.

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
Body
stringOptional
Responses
200

Environment updated successfully with current lock status

application/json
ResponseanyExample: {"id":"456e7890-e89b-12d3-a456-426614174001","repositoryIdentifier":"myorg/myrepo","repositoryName":"myrepo","name":"prod","description":"Updated production environment","category":"release","salesforceUsername":"[email protected]","devHubUsername":null,"isActive":true,"isDefault":true,"isLocked":false,"lockedBy":null,"lockExpiresAt":null,"lockExpiresInSeconds":null,"lockStatus":{"isLocked":false,"currentLock":null,"queuedLocks":[]},"metadata":{"region":"us-west","tier":"enterprise"},"tags":["production","critical","monitored"],"branch":"main","orchestrationOrder":1,"createdAt":"2024-01-01T00:00:00Z","updatedAt":"2024-01-15T16:00:00Z","createdBy":"[email protected]","updatedBy":"[email protected]"}
patch
PATCH /sfp/api/environments/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "tags": [
    "production",
    "critical",
    "monitored"
  ]
}
{
  "id": "456e7890-e89b-12d3-a456-426614174001",
  "repositoryIdentifier": "myorg/myrepo",
  "repositoryName": "myrepo",
  "name": "prod",
  "description": "Updated production environment",
  "category": "release",
  "salesforceUsername": "[email protected]",
  "devHubUsername": null,
  "isActive": true,
  "isDefault": true,
  "isLocked": false,
  "lockedBy": null,
  "lockExpiresAt": null,
  "lockExpiresInSeconds": null,
  "lockStatus": {
    "isLocked": false,
    "currentLock": null,
    "queuedLocks": []
  },
  "metadata": {
    "region": "us-west",
    "tier": "enterprise"
  },
  "tags": [
    "production",
    "critical",
    "monitored"
  ],
  "branch": "main",
  "orchestrationOrder": 1,
  "createdAt": "2024-01-01T00:00:00Z",
  "updatedAt": "2024-01-15T16:00:00Z",
  "createdBy": "[email protected]",
  "updatedBy": "[email protected]"
}

Request a lock on an environment

post

Requests a lock on an environment. Returns a ticket ID immediately. The lock is queued if the environment is already locked. Use the /acquire endpoint with the ticket ID to wait for and obtain the actual lock. The lock will automatically expire after the specified duration.

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
Query parameters
repositoryNamestringRequired

Repository name for mutex resource key

Example: my-salesforce-project
Body
stringOptional
Responses
201

Environment locked successfully

application/json
post
POST /sfp/api/environments/{id}/lock?repositoryName=my-salesforce-project HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 65

{
  "leaseDurationSeconds": 3600,
  "reason": "Deploying release v2.1.0"
}
{
  "ticketId": "ticket_789abc12-3def-4567-8901-234567890abc"
}

Acquire a previously requested lock

put

Attempts to acquire a lock that was previously requested. This endpoint will wait up to the specified timeout for the lock to become available. Returns immediately if the lock is already acquired. Returns Salesforce credentials only when the lock is successfully acquired.

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
ticketIdstringRequired

Lock ticket ID obtained when requesting the lock

Example: ticket_789abc12-3def-4567-8901-234567890abc
Query parameters
repositoryNamestringRequired

Repository name for mutex resource key

Example: my-salesforce-project
Responses
200

Lock acquired successfully with sensitive credentials

application/json
put
PUT /sfp/api/environments/{id}/lock/{ticketId}/acquire?repositoryName=my-salesforce-project HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "status": "acquired",
  "environmentId": "456e7890-e89b-12d3-a456-426614174001",
  "environmentName": "production",
  "salesforceUsername": "[email protected]",
  "sfdxAuthUrl": "force://PlatformCLI::...",
  "frontDoorUrl": "https://mycompany.my.salesforce.com/secur/frontdoor.jsp?sid=..."
}

Unlock an environment

delete

Releases a lock on an environment using the ticket ID obtained when locking. Only the lock holder can release it unless admin/owner role.

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
ticketIdstringRequired

Lock ticket ID obtained when locking

Example: ticket_789abc12-3def-4567-8901-234567890abc
Query parameters
repositoryNamestringRequired

Repository name for mutex resource key

Example: my-salesforce-project
Responses
204

Environment unlocked successfully

delete
DELETE /sfp/api/environments/{id}/lock/{ticketId}?repositoryName=my-salesforce-project HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*

No content

Request a lock on an environment by name

post

Requests a lock on an environment. Returns a ticket ID immediately. The lock is queued if the environment is already locked. Use the /acquire endpoint with the ticket ID to wait for and obtain the actual lock. The lock will automatically expire after the specified duration.

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
Query parameters
repositoryIdentifierstringRequired

Repository identifier (owner/repo)

Example: myorg/myrepo
Body
stringOptional
Responses
201

Environment locked successfully

application/json
post
POST /sfp/api/environments/by-name/{name}/lock?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 63

{
  "leaseDurationMinutes": 60,
  "reason": "Deploying release v2.1.0"
}
{
  "ticketId": "ticket_789abc12-3def-4567-8901-234567890abc"
}

Acquire a previously requested lock by name

put

Attempts to acquire a lock that was previously requested. This endpoint will wait up to the specified timeout for the lock to become available. Returns immediately if the lock is already acquired. Returns Salesforce credentials only when the lock is successfully acquired.

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
ticketIdstringRequired

Lock ticket ID obtained when requesting the lock

Example: ticket_789abc12-3def-4567-8901-234567890abc
Query parameters
repositoryIdentifierstringRequired

Repository identifier (owner/repo)

Example: myorg/myrepo
Responses
200

Lock acquired successfully with sensitive credentials

application/json
put
PUT /sfp/api/environments/by-name/{name}/lock/{ticketId}/acquire?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "status": "acquired",
  "environmentId": "456e7890-e89b-12d3-a456-426614174001",
  "environmentName": "production",
  "salesforceUsername": "[email protected]",
  "sfdxAuthUrl": "force://PlatformCLI::...",
  "frontDoorUrl": "https://mycompany.my.salesforce.com/secur/frontdoor.jsp?sid=..."
}

Unlock an environment by name

delete

Releases a lock on an environment using repository identifier, environment name, and ticket ID.

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
ticketIdstringRequired

Lock ticket ID obtained when locking

Example: ticket_789abc12-3def-4567-8901-234567890abc
Query parameters
repositoryIdentifierstringRequired

Repository identifier (owner/repo)

Example: myorg/myrepo
Responses
204

Environment unlocked successfully

delete
DELETE /sfp/api/environments/by-name/{name}/lock/{ticketId}?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*

No content

Get access audit for environment

get

Retrieves audit logs for all access to this environment including reads, updates, locks, and frontdoor access

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
Query parameters
limitnumberOptional

Maximum number of audit records to return (default: 100)

Example: 50
accessTypestringRequired
offsetnumberRequired
Responses
200

Environment access audit logs

application/json
ResponsearrayExample: [{"id":"audit123","environment_id":"456e7890-e89b-12d3-a456-426614174001","repository_identifier":"myorg/myrepo","accessed_by":"user123","accessed_by_application":null,"access_type":"lock","access_details":{"action":"environment_locked","ticket_id":"ticket_789abc","duration_seconds":3600,"reason":"Deployment in progress"},"ip_address":"192.168.1.100","user_agent":"Mozilla/5.0...","accessed_at":"2024-01-15T14:30:00Z"}]
get
GET /sfp/api/environments/{id}/audit?accessType=text&offset=1 HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
200

Environment access audit logs

[
  {
    "id": "audit123",
    "environment_id": "456e7890-e89b-12d3-a456-426614174001",
    "repository_identifier": "myorg/myrepo",
    "accessed_by": "user123",
    "accessed_by_application": null,
    "access_type": "lock",
    "access_details": {
      "action": "environment_locked",
      "ticket_id": "ticket_789abc",
      "duration_seconds": 3600,
      "reason": "Deployment in progress"
    },
    "ip_address": "192.168.1.100",
    "user_agent": "Mozilla/5.0...",
    "accessed_at": "2024-01-15T14:30:00Z"
  }
]

Get access audit for all environments in a repository

get
Authorizations
Path parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Query parameters
limitnumberOptional

Maximum number of audit records (default: 100)

accessTypestringRequired
offsetnumberRequired
Responses
200

Repository environment access audit logs

application/json
Responsearray
get
GET /sfp/api/environments/repository/{repositoryIdentifier}/audit?accessType=text&offset=1 HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
200

Repository environment access audit logs

[]

Get Salesforce frontdoor URL for environment

get

Generates a Salesforce frontdoor URL for the environment's org. Can either return the URL or redirect directly to Salesforce. Access is audited.

Authorizations
Path parameters
idstringRequired

Environment ID

Example: 456e7890-e89b-12d3-a456-426614174001
Query parameters
redirectbooleanOptional

Whether to redirect to Salesforce (default: true) or return the URL (false)

Example: false
Responses
200

Frontdoor URL retrieved (when redirect=false)

application/json
get
GET /sfp/api/environments/{id}/frontdoor HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "url": "https://mycompany.my.salesforce.com/secur/frontdoor.jsp?sid=00D...&retURL=%2F"
}

Get installed artifacts for an environment

get

Retrieves all artifacts installed in the Salesforce org associated with this environment. Results are cached for 1 hour unless force refresh is requested.

Authorizations
Path parameters
idstringRequired

Environment ID (UUID)

Example: 123e4567-e89b-12d3-a456-426614174000
Query parameters
forcestring · enumOptional

Force refresh the cached data

Possible values:
Responses
200

List of installed artifacts retrieved successfully

application/json
get
GET /sfp/api/environments/{id}/artifacts HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "environmentId": "text",
  "environmentName": "text",
  "salesforceUsername": "text",
  "artifacts": [
    {
      "name": "text",
      "version": "text",
      "commitId": "text",
      "subscriberVersion": "text",
      "type": "text",
      "isInstalledBysfp": true
    }
  ],
  "retrievedAt": "2025-08-14T14:43:22.716Z",
  "cached": true
}

Get installed artifacts for an environment by name

get

Retrieves all artifacts installed in the Salesforce org associated with this environment by name. Results are cached for 1 hour unless force refresh is requested.

Authorizations
Path parameters
namestringRequired

Environment name

Example: production
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., owner/repo)

Example: myorg/myrepo
forcestring · enumOptional

Force refresh the cached data

Possible values:
Responses
200

List of installed artifacts retrieved successfully

application/json
get
GET /sfp/api/environments/by-name/{name}/artifacts?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "environmentId": "text",
  "environmentName": "text",
  "salesforceUsername": "text",
  "artifacts": [
    {
      "name": "text",
      "version": "text",
      "commitId": "text",
      "subscriberVersion": "text",
      "type": "text",
      "isInstalledBysfp": true
    }
  ],
  "retrievedAt": "2025-08-14T14:43:22.716Z",
  "cached": true
}

Get releases for an environment

get

Retrieves all releases that have been deployed to a specific environment. Releases are sorted by publication date with the most recent first.

    You can optionally filter releases by domain (release configuration) and paginate through results.
    
    This endpoint returns release metadata that was captured during the release process, including:
    - Release name and domain
    - Publication timestamp
    - Repository information
    - Any additional metadata from the release
    
    Returns an empty list if no releases have been recorded for the environment.
Authorizations
Path parameters
idstringRequired

Environment ID (UUID)

Query parameters
domainstringOptional

Filter releases by domain/release configuration name

Example: core
limitnumberOptional

Maximum number of releases to return

Example: 50
offsetnumberOptional

Number of releases to skip for pagination

Example: 0
Responses
200

Releases retrieved successfully

application/json
get
GET /sfp/api/environments/{id}/releases HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "environmentId": "123e4567-e89b-12d3-a456-426614174000",
  "environmentName": "production",
  "repositoryIdentifier": "myorg/myrepo",
  "releases": [
    {
      "name": "v1.2.3",
      "domain": "core",
      "targetOrg": "production",
      "publishedAt": "2024-01-15T10:30:00.000Z",
      "repoIdentifier": "myorg/myrepo",
      "metadata": {}
    }
  ],
  "totalCount": 100,
  "limit": 50,
  "offset": 0,
  "retrievedAt": "2024-01-15T10:30:00.000Z"
}

Get releases for an environment by name

get

Retrieves all releases for an environment identified by its name and repository. This is a convenience endpoint that works the same as the ID-based endpoint.

    See GET /environments/:id/releases for full documentation.
Authorizations
Path parameters
namestringRequired

Environment name

Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: myorg/myrepo
domainstringOptional

Filter releases by domain/release configuration name

Example: core
limitnumberOptional

Maximum number of releases to return

Example: 50
offsetnumberOptional

Number of releases to skip for pagination

Example: 0
Responses
200

Releases retrieved successfully

application/json
get
GET /sfp/api/environments/by-name/{name}/releases?repositoryIdentifier=myorg%2Fmyrepo HTTP/1.1
Host: 
Authorization: Bearer JWT
Accept: */*
{
  "environmentId": "123e4567-e89b-12d3-a456-426614174000",
  "environmentName": "production",
  "repositoryIdentifier": "myorg/myrepo",
  "releases": [
    {
      "name": "v1.2.3",
      "domain": "core",
      "targetOrg": "production",
      "publishedAt": "2024-01-15T10:30:00.000Z",
      "repoIdentifier": "myorg/myrepo",
      "metadata": {}
    }
  ],
  "totalCount": 100,
  "limit": 50,
  "offset": 0,
  "retrievedAt": "2024-01-15T10:30:00.000Z"
}

Was this helpful?