Resources

Resources tracked by inventories.

13 endpoints · Plakar Control Plane v0.18 · Base URL, authentication and errors

List the resources with the backups of their sources

GET /api/v1/account/organizations/{id}/backups/resources
Badge

Path parameters

  • id string<uuid> required
    Organization ID, at or below the caller’s.

Query parameters

  • offset integer
    Number of items to skip.
    Default: 0
  • limit integer
    Maximum number of items to return.
    Default: 50 Min: 1 Max: 50
  • search string
    Free-text search on resources.
  • class array[string]
    Only resources of these classes.
  • exclude_class array[string]
    Exclude resources of these classes.
  • inventory_id array[string<uuid>]
    Only resources of these inventories.
  • connector_type string
    Only resources with at least one ready connector of this type.
    Allowed: source, store, destination
  • policy string
    Only resources whose every ready source is scheduled by a policy, or those with at least one that is not. A resource without a ready source is not covered.
    Allowed: covered, not_covered
  • sort string
    last_backup lists first the resource whose stalest source was backed up longest ago; name sorts by name. Default: class, then name.
    Allowed: last_backup, name
  • facets boolean
    Also count the resources per inventory and per policy coverage.
    Default: false

Response 200 OK application/json

  • facets object nullable
    • inventories array[object]
      • count integer
      • inventory object
        • id string<uuid>
        • name string
        • type string
    • policy object
      • covered integer
      • not_covered integer
    • unfiltered_total integer
  • items array[object]
    • class string
    • country_detected string nullable
    • id string<uuid>
    • inventory_id string<uuid>
    • inventory_name string
    • inventory_type string
    • locked boolean
    • name string
    • residency string nullable
    • service string
    • sources array[object]
      • backup object
        • last_backup_at string<date-time> nullable
        • late boolean
        • policy object nullable
          • id string<uuid>
          • name string nullable
          • rpo_seconds integer
      • id string<uuid>
      • integration object
        • id string<uuid>
        • name string
        • version string
      • name string
    • subclass string
    • tags array[string]
    • urn string
    • urn_id string<uuid>
  • total integer

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl 'https://pcp.example.com/api/v1/account/organizations/{id}/backups/resources' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "facets": {
    "inventories": [
      {
        "count": 0,
        "inventory": {
          "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
          "name": "string",
          "type": "string"
        }
      }
    ],
    "policy": {
      "covered": 0,
      "not_covered": 0
    },
    "unfiltered_total": 0
  },
  "items": [
    {
      "class": "string",
      "country_detected": "string",
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "inventory_name": "string",
      "inventory_type": "string",
      "locked": true,
      "name": "string",
      "residency": "string",
      "service": "string",
      "sources": [
        {
          "backup": {
            "last_backup_at": "2026-01-01T00:00:00Z",
            "late": true,
            "policy": {
              "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
              "name": "string",
              "rpo_seconds": 0
            }
          },
          "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
          "integration": {
            "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
            "name": "string",
            "version": "string"
          },
          "name": "string"
        }
      ],
      "subclass": "string",
      "tags": [
        "string"
      ],
      "urn": "string",
      "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
    }
  ],
  "total": 0
}

Get a resource with the backups of its sources

GET /api/v1/account/organizations/{id}/backups/resources/{urn_id}
Badge

Path parameters

  • id string<uuid> required
    Organization ID, at or below the caller’s.
  • urn_id string required

Response 200 OK application/json

  • class string
  • country_detected string nullable
  • id string<uuid>
  • inventory_id string<uuid>
  • inventory_name string
  • inventory_type string
  • locked boolean
  • name string
  • residency string nullable
  • service string
  • sources array[object]
    • backup object
      • last_backup_at string<date-time> nullable
      • late boolean
      • policy object nullable
        • id string<uuid>
        • name string nullable
        • rpo_seconds integer
    • id string<uuid>
    • integration object
      • id string<uuid>
      • name string
      • version string
    • name string
  • subclass string
  • tags array[string]
  • urn string
  • urn_id string<uuid>

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl 'https://pcp.example.com/api/v1/account/organizations/{id}/backups/resources/{urn_id}' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "class": "string",
  "country_detected": "string",
  "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_name": "string",
  "inventory_type": "string",
  "locked": true,
  "name": "string",
  "residency": "string",
  "service": "string",
  "sources": [
    {
      "backup": {
        "last_backup_at": "2026-01-01T00:00:00Z",
        "late": true,
        "policy": {
          "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
          "name": "string",
          "rpo_seconds": 0
        }
      },
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "integration": {
        "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
        "name": "string",
        "version": "string"
      },
      "name": "string"
    }
  ],
  "subclass": "string",
  "tags": [
    "string"
  ],
  "urn": "string",
  "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}

