---
title: "Start Resolve Capability Artifact Rows"
method: POST
path: "/api/growth/resolve-capability/artifact/start"
tags: ["growth-resolver"]
---

# Start Resolve Capability Artifact Rows

`POST /api/growth/resolve-capability/artifact/start`

## Request

- Base URL: `https://platform.verbiflow.com/api/bridge`
- URL: `https://platform.verbiflow.com/api/bridge/api/growth/resolve-capability/artifact/start`
- Auth: one of:
  - HTTP bearer and API key in header `x-flage-org-id`
  - HTTP bearer and API key in header `x-flage-org-slug`

## Request body

- StartResolveCapabilityArtifactRowsRequest
  - `artifact_label` string, nullable: Optional display label for the result artifact.
  - `capability_id` string, required: Resolver capability to execute; the SDK chooses this from the purposeful contact/company method.
  - `mapped_field_keys` string[]: Canonical input identity fields available to the planner.
  - `max_rows` integer: Maximum rows admitted; must be at least the supplied row count.
  - `refresh_company_identity` boolean: Refresh company identity observations only.
  - `refresh_company_profile` boolean: Refresh company profile observations only.
  - `refresh_person_identity` boolean: Refresh partial person identity resolution only.
  - `refresh_person_posts` boolean: Refresh authored person posts only.
  - `refresh_person_profile` boolean: Refresh person profile observations only.
  - `requested_field_keys` string[]: Canonical fields to resolve; empty uses the capability defaults.
  - `rows` object[], required: Known input rows with caller columns preserved as recursive JSON; not a people-discovery query.
  - `source_kind` string: Resolver mapping context; sdk is normalized to manual.

## Response `200`

Successful Response

