---
title: "Register a producer and its capabilities"
method: PUT
path: "/v1/producers/{instanceId}"
tags: ["Producers"]
---

# Register a producer and its capabilities

`PUT /v1/producers/{instanceId}`

## Request

- Base URL: `https://api.ironfang.com/security`
- URL: `https://api.ironfang.com/security/v1/producers/{instanceId}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Creates or updates the producer with this instance id and type. Remediation actions this server does not know are listed in `ignored`, so a producer newer than the server learns what it supports.

## Request body

- RegisterProducerRequest
  - `asset` AssetReference: An asset by id, or by type and name (created with its parents when it does not exist).
    - `id` string, uuid
    - `name` string
    - `parent` AssetReference (recursive)
    - `type` 'domain' | 'hostname' | 'ip_address' | 'service' | 'website' | 'host' | 'virtual_machine' | 'container' | 'container_image' | 'kubernetes_cluster' | 'kubernetes_namespace' | 'cloud_account' | 'wordpress_installation' | 'repository' | 'application' | 'api'
  - `capabilities` Capabilities
    - `assessments` string[]: Check ids, groups or namespace wildcards this producer can examine.
    - `remediations` string[]: Registered remediation actions this producer can perform.
  - `name` string
  - `protocol_version` 1, required
  - `type` 'external_scan' | 'wordpress_agent' | 'linux_agent' | 'kubernetes_agent' | 'container_scanner' | 'cloud_integration' | 'dependency_scanner' | 'ai_assessment' | 'nuclei' | 'import' | 'manual', required: What kind of producer a result came from. external_scan is the External Security Check and cannot be submitted.
  - `version` string, required

## Response `200`

Updated.

- ProducerRegistration
  - `ignored` object, required
    - `remediations` string[], required: Actions this server does not know.
  - `producer` Producer, required
    - `asset` AssetRef
      - `id` string, uuid, required
      - `name` string, required
      - `type` 'domain' | 'hostname' | 'ip_address' | 'service' | 'website' | 'host' | 'virtual_machine' | 'container' | 'container_image' | 'kubernetes_cluster' | 'kubernetes_namespace' | 'cloud_account' | 'wordpress_installation' | 'repository' | 'application' | 'api', required
    - `capabilities` Capabilities, required
      - `assessments` string[]: Check ids, groups or namespace wildcards this producer can examine.
      - `remediations` string[]: Registered remediation actions this producer can perform.
    - `first_seen_at` string, date-time, required
    - `id` string, uuid, required
    - `instance_id` string, required
    - `last_seen_at` string, date-time, required
    - `name` string, required
    - `protocol_version` integer, required
    - `type` 'external_scan' | 'wordpress_agent' | 'linux_agent' | 'kubernetes_agent' | 'container_scanner' | 'cloud_integration' | 'dependency_scanner' | 'ai_assessment' | 'nuclei' | 'import' | 'manual', required: What kind of producer a result came from. external_scan is the External Security Check and cannot be submitted.
    - `version` string, required

## Other responses

- `201`: Registered.
- `422`: An error.
- `429`: An error.
- `default`: An error.

---

[API](https://skmtc.dev/ironfang/apis/ironfang-security-api.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-security-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-security-api/revisions/73bd66283d59?raw)
