> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pragmatiks.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Provider

> Update provider metadata (author only).

Only the provider's author (matching tenant) can update metadata.

Returns:
    The updated provider record.

Raises:
    HTTPException: If user is not the provider author.



## OpenAPI

````yaml https://api.pragmatiks.io/openapi.json patch /providers/{org}/{name}
openapi: 3.1.0
info:
  title: Pragma API
  version: 0.1.0
servers: []
security: []
paths:
  /providers/{org}/{name}:
    patch:
      tags:
        - providers
      summary: Update Provider
      description: |-
        Update provider metadata (author only).

        Only the provider's author (matching tenant) can update metadata.

        Returns:
            The updated provider record.

        Raises:
            HTTPException: If user is not the provider author.
      operationId: providers-update_provider
      parameters:
        - name: org
          in: path
          required: true
          schema:
            type: string
            title: Org
        - name: name
          in: path
          required: true
          schema:
            type: string
            title: Name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProviderRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provider'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    UpdateProviderRequest:
      properties:
        display_name:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Display Name
        description:
          anyOf:
            - type: string
              maxLength: 500
            - type: 'null'
          title: Description
        readme:
          anyOf:
            - type: string
              maxLength: 50000
            - type: 'null'
          title: Readme
        tags:
          anyOf:
            - items:
                type: string
              type: array
              maxItems: 20
            - type: 'null'
          title: Tags
        icon_url:
          anyOf:
            - type: string
              maxLength: 500
            - type: 'null'
          title: Icon Url
      type: object
      title: UpdateProviderRequest
      description: |-
        Request model for updating provider metadata.

        Only provided (non-None) fields are updated.

        Attributes:
            display_name: Human-readable name for UI display.
            description: Short description of what the provider does.
            readme: Long-form documentation in markdown.
            tags: Searchable tags for categorization.
            icon_url: URL to provider icon image.
    Provider:
      properties:
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        prefix:
          type: string
          title: Prefix
        name:
          type: string
          title: Name
        display_name:
          type: string
          title: Display Name
        description:
          type: string
          title: Description
        author:
          $ref: '#/components/schemas/ProviderAuthor'
        scope:
          $ref: '#/components/schemas/ProviderScope'
          default: public
        icon_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Icon Url
        readme:
          anyOf:
            - type: string
            - type: 'null'
          title: Readme
        tags:
          items:
            type: string
          type: array
          title: Tags
        latest_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Latest Version
        install_count:
          type: integer
          title: Install Count
          default: 0
        canonical:
          type: string
          title: Canonical
          description: |-
            Slash-joined ``prefix/name`` canonical string.

            Returns:
                Display form of the provider identity, used in CLI output,
                web UI labels, and URL paths.
          readOnly: true
      type: object
      required:
        - prefix
        - name
        - display_name
        - description
        - author
        - canonical
      title: Provider
      description: |-
        Provider listing in the catalog.

        Provider identity is stored as two separate fields: ``prefix`` and
        ``name``. The ``prefix`` is an opaque namespace token (either the
        literal ``"platform"`` for catalog providers owned by Pragmatiks or
        a customer organization slug). The ``name`` is the provider's short
        name (e.g. ``pragma``, ``gcp``). Use :attr:`canonical` when a
        display string or URL path is needed.

        Identity fields (frozen):
            prefix: Namespace token (``"platform"`` or a customer org slug).
            name: Provider short name within the prefix.

        Metadata:
            display_name: Human-readable name for UI display.
            description: Short description of what the provider does.
            author: Publishing organization metadata.
            scope: Visibility scope (public or tenant-only).
            icon_url: URL to provider icon image.
            readme: Long-form documentation in markdown.
            tags: Searchable tags for categorization.

        State (system-managed):
            latest_version: Semver of the most recent published version.
            install_count: Total number of tenant installations.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProviderAuthor:
      properties:
        kind:
          type: string
          enum:
            - customer
            - platform
          title: Kind
        organization_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Organization Id
        display_name:
          type: string
          title: Display Name
      type: object
      required:
        - kind
        - display_name
      title: ProviderAuthor
      description: |-
        Author metadata for a provider.

        ``kind`` discriminates between providers owned by Pragmatiks
        (``"platform"``) and providers owned by a customer organization
        (``"customer"``). Platform-owned providers leave ``organization_id``
        as ``None``; customer-owned providers must populate it.

        Attributes:
            kind: Discriminator between platform and customer ownership.
            organization_id: Organization ID of the publishing tenant, or
                ``None`` for platform-owned providers.
            display_name: Human-facing label shown in catalog listings and
                the web UI.
    ProviderScope:
      type: string
      enum:
        - public
        - tenant
      title: ProviderScope
      description: Scope of a provider in the catalog.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````