- StartResolveCapabilityArtifactRowsResponse
  - `accepted_pricing` AcceptedJobPricing, required: Immutable rule used to rate this job; final usage determines the actual charge.
    - `basis` 'none' | 'successful_execution' | 'successful_provider_attempt' | 'requested_record' | 'delivered_record' | 'successful_record' | 'provider_unit' | 'provider_cost_usd' | 'resolver_reported', required
    - `billing_owner` 'none' | 'growth_capability' | 'source_execution' | 'enrichment_reservation', required
    - `credits_per_unit` string, required: Exact Decimal customer-credit rate per unit, encoded as a string. This is not the final charge.
    - `pricing_version` string, required: Immutable published rate-book revision captured when the job was admitted.
    - `unit` string, required: Unit counted by basis, such as a record or execution.
  - `artifact_id` string, required: Immutable result artifact identity reserved at admission.
  - `capability_id` string, required: Resolver capability to execute; the SDK chooses this from the purposeful contact/company method.
  - `execution_contract_digest` string, required: Pinned execution semantics digest.
  - `execution_id` string, required: Customer accounting execution identity.
  - `failed` boolean, required: Whether terminal execution failed.
  - `finished` boolean, required: Whether the job reached a terminal state.
  - `generation_id` string, required: Exact semantic result generation.
  - `job_id` string, required: Durable enrichment job identity.
  - `note` string, required: Human-readable admission information.
  - `operation_key` string, required: Stable logical call identity.
  - `phase` string, required: Producer-defined execution phase; an open diagnostic label, not a closed lifecycle status.
  - `preview_rows` object[], required: At most 20 original input rows; these are not completed enrichment observations.
  - `progress_current` integer, required: Committed work units so far.
  - `progress_total` integer, required: Expected work units for this admission.
  - `request_digest` string, required: Digest of the exact admitted request.
  - `requested_field_keys` string[], required: Canonical fields to resolve; empty uses the capability defaults.
  - `result_kind` 'enrichment_artifact', required: enrichment_artifact identifies the typed terminal coverage receipt.
  - `row_count` integer, required: Number of known input rows admitted.
  - `semantic_fingerprint` string, required: Digest of normalized business inputs.
  - `source_digest` string, nullable: Optional immutable upstream source digest.
  - `status` 'queued' | 'running' | 'blocked' | 'completed' | 'failed', required
  - `summary` EnrichmentJobProgress: Incremental job metadata. Resolver counters live inside resolver_summary.
    - `accepted_pricing` AcceptedJobPricing: Immutable rule used to rate this job; final usage determines the actual charge.
      - `basis` 'none' | 'successful_execution' | 'successful_provider_attempt' | 'requested_record' | 'delivered_record' | 'successful_record' | 'provider_unit' | 'provider_cost_usd' | 'resolver_reported', required
      - `billing_owner` 'none' | 'growth_capability' | 'source_execution' | 'enrichment_reservation', required
      - `credits_per_unit` string, required: Exact Decimal customer-credit rate per unit, encoded as a string. This is not the final charge.
      - `pricing_version` string, required: Immutable published rate-book revision captured when the job was admitted.
      - `unit` string, required: Unit counted by basis, such as a record or execution.
    - `accounting_started_at` string: ISO accounting admission timestamp.
    - `artifact_id` string: Enriched artifact identity.
    - `capability_id` string: Admitted resolver capability identity.
    - `columns` string[]: Artifact column names, including caller columns.
    - `completed_at` string: ISO timestamp of terminal artifact publication.
    - `completeness` 'complete' | 'partial': complete: all requested fields resolved; partial: some remain missing.
    - `error_message` string: Persisted failure explanation.
    - `execution_contract_digest` string: Pinned execution contract digest.
    - `failed_at` string: ISO timestamp of failure.
    - `generation_id` string: Exact semantic generation identity.
    - `immutable_input_artifact_id` string: Original immutable input artifact used for retry recovery.
    - `job_id` string: Durable job identity.
    - `label` string, nullable: Caller-supplied display label.
    - `materializer_activity_timeout_seconds` integer: Maximum execution activity duration in seconds.
    - `materializer_no_progress_timeout_seconds` integer: Maximum duration without committed progress in seconds.
    - `materializer_operation_id` string: Public producer operation whose execution policy is pinned.
    - `materializer_operation_version` string: Pinned producer version.
    - `operation_key` string: Stable logical call identity.
    - `play_id` string, nullable: Owning Play identity, if admitted by a Play.
    - `request_digest` string: Digest of the admitted request.
    - `requested_field_keys` string[]: Canonical output fields requested.
    - `resolver_runtime_options` EnrichmentRuntimeOptions: Explicit refresh partitions pinned at admission; false reuses fresh evidence.
      - `refresh_company_identity` boolean: Refresh company identity.
      - `refresh_company_profile` boolean: Refresh company profile facts.
      - `refresh_person_identity` boolean: Refresh partial person identity.
      - `refresh_person_posts` boolean: Refresh authored person posts.
      - `refresh_person_profile` boolean: Refresh person profile facts.
    - `resolver_summary` ResolverWorkSummary: Resolver work counters; absent before completion or on an empty plan.
      - `actual_credit_units` number: Customer credit units recorded for completed resolver work.
      - `artifact_id` string: Enriched artifact identity when persisted.
      - `blocking_field_keys` string[]: Fields blocking further work.
      - `credit_entries_attempted` integer: Accounting entries attempted; retries need not add charges.
      - `fields_written` integer: Field cells written across rows.
      - `impossible_field_keys` string[]: Fields with no executable resolution path.
      - `non_executable_step_keys` string[]: Steps whose requirements could not be satisfied.
      - `provider_batch_count` integer: Provider batches executed.
      - `provider_input_count` integer: Provider input units processed.
      - `rate_card_revision_id` string: Published meter-book revision pinned for resolver pricing.
      - `ready_step_keys` string[]: Executable steps at final planning.
      - `requested_field_keys` string[]: Canonical fields requested.
      - `rows_loaded` integer: Input rows loaded for resolution.
      - `rows_updated` integer: Rows receiving at least one field.
      - `source_kind` string: Input mapping context used by the resolver.
      - `status` 'completed': Resolver activity completed.
      - `step_groups_executed` integer: Resolver step groups executed.
      - `target_id` string: Exact target artifact or row-chunk identity.
      - `target_type` string: Storage target resolved by this activity.
      - `terminal_failed_step_row_keys` string[]: Step-and-row identities with terminal provider failures.
      - `terminal_missing_field_keys` string[]: Requested fields still missing; nonempty means partial.
      - `waterfall_wave_count` integer: Sequential fallback waves.
    - `result_kind` 'enrichment_artifact': Terminal receipt kind.
    - `result_manifest_digest` string: Digest of final rows and evidence.
    - `row_count` integer: Number of input or committed terminal rows.
    - `schema` EnrichmentArtifactSchema: Versioned artifact column listing published alongside terminal rows.
      - `columns` EnrichmentArtifactColumn[], required: Ordered artifact column descriptors.
        - `name` string, required: Original caller or canonical result column name.
        - `type` 'string', required: Export column hint; does not convert nested row JSON.
      - `version` 1, required: Column descriptor format version.
    - `sdk_artifact_binding_version` 1: SDK-to-artifact binding format version.
    - `semantic_fingerprint` string: Digest of normalized business inputs.
    - `source_digest` string, nullable: Optional upstream source digest.
    - `source_kind` string: Resolver input mapping context.
    - `start_http_status` integer: HTTP status used for original admission.
    - `status` 'queued' | 'running' | 'blocked' | 'completed' | 'failed': Persisted execution state in an admission, progress, or terminal snapshot.
    - `temporal_workflow_id` string: Durable execution workflow identity.
    - `tool_kind` 'resolver_capability': Resolver artifact producer.
  - `workflow_id` string, required: Durable execution workflow identity.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract.md) - [All operations](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/llms.txt) - [OpenAPI document](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/revisions/c80e903ef8f3?raw)
