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

# Get shape definition

> Read a published Shape's definition file.

**Operation ID:** `http.shapes.definition`

```http theme={null}
GET /v1/orgs/{org}/projects/{project}/shapes/{id}/definition
```


## OpenAPI

````yaml openapi.json GET /v1/orgs/{org}/projects/{project}/shapes/{id}/definition
openapi: 3.1.0
info:
  title: Penumbra API
  version: v1
  description: >-
    HTTP reference for Files, search, extraction, reviews, Graph, Shapes and
    sharing.
servers:
  - url: https://api.pnbr.io
    description: Penumbra API
security: []
paths:
  /v1/orgs/{org}/projects/{project}/shapes/{id}/definition:
    get:
      tags:
        - Shapes
      summary: Get shape definition
      description: |-
        Read a published Shape's definition file.

        Product guidance: [Shape](/concepts/shape).
      operationId: http.shapes.definition
      parameters:
        - name: org
          in: path
          required: true
          schema:
            type: string
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: artifact_digest
          in: query
          required: false
          description: The artifact digest, sha256:<64 hex>. Defaults to the head.
          schema:
            type: string
            pattern: ^sha256:[0-9a-f]{64}$
      responses:
        2XX:
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http_shapes_definition_response'
      security:
        - bearerAuth: []