List the resources of every inventory

GET /api/v1/inventories/resources
Badge

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.
  • offset integer
    Number of items to skip.
    Default: 0
  • limit integer
    Maximum number of items to return.
    Default: 100 Min: 1 Max: 100
  • search string
    Free-text search on resources.
  • class array[string]
    Only resources of these classes.
  • exclude_class array[string]
    Exclude resources of these classes.
  • inventory_id array[string<uuid>]
    Only resources of these inventories.

Response 200 OK application/json

  • items array[object]
    • class string
    • configured_connectors array[object]
      • country_detected string nullable
      • id string<uuid>
      • integration object
        • created_at string<date-time>
        • fields map[array[object]] nullable
        • id string<uuid>
        • name string nullable
        • protocols array[string] nullable
        • supports array[string] nullable
        • updated_at string<date-time>
        • version string nullable
      • name string
      • residency string nullable
      • type string
    • country_detected string nullable
    • coverage_status string
    • excluded_from_coverage boolean
    • id string<uuid>
    • inventory_id string<uuid>
    • inventory_name string
    • inventory_type string
    • locked boolean
    • name string
    • residency string nullable
    • service string
    • subclass string
    • tags array[string]
    • urn string
    • urn_id string<uuid>
  • total integer

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl 'https://pcp.example.com/api/v1/inventories/resources' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "items": [
    {
      "class": "string",
      "configured_connectors": [
        {
          "country_detected": "string",
          "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
          "integration": {
            "created_at": "2026-01-01T00:00:00Z",
            "fields": {
              "key": [
                {
                  "default": "string",
                  "description": "string",
                  "display_name": "string",
                  "enum": [
                    "string"
                  ],
                  "inventory_value": "string",
                  "name": "string",
                  "pattern": "string",
                  "required": true,
                  "sensitive": true,
                  "type": "string"
                }
              ]
            },
            "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
            "name": "string",
            "protocols": [
              "string"
            ],
            "supports": [
              "string"
            ],
            "updated_at": "2026-01-01T00:00:00Z",
            "version": "string"
          },
          "name": "string",
          "residency": "string",
          "type": "string"
        }
      ],
      "country_detected": "string",
      "coverage_status": "string",
      "excluded_from_coverage": true,
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "inventory_name": "string",
      "inventory_type": "string",
      "locked": true,
      "name": "string",
      "residency": "string",
      "service": "string",
      "subclass": "string",
      "tags": [
        "string"
      ],
      "urn": "string",
      "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
    }
  ],
  "total": 0
}

List the resources of an inventory

GET /api/v1/inventories/{inventory_id}/resources
Badge

Path parameters

  • inventory_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.
  • offset integer
    Number of items to skip.
    Default: 0
  • limit integer
    Maximum number of items to return.
    Default: 100 Min: 1 Max: 100
  • search string
    Free-text search on resources.
  • class array[string]
    Only resources of these classes.
  • exclude_class array[string]
    Exclude resources of these classes.

Response 200 OK application/json

  • items array[object]
    • class string
    • configured_connectors array[object]
      • country_detected string nullable
      • id string<uuid>
      • integration object
        • created_at string<date-time>
        • fields map[array[object]] nullable
        • id string<uuid>
        • name string nullable
        • protocols array[string] nullable
        • supports array[string] nullable
        • updated_at string<date-time>
        • version string nullable
      • name string
      • residency string nullable
      • type string
    • country_detected string nullable
    • coverage_status string
    • excluded_from_coverage boolean
    • id string<uuid>
    • inventory_id string<uuid>
    • inventory_name string
    • inventory_type string
    • locked boolean
    • name string
    • residency string nullable
    • service string
    • subclass string
    • tags array[string]
    • urn string
    • urn_id string<uuid>
  • total integer

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "items": [
    {
      "class": "string",
      "configured_connectors": [
        {
          "country_detected": "string",
          "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
          "integration": {
            "created_at": "2026-01-01T00:00:00Z",
            "fields": {
              "key": [
                {
                  "default": "string",
                  "description": "string",
                  "display_name": "string",
                  "enum": [
                    "string"
                  ],
                  "inventory_value": "string",
                  "name": "string",
                  "pattern": "string",
                  "required": true,
                  "sensitive": true,
                  "type": "string"
                }
              ]
            },
            "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
            "name": "string",
            "protocols": [
              "string"
            ],
            "supports": [
              "string"
            ],
            "updated_at": "2026-01-01T00:00:00Z",
            "version": "string"
          },
          "name": "string",
          "residency": "string",
          "type": "string"
        }
      ],
      "country_detected": "string",
      "coverage_status": "string",
      "excluded_from_coverage": true,
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "inventory_name": "string",
      "inventory_type": "string",
      "locked": true,
      "name": "string",
      "residency": "string",
      "service": "string",
      "subclass": "string",
      "tags": [
        "string"
      ],
      "urn": "string",
      "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
    }
  ],
  "total": 0
}