components:
  schemas:
    http_shapes_definition_response:
      type: object
      properties:
        data:
          type: object
          properties:
            schema:
              type: string
              const: penumbra.shape-definition
            version:
              type: number
              const: 1
            source:
              oneOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      const: draft
                    draft_id:
                      type: string
                      pattern: >-
                        ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
                    revision:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                  required:
                    - kind
                    - draft_id
                    - revision
                  additionalProperties: false
                - type: object
                  properties:
                    shape_id:
                      type: string
                      pattern: >-
                        ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
                    revision_id:
                      type: string
                      pattern: >-
                        ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
                    artifact_digest:
                      type: string
                      pattern: ^sha256:[0-9a-f]{64}$
                    generation:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                    kind:
                      type: string
                      const: published
                  required:
                    - shape_id
                    - revision_id
                    - artifact_digest
                    - generation
                    - kind
                  additionalProperties: false
            definition:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 256
                display_name:
                  type: string
                  minLength: 1
                  maxLength: 256
                description:
                  anyOf:
                    - type: string
                      maxLength: 16384
                    - type: 'null'
                adherence:
                  type: string
                  enum:
                    - strict
                    - loose
                types:
                  maxItems: 128
                  type: array
                  items:
                    type: object
                    properties:
                      type_ref:
                        type: string
                        pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      name:
                        type: string
                        minLength: 1
                        maxLength: 256
                      display_name:
                        type: string
                        minLength: 1
                        maxLength: 256
                      tagline:
                        type: string
                        minLength: 1
                        maxLength: 256
                      description:
                        anyOf:
                          - type: string
                            maxLength: 16384
                          - type: 'null'
                      properties:
                        maxItems: 2048
                        type: array
                        items:
                          type: object
                          properties:
                            property_ref:
                              type: string
                              pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                            name:
                              type: string
                              minLength: 1
                              maxLength: 256
                            schema:
                              $ref: >-
                                #/components/schemas/http_shapes_definition_response____schema0
                            required:
                              default: false
                              type: boolean
                            semantics:
                              type: object
                              properties:
                                semantic_anchors:
                                  maxItems: 128
                                  type: array
                                  items:
                                    type: string
                                    maxLength: 512
                                examples:
                                  maxItems: 128
                                  type: array
                                  items:
                                    type: string
                                    maxLength: 4096
                                counterexamples:
                                  maxItems: 128
                                  type: array
                                  items:
                                    type: string
                                    maxLength: 4096
                                extraction_guidance:
                                  anyOf:
                                    - type: string
                                      maxLength: 16384
                                    - type: 'null'
                                temporal_role:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - event
                                        - deadline
                                        - record
                                    - type: 'null'
                              additionalProperties: false
                          required:
                            - property_ref
                            - name
                            - schema
                            - required
                          additionalProperties: false
                      schema_keywords:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          $ref: >-
                            #/components/schemas/http_shapes_definition_response____schema0
                      schema_has_properties:
                        type: boolean
                      titular_property_ref:
                        anyOf:
                          - type: string
                            pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                          - type: 'null'
                      descriptive_property_refs:
                        default: []
                        maxItems: 128
                        type: array
                        items:
                          type: string
                          pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      key_property_refs:
                        maxItems: 128
                        type: array
                        items:
                          type: string
                          pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      archetype:
                        anyOf:
                          - anyOf:
                              - type: string
                                enum:
                                  - EventLike
                                  - TaskLike
                                  - DealLike
                                  - PersonLike
                                  - OrganizationLike
                                  - DocumentLike
                                  - MetricLike
                              - type: object
                                properties:
                                  Custom:
                                    type: string
                                    minLength: 1
                                    maxLength: 256
                                required:
                                  - Custom
                                additionalProperties: false
                          - type: 'null'
                      semantics:
                        anyOf:
                          - type: object
                            properties:
                              examples:
                                maxItems: 128
                                type: array
                                items:
                                  type: string
                                  maxLength: 4096
                              counterexamples:
                                maxItems: 128
                                type: array
                                items:
                                  type: string
                                  maxLength: 4096
                              extraction_guidance:
                                anyOf:
                                  - type: string
                                    maxLength: 16384
                                  - type: 'null'
                              semantic_anchors:
                                maxItems: 128
                                type: array
                                items:
                                  type: string
                                  maxLength: 512
                              aliases:
                                maxItems: 64
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 256
                              boundary:
                                anyOf:
                                  - type: object
                                    properties:
                                      inclusions:
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 4096
                                          - type: 'null'
                                      exclusions:
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 4096
                                          - type: 'null'
                                      absence_rule:
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 4096
                                          - type: 'null'
                                    additionalProperties: false
                                  - type: 'null'
                              key_properties:
                                not: {}
                            additionalProperties: false
                          - type: 'null'
                      operative_metadata:
                        $ref: >-
                          #/components/schemas/http_shapes_definition_response____schema0
                    required:
                      - type_ref
                      - name
                      - properties
                      - descriptive_property_refs
                    additionalProperties: false
                relationships:
                  maxItems: 2048
                  type: array
                  items:
                    type: object
                    properties:
                      relationship_ref:
                        type: string
                        pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      name:
                        type: string
                        minLength: 1
                        maxLength: 256
                      from_type_ref:
                        type: string
                        pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      to_type_ref:
                        type: string
                        pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      cardinality:
                        type: string
                        enum:
                          - one_to_one
                          - one_to_many
                          - many_to_one
                          - many_to_many
                      description:
                        anyOf:
                          - type: string
                            maxLength: 16384
                          - type: 'null'
                      semantic_anchors:
                        default: []
                        maxItems: 128
                        type: array
                        items:
                          type: string
                          maxLength: 512
                    required:
                      - relationship_ref
                      - name
                      - from_type_ref
                      - to_type_ref
                      - cardinality
                      - semantic_anchors
                    additionalProperties: false
                hero_type_ref:
                  anyOf:
                    - type: string
                      pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                    - type: 'null'
                telos:
                  type: object
                  properties:
                    purpose:
                      description: Why this Shape exists, in one or two sentences, or null.
                      anyOf:
                        - type: string
                          maxLength: 4096
                        - type: 'null'
                    objectives:
                      description: >-
                        What the Shape helps people achieve; an empty list is
                        allowed.
                      maxItems: 64
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 4096
                    success_metrics:
                      description: >-
                        How people can tell the Shape is doing its job; an empty
                        list is allowed.
                      maxItems: 64
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 4096
                  required:
                    - objectives
                    - success_metrics
                  additionalProperties: false
                mindset:
                  type: string
                  minLength: 1
                  maxLength: 4096
                relationship_evidence_rule:
                  type: string
                  minLength: 1
                  maxLength: 4096
                operative_metadata:
                  $ref: >-
                    #/components/schemas/http_shapes_definition_response____schema0
                domain_rules:
                  type: object
                  properties:
                    version:
                      description: Rule format version; always 1.
                      type: number
                      const: 1
                    relationships:
                      description: Up to 128 limits on how many links an instance has.
                      maxItems: 128
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            description: Stable name of this rule, unique within the Shape.
                            type: string
                            pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                          relationship_ref:
                            description: Local ref of the relationship the rule counts.
                            type: string
                            pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                          direction:
                            description: >-
                              outgoing counts links that start at the type;
                              incoming counts links that end at it.
                            type: string
                            enum:
                              - outgoing
                              - incoming
                          min:
                            description: Fewest links each instance must have.
                            type: integer
                            minimum: 0
                            maximum: 4294967295
                          max:
                            description: >-
                              Most links each instance may have, or null for no
                              limit.
                            anyOf:
                              - type: integer
                                minimum: 0
                                maximum: 4294967295
                              - type: 'null'
                        required:
                          - id
                          - relationship_ref
                          - direction
                          - min
                          - max
                        additionalProperties: false
                    capture_bindings:
                      description: >-
                        Up to 64 named sets of links a newly captured instance
                        must have.
                      type: object
                      propertyNames:
                        type: string
                        pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                      additionalProperties:
                        maxItems: 128
                        type: array
                        items:
                          type: object
                          properties:
                            type_ref:
                              description: >-
                                Local ref of the type at the counted end of the
                                relationship.
                              type: string
                              pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                            relationship_ref:
                              description: >-
                                Local ref of the relationship that must link a
                                new instance.
                              type: string
                              pattern: ^[A-Za-z][A-Za-z0-9._-]{0,127}$
                            direction:
                              description: >-
                                outgoing counts links that start at the type;
                                incoming counts links that end at it.
                              type: string
                              enum:
                                - outgoing
                                - incoming
                          required:
                            - type_ref
                            - relationship_ref
                            - direction
                          additionalProperties: false
                  required:
                    - version
                    - relationships
                  additionalProperties: false
                retired_refs:
                  maxItems: 8192
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 520
              required:
                - name
                - adherence
                - types
                - relationships
              additionalProperties: false
          required:
            - schema
            - version
            - definition
          additionalProperties: false
      required:
        - data
      additionalProperties: false
    http_shapes_definition_response____schema0:
      anyOf:
        - type: 'null'
        - type: boolean
        - type: number
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/http_shapes_definition_response____schema0'
        - type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: '#/components/schemas/http_shapes_definition_response____schema0'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.