Add a resource

POST /api/v1/inventories/{inventory_id}/resources
Badge

Path parameters

  • inventory_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Request body application/json required

  • class string
  • endpoints array[object]
    • attributes map[string]
    • endpoint string
    • kind string
  • excluded_from_coverage boolean
  • name string
  • service string
  • subclass string
  • tags array[string]
  • urn string

Response 200 OK application/json

  • class string
  • configured_connectors array[object]
    • country_detected string nullable
    • id string<uuid>
    • integration object
      • created_at string<date-time>
      • fields map[array[object]] nullable
      • id string<uuid>
      • name string nullable
      • protocols array[string] nullable
      • supports array[string] nullable
      • updated_at string<date-time>
      • version string nullable
    • name string
    • residency string nullable
    • type string
  • country_detected string nullable
  • coverage_status string
  • excluded_from_coverage boolean
  • id string<uuid>
  • inventory_id string<uuid>
  • inventory_name string
  • inventory_type string
  • locked boolean
  • name string
  • residency string nullable
  • service string
  • subclass string
  • tags array[string]
  • urn string
  • urn_id string<uuid>

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X POST 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources' \
  -H 'Authorization: Bearer <badge>' \
  -H 'Content-Type: application/json' \
  -d '{
  "class": "string",
  "endpoints": [
    {
      "attributes": {
        "key": "string"
      },
      "endpoint": "string",
      "kind": "string"
    }
  ],
  "excluded_from_coverage": true,
  "name": "string",
  "service": "string",
  "subclass": "string",
  "tags": [
    "string"
  ],
  "urn": "string"
}'

Response 200

{
  "class": "string",
  "configured_connectors": [
    {
      "country_detected": "string",
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "integration": {
        "created_at": "2026-01-01T00:00:00Z",
        "fields": {
          "key": [
            {
              "default": "string",
              "description": "string",
              "display_name": "string",
              "enum": [
                "string"
              ],
              "inventory_value": "string",
              "name": "string",
              "pattern": "string",
              "required": true,
              "sensitive": true,
              "type": "string"
            }
          ]
        },
        "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
        "name": "string",
        "protocols": [
          "string"
        ],
        "supports": [
          "string"
        ],
        "updated_at": "2026-01-01T00:00:00Z",
        "version": "string"
      },
      "name": "string",
      "residency": "string",
      "type": "string"
    }
  ],
  "country_detected": "string",
  "coverage_status": "string",
  "excluded_from_coverage": true,
  "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_name": "string",
  "inventory_type": "string",
  "locked": true,
  "name": "string",
  "residency": "string",
  "service": "string",
  "subclass": "string",
  "tags": [
    "string"
  ],
  "urn": "string",
  "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}

Add resources in bulk

POST /api/v1/inventories/{inventory_id}/resources/bulk
Badge

Path parameters

  • inventory_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Request body application/octet-stream required

Raw request body.

Response 200 OK application/json

  • class string
  • configured_connectors array[object]
    • country_detected string nullable
    • id string<uuid>
    • integration object
      • created_at string<date-time>
      • fields map[array[object]] nullable
      • id string<uuid>
      • name string nullable
      • protocols array[string] nullable
      • supports array[string] nullable
      • updated_at string<date-time>
      • version string nullable
    • name string
    • residency string nullable
    • type string
  • country_detected string nullable
  • coverage_status string
  • excluded_from_coverage boolean
  • id string<uuid>
  • inventory_id string<uuid>
  • inventory_name string
  • inventory_type string
  • locked boolean
  • name string
  • residency string nullable
  • service string
  • subclass string
  • tags array[string]
  • urn string
  • urn_id string<uuid>

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X POST 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/bulk' \
  -H 'Authorization: Bearer <badge>' \
  -H 'Content-Type: application/octet-stream' \
  --data-binary @file

Response 200

[
  {
    "class": "string",
    "configured_connectors": [
      {
        "country_detected": "string",
        "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
        "integration": {
          "created_at": "2026-01-01T00:00:00Z",
          "fields": {
            "key": [
              {
                "default": "string",
                "description": "string",
                "display_name": "string",
                "enum": [
                  "string"
                ],
                "inventory_value": "string",
                "name": "string",
                "pattern": "string",
                "required": true,
                "sensitive": true,
                "type": "string"
              }
            ]
          },
          "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
          "name": "string",
          "protocols": [
            "string"
          ],
          "supports": [
            "string"
          ],
          "updated_at": "2026-01-01T00:00:00Z",
          "version": "string"
        },
        "name": "string",
        "residency": "string",
        "type": "string"
      }
    ],
    "country_detected": "string",
    "coverage_status": "string",
    "excluded_from_coverage": true,
    "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
    "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
    "inventory_name": "string",
    "inventory_type": "string",
    "locked": true,
    "name": "string",
    "residency": "string",
    "service": "string",
    "subclass": "string",
    "tags": [
      "string"
    ],
    "urn": "string",
    "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
  }
]

Get a resource

GET /api/v1/inventories/{inventory_id}/resources/{urn_id}
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Response 200 OK application/json

  • class string
  • configured_connectors array[object]
    • created_at string<date-time>
    • data_classes array[string] nullable
    • environment string nullable
    • fields map[object]
      • provider object nullable
        • id string<uuid>
      • value string
    • id string<uuid>
    • integration object
      • created_at string<date-time>
      • fields map[array[object]] nullable
      • id string<uuid>
      • name string nullable
      • protocols array[string] nullable
      • supports array[string] nullable
      • updated_at string<date-time>
      • version string nullable
    • last_check string<date-time> nullable
    • name string
    • protocol string
    • resource_id string<uuid>
    • revision integer
    • root string
    • type string
    • updated_at string<date-time>
  • country_detected string nullable
  • coverage_status string
  • endpoints array[object]
    • attributes map[string]
    • endpoint string
    • kind string
  • excluded_from_coverage boolean
  • id string<uuid>
  • inventory_id string<uuid>
  • locked boolean
  • name string
  • residency string nullable
  • service string
  • subclass string
  • suggested_data_classes array[string] nullable
  • suggested_environment string nullable
  • tags array[string]
  • urn string
  • urn_id string<uuid>

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "class": "string",
  "configured_connectors": [
    {
      "created_at": "2026-01-01T00:00:00Z",
      "data_classes": [
        "string"
      ],
      "environment": "string",
      "fields": {
        "key": {
          "provider": {
            "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
          },
          "value": "string"
        }
      },
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "integration": {
        "created_at": "2026-01-01T00:00:00Z",
        "fields": {
          "key": [
            {
              "default": "string",
              "description": "string",
              "display_name": "string",
              "enum": [
                "string"
              ],
              "inventory_value": "string",
              "name": "string",
              "pattern": "string",
              "required": true,
              "sensitive": true,
              "type": "string"
            }
          ]
        },
        "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
        "name": "string",
        "protocols": [
          "string"
        ],
        "supports": [
          "string"
        ],
        "updated_at": "2026-01-01T00:00:00Z",
        "version": "string"
      },
      "last_check": "2026-01-01T00:00:00Z",
      "name": "string",
      "protocol": "string",
      "resource_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "revision": 0,
      "root": "string",
      "type": "string",
      "updated_at": "2026-01-01T00:00:00Z"
    }
  ],
  "country_detected": "string",
  "coverage_status": "string",
  "endpoints": [
    {
      "attributes": {
        "key": "string"
      },
      "endpoint": "string",
      "kind": "string"
    }
  ],
  "excluded_from_coverage": true,
  "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "locked": true,
  "name": "string",
  "residency": "string",
  "service": "string",
  "subclass": "string",
  "suggested_data_classes": [
    "string"
  ],
  "suggested_environment": "string",
  "tags": [
    "string"
  ],
  "urn": "string",
  "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}

Update a resource

POST /api/v1/inventories/{inventory_id}/resources/{urn_id}
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Request body application/json required

  • class string
  • endpoints array[object]
    • attributes map[string]
    • endpoint string
    • kind string
  • excluded_from_coverage boolean
  • name string
  • service string
  • subclass string
  • tags array[string]
  • urn string

Response 200 OK application/json

  • class string
  • configured_connectors array[object]
    • country_detected string nullable
    • id string<uuid>
    • integration object
      • created_at string<date-time>
      • fields map[array[object]] nullable
      • id string<uuid>
      • name string nullable
      • protocols array[string] nullable
      • supports array[string] nullable
      • updated_at string<date-time>
      • version string nullable
    • name string
    • residency string nullable
    • type string
  • country_detected string nullable
  • coverage_status string
  • excluded_from_coverage boolean
  • id string<uuid>
  • inventory_id string<uuid>
  • inventory_name string
  • inventory_type string
  • locked boolean
  • name string
  • residency string nullable
  • service string
  • subclass string
  • tags array[string]
  • urn string
  • urn_id string<uuid>

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X POST 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}' \
  -H 'Authorization: Bearer <badge>' \
  -H 'Content-Type: application/json' \
  -d '{
  "class": "string",
  "endpoints": [
    {
      "attributes": {
        "key": "string"
      },
      "endpoint": "string",
      "kind": "string"
    }
  ],
  "excluded_from_coverage": true,
  "name": "string",
  "service": "string",
  "subclass": "string",
  "tags": [
    "string"
  ],
  "urn": "string"
}'

Response 200

{
  "class": "string",
  "configured_connectors": [
    {
      "country_detected": "string",
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "integration": {
        "created_at": "2026-01-01T00:00:00Z",
        "fields": {
          "key": [
            {
              "default": "string",
              "description": "string",
              "display_name": "string",
              "enum": [
                "string"
              ],
              "inventory_value": "string",
              "name": "string",
              "pattern": "string",
              "required": true,
              "sensitive": true,
              "type": "string"
            }
          ]
        },
        "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
        "name": "string",
        "protocols": [
          "string"
        ],
        "supports": [
          "string"
        ],
        "updated_at": "2026-01-01T00:00:00Z",
        "version": "string"
      },
      "name": "string",
      "residency": "string",
      "type": "string"
    }
  ],
  "country_detected": "string",
  "coverage_status": "string",
  "excluded_from_coverage": true,
  "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
  "inventory_name": "string",
  "inventory_type": "string",
  "locked": true,
  "name": "string",
  "residency": "string",
  "service": "string",
  "subclass": "string",
  "tags": [
    "string"
  ],
  "urn": "string",
  "urn_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}

Exclude a resource from coverage, or include it again

PATCH /api/v1/inventories/{inventory_id}/resources/{urn_id}
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Request body application/json required

  • excluded_from_coverage boolean

Response 200 OK application/json

  • excluded_from_coverage boolean

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X PATCH 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}' \
  -H 'Authorization: Bearer <badge>' \
  -H 'Content-Type: application/json' \
  -d '{
  "excluded_from_coverage": true
}'

Response 200

{
  "excluded_from_coverage": true
}

Delete a resource

DELETE /api/v1/inventories/{inventory_id}/resources/{urn_id}
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Response 200 OK application/json

  • id string<uuid>

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X DELETE 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}

List the endpoints of a resource

GET /api/v1/inventories/{inventory_id}/resources/{urn_id}/endpoints
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Response 200 OK application/json

  • endpoints array[object]
    • endpoint string
    • id string<uuid>
    • type string

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}/endpoints' \
  -H 'Authorization: Bearer <badge>'

Response 200

{
  "endpoints": [
    {
      "endpoint": "string",
      "id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
      "type": "string"
    }
  ]
}

Lock or unlock a resource

PATCH /api/v1/inventories/{inventory_id}/resources/{urn_id}/lock
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Request body application/json required

  • locked boolean

Response 200 OK application/json

  • locked boolean

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X PATCH 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}/lock' \
  -H 'Authorization: Bearer <badge>' \
  -H 'Content-Type: application/json' \
  -d '{
  "locked": true
}'

Response 200

{
  "locked": true
}

Set the residency of a resource

PATCH /api/v1/inventories/{inventory_id}/resources/{urn_id}/residency
Badge

Path parameters

  • inventory_id string required
  • urn_id string required

Query parameters

  • organization_id string<uuid>
    Organization to act on, at or below the caller’s. Defaults to the caller’s.

Request body application/json required

  • residency string

Response 200 OK application/json

  • residency string

Errors

  • 400 Bad Request (validation or deserialization error)
  • 401 Missing, invalid or expired credentials
  • 403 The caller may not do this
  • 500 Internal Server Error (panics)

Every error returns the standard error body.

Request

curl -X PATCH 'https://pcp.example.com/api/v1/inventories/{inventory_id}/resources/{urn_id}/residency' \
  -H 'Authorization: Bearer <badge>' \
  -H 'Content-Type: application/json' \
  -d '{
  "residency": "string"
}'

Response 200

{
  "residency": "string"
}