# Get record

- Operation ID: `getRecord`
- HTTP method: `GET`
- Path: `/brickworks/v1/schemas/{SchemaIdentifier}/records/{RecordIdentifier}`
- [Human-readable API reference](https://hub.synerise.com/api-reference/brickworks#tag/Brickworks:-Records/operation/getRecord)

## Self-contained OpenAPI method

The fenced document below contains this method's documentation and all of its local references. It is self-contained; no category or master specification fetch is required.

```yaml
openapi: 3.0.0
info:
  title: Synerise Public API
  version: 1.9.1
paths:
  /brickworks/v1/schemas/{SchemaIdentifier}/records/{RecordIdentifier}:
    get:
      tags:
        - "Brickworks: Records"
      summary: Get record
      description: |
        Retrieve a record. You can select the fields that you want to include in the response.

        If the record has multiple versions in different publishing states, the first available version is returned according to publishing status priority:
          - PUBLISHED
          - DRAFT
          - SCHEDULED
          - UNPUBLISHED
        You can use the `statuses` parameter to limit the lookup.


        ---

        **API consumers:** <a href="/api-reference/authorization?tag=Authorization&amp;operationId=userLogin" target="_blank" rel="noopener">Synerise User</a>, <a href="/api-reference/authorization?tag=Authorization&amp;operationId=profileLogin" target="_blank" rel="noopener">Workspace (Business Profile)</a>

        **API key permission required:** `BRICKWORKS_RECORDS_READ`

        **User role permission required:** `assets_brickworks: read`
      operationId: getRecord
      security:
        - JWT: []
      parameters:
        - name: SchemaIdentifier
          in: path
          required: true
          description: Schema identifier - can be a UUID (SchemaId) or a human-readable string (Schema AppId/API name, 3-25 characters)
          schema:
            oneOf:
              - type: string
                format: uuid
                title: Schema UUID
              - type: string
                minLength: 3
                maxLength: 25
                pattern: ^(?!__)(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)[\w\-]+$
                title: Schema AppId
          examples:
            uuid:
              value: 550e8400-e29b-41d4-a716-446655440000
              summary: Schema UUID
            appId:
              value: my_schema_app_id
              summary: Schema AppId (API name)
        - name: RecordIdentifier
          in: path
          required: true
          description: Record identifier - can be a UUID (RecordId) or a human-readable slug (RecordSlug, 6-40 characters)
          schema:
            oneOf:
              - type: string
                format: uuid
                title: Record UUID
              - type: string
                minLength: 6
                maxLength: 40
                pattern: ^(?!__)(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)[\w\-]+$
                title: Record slug
          examples:
            uuid:
              value: f6ce33ee-bdf2-4a23-87be-07de936ceeab
              summary: Record UUID
            slug:
              value: my-record-slug
              summary: Record slug
        - name: fields
          in: query
          required: false
          description: A comma-separated list of fields to retrieve. If not defined, all fields are included in the response.
          schema:
            type: array
            items:
              type: string
        - name: statuses
          in: query
          description: Comma-separated list of record statuses to filter the results.
          required: false
          style: form
          explode: false
          schema:
            type: string
            enum:
              - PUBLISHED
              - DRAFT
              - UNPUBLISHED
              - SCHEDULED
      responses:
        "200":
          description: Details of the record
          content:
            application/json:
              schema:
                x-class-name: Record
                x-interface-name-ts: Record
                allOf:
                  - type: object
                    required:
                      - id
                      - schemaId
                      - values
                      - createdBy
                      - updatedBy
                      - createdAt
                      - updatedAt
                      - status
                      - recordVersion
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: |
                          Unique identifier of a record, generated by the system. Can't be changed.

                          This identifier is common to all versions of the record, even when the slug changes.

                          In singleton-type schemas, use the schema's `appId` or `id` in place of record identifiers for generating content.
                      name:
                        type: string
                        maxLength: 255
                        minLength: 1
                        nullable: true
                        description: The name of the record. If not defined and there are no fields with `useAsRecordName = true`, GET requests return `Unnamed`.
                      schemaId:
                        type: string
                        format: uuid
                        description: Unique ID of the schema, generated automatically.
                      createdBy:
                        type: integer
                        format: int64
                        description: ID of the user who created the resource. If created by a workspace, the value is `0`.
                      updatedBy:
                        type: integer
                        format: int64
                        description: ID of the user who last updated the resource. If last updated by a workspace, the value is `0`.
                      publishedBy:
                        type: integer
                        format: int64
                        nullable: true
                        description: ID of the user who published the resource. If published by a workspace, the value is `0`.
                      deletedBy:
                        type: integer
                        format: int64
                        nullable: true
                        description: ID of the user who deleted the resource. If deleted by a workspace, the value is `0`.
                      createdAt:
                        type: string
                        format: date-time
                        description: Time when the resource was created
                      updatedAt:
                        type: string
                        format: date-time
                        description: Time when the resource was last updated
                      publishedAt:
                        type: string
                        format: date-time
                        nullable: true
                        description: Time when the resource was published
                      deletedAt:
                        type: string
                        format: date-time
                        nullable: true
                        description: Time when the resource was deleted
                      slug:
                        type: string
                        minLength: 6
                        maxLength: 40
                        pattern: ^([a-zA-Z0-9\-]|_[a-zA-Z0-9\-])[\w\-]*
                        description: |
                          Unique (within a schema) identifier of a record. Can't be a UUID.

                          In singleton-type schemas, use the schema's `appId` or `id` in place of record identifiers for generating content.
                      status:
                        type: string
                        x-class-name: RecordStatus
                        x-interface-name-ts: RecordStatus
                        description: |
                          Status of the record. When generating an object from a record, the last published version is used.  
                          - In simple schemas, a record can only be published. Updates overwrite the record without changing the version number.
                          - In versioned schemas:
                              - A published record can't be edited directly. You need to send an update which changes to the draft status (this increases the version number, and the existing published version isn't modified), and then publish again.
                              - An unpublished record can't be published immediately. It must receive the draft status first.
                              - When unpublishing a record, you can't edit any data in the record.
                        enum:
                          - DRAFT
                          - SCHEDULED
                          - PUBLISHED
                          - UNPUBLISHED
                      values:
                        type: object
                        x-class-name: RecordValues
                        x-interface-name-ts: RecordValues
                        description: |
                          Values included in the record. Each key is the name of a field. The value must match the configuration of the field in the schema.

                          **Default values aren't explicitly saved in the record** or shown in GET requests which retrieve the record, but are returned when an object is generated from the record.

                          Supported value types:
                          - Float (number)
                          - Integer
                          - String
                          - Boolean
                          - Date (string, format: date)
                          - Date-time (string, format: date-time)
                          - Profile attribute (object with attributeName)
                          - Typed array
                          - UUID (string, format: uuid)
                          - Jinjava (string)
                          - Catalog (object with itemKey, id)
                          - Object (free-form)
                          - External source (empty object)
                          - One-to-one reference (string - record ID)
                          - One-to-many reference (array of record IDs)
                          - Analysis (string, format: uuid)
                          - Promotion (string - promotion ID)
                          - File/Image (string - file ID)
                          - Recommendation (object with id, params)
                          - Voucher (object with id)
                          - Untyped JSON (object)
                          - Untyped array
                        additionalProperties: true
                        example:
                          stringField: example string
                          numberField: 123.45
                          integerField: 42
                          booleanField: true
                          dateField: 2024-01-15
                          dateTimeField: 2024-01-15T10:30:00Z
                          uuidField: 550e8400-e29b-41d4-a716-446655440000
                          arrayField:
                            - item1
                            - item2
                          objectField:
                            key: value
                          profileAttribute:
                            attributeName: email
                          catalog:
                            itemKey: SKU123
                            id: catalog-id
                          recommendation:
                            id: recommendation-campaign-id
                            params:
                              itemId: item-123
                      schemaVersion:
                        type: integer
                        format: int32
                        description: The ID of the schema version that was used when this record was last updated. For simple schemas, this is always `1`.
                      recordVersion:
                        type: number
                        format: int32
                        description: |
                          Identifier of the record version. 
                          - In simple schemas, this is always `1`
                          - In versioned schemas, the versions start with `1` on creation and are increased by 1 when you create a new draft. Publishing from a draft does NOT increase the version number.
                      schedule:
                        type: object
                        x-class-name: ScheduleEntry
                        x-interface-name-ts: ScheduleEntry
                        description: Time when the record is published - for example, every Monday, from 12:00 to 14:00
                        properties:
                          timezone:
                            type: string
                            description: Timezone of the schedule, as `UTC+offset` or according to the [tz database](https://en.wikipedia.org/wiki/Tz_database).
                            example: UTC+01:00
                          startType:
                            type: string
                            description: If `NOW`, the record is published immediately upon saving.
                            enum:
                              - NOW
                              - SCHEDULED
                          startDate:
                            type: string
                            description: Time when the schedule becomes active. If `startType` is NOW, this field is null.
                            format: date-time
                          endType:
                            type: string
                            description: Mode of inactivating the schedule
                            enum:
                              - NEVER
                              - DATE
                          endDate:
                            type: string
                            description: Time when the schedule becomes inactive, if `endType = DATE`
                            format: date-time
                          periodType:
                            type: string
                            description: |
                              Defines when the schedule applies within its activity period.

                              - ENTIRE: schedule is applied at all time since it becomes active until it becomes inactive.
                              - DAILY: schedule is active every day, at specific times
                              - WEEKLY: schedule is applied at specified days of the week (and optionally at specific times during those days)
                              - MONTHLY: schedule is applied at specified days of the month (and optionally at specific times during those days)
                              - WEEKDAY: schedule is applied on specified weekdays of a month; for example on the second Tuesday of each month
                            enum:
                              - ENTIRE
                              - DAILY
                              - WEEKLY
                              - MONTHLY
                              - WEEKDAY
                          parts:
                            type: array
                            description: |
                              An array of time rules that allow more granularity. All objects must match the period type set in `periodType` (for example, you cannot mix weekly and monthly conditions).

                              If `periodType` is `ENTIRE`, this array is empty.
                            items:
                              type: object
                              x-class-name: EntryScheduleRepeatPart
                              x-interface-name-ts: EntryScheduleRepeatPart
                              properties:
                                startDay:
                                  type: integer
                                  format: int32
                                  example: 1
                                  description: |
                                    If `periodType` is:

                                    - DAILY, the value is always 1.

                                    - WEEKLY or WEEKDAY, the values are 1-7 (1 is Monday).

                                    - MONTHLY, the values are 1-31 (days of the month).

                                    **Note:**  
                                    If you want to define two time rules for a day (for example, the schedule is active on Monday at 06:00-07:00 and 15:00-16:00), create a separate `part` object for each time period.
                                startTime:
                                  type: string
                                  example: 08:18:03
                                  description: The hour when the schedule becomes active.
                                endDay:
                                  type: integer
                                  format: int32
                                  example: 1
                                  description: Must be identical to `startDay`.
                                endTime:
                                  type: string
                                  example: 12:18:03
                                  description: The hour when the schedule becomes inactive.
                                ordinal:
                                  type: string
                                  description: |
                                    
                                    Applies only if `periodType` is WEEKDAY.

                                    **Example:**<br/>
                                    If you want a schedule to be active on every third Tuesday of the month, set `ordinal` to THIRD and `startDay` to 2. 

                                    **Note:**<br/>
                                    If you want a schedule to be active on every second and third Tuesday, you must create two separate `part` objects.
                                  enum:
                                    - FIRST
                                    - SECOND
                                    - THIRD
                                    - FOURTH
                                    - FIFTH
                                    - LAST
                              required:
                                - startDay
                                - startTime
                                - endDay
                                - endTime
                          enabled:
                            type: boolean
                            description: Defines if the schedule configuration is enabled. A schedule must be enabled in order to become active at the selected time.
                        required:
                          - timezone
                          - startType
                          - startDate
                          - endType
                          - enabled
        "400":
          description: Incorrect request (malformed JSON, wrong parameters, etc.). See error message for details.
          content:
            application/json:
              schema:
                type: object
                x-class-name: ObjectsError
                x-interface-name-ts: ObjectsError
                required:
                  - httpStatus
                  - errorCode
                  - timestamp
                  - message
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: Time when the error occurred
                  errorCode:
                    type: string
                    description: |
                      Code of the error, needed for troubleshooting

                      See error reference: [https://developers.synerise.com/errors.html](https://developers.synerise.com/errors.html)
                  httpStatus:
                    type: integer
                    description: Error's HTTP status code
                  message:
                    type: string
                    description: Description of the problem
                  traceId:
                    type: string
                    description: Unique identifier of the request, useful for tracing logs
                  errors:
                    type: array
                    items:
                      $ref: "#/components/schemas/brickworks-service-ObjectsError"
                  source:
                    type: object
                    x-class-name: ObjectErrorSource
                    x-interface-name-ts: ObjectErrorSource
                    required:
                      - pointer
                    properties:
                      pointer:
                        type: string
                        description: JSON Pointer for invalid body path
                      value:
                        type: string
                        description: Value that caused the validation error
                  details:
                    type: object
                    x-class-name: ObjectsErrorDetails
                    x-interface-name-ts: ObjectsErrorDetails
                    additionalProperties:
                      type: object
                    description: Additional structured error information
                  field:
                    type: string
                    description: Name of the field that caused the error
        "401":
          description: "Unauthorized: wrong consumer scope; token missing/expired/invalid; invalid API key; etc. See error message for details."
          content:
            application/json:
              schema:
                type: object
                x-class-name: GatewayError
                x-interface-name-ts: GatewayError
                properties:
                  error:
                    type: string
                    description: Summary of the error
                  status:
                    type: integer
                    format: int32
                    description: Status code
                  timestamp:
                    type: string
                    description: Time when the message was sent
                  message:
                    type: string
                    description: Description of the problem
        "403":
          description: Forbidden; insufficient permissions. See error message for details.
          content:
            application/json:
              schema:
                type: object
                x-class-name: GatewayError
                x-interface-name-ts: GatewayError
                properties:
                  error:
                    type: string
                    description: Summary of the error
                  status:
                    type: integer
                    format: int32
                    description: Status code
                  timestamp:
                    type: string
                    description: Time when the message was sent
                  message:
                    type: string
                    description: Description of the problem
        "404":
          description: Resource not found. See error message for details.
          content:
            application/json:
              schema:
                type: object
                x-class-name: ObjectsError
                x-interface-name-ts: ObjectsError
                required:
                  - httpStatus
                  - errorCode
                  - timestamp
                  - message
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: Time when the error occurred
                  errorCode:
                    type: string
                    description: |
                      Code of the error, needed for troubleshooting

                      See error reference: [https://developers.synerise.com/errors.html](https://developers.synerise.com/errors.html)
                  httpStatus:
                    type: integer
                    description: Error's HTTP status code
                  message:
                    type: string
                    description: Description of the problem
                  traceId:
                    type: string
                    description: Unique identifier of the request, useful for tracing logs
                  errors:
                    type: array
                    items:
                      $ref: "#/components/schemas/brickworks-service-ObjectsError"
                  source:
                    type: object
                    x-class-name: ObjectErrorSource
                    x-interface-name-ts: ObjectErrorSource
                    required:
                      - pointer
                    properties:
                      pointer:
                        type: string
                        description: JSON Pointer for invalid body path
                      value:
                        type: string
                        description: Value that caused the validation error
                  details:
                    type: object
                    x-class-name: ObjectsErrorDetails
                    x-interface-name-ts: ObjectsErrorDetails
                    additionalProperties:
                      type: object
                    description: Additional structured error information
                  field:
                    type: string
                    description: Name of the field that caused the error
        "409":
          description: The request could not be completed due to a conflict with the current state of the resource. See error message for details.
          content:
            application/json:
              schema:
                type: object
                x-class-name: ObjectsError
                x-interface-name-ts: ObjectsError
                required:
                  - httpStatus
                  - errorCode
                  - timestamp
                  - message
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: Time when the error occurred
                  errorCode:
                    type: string
                    description: |
                      Code of the error, needed for troubleshooting

                      See error reference: [https://developers.synerise.com/errors.html](https://developers.synerise.com/errors.html)
                  httpStatus:
                    type: integer
                    description: Error's HTTP status code
                  message:
                    type: string
                    description: Description of the problem
                  traceId:
                    type: string
                    description: Unique identifier of the request, useful for tracing logs
                  errors:
                    type: array
                    items:
                      $ref: "#/components/schemas/brickworks-service-ObjectsError"
                  source:
                    type: object
                    x-class-name: ObjectErrorSource
                    x-interface-name-ts: ObjectErrorSource
                    required:
                      - pointer
                    properties:
                      pointer:
                        type: string
                        description: JSON Pointer for invalid body path
                      value:
                        type: string
                        description: Value that caused the validation error
                  details:
                    type: object
                    x-class-name: ObjectsErrorDetails
                    x-interface-name-ts: ObjectsErrorDetails
                    additionalProperties:
                      type: object
                    description: Additional structured error information
                  field:
                    type: string
                    description: Name of the field that caused the error
        "422":
          description: The request was well-formed but could not be processed due to semantic or domain-related constraints. See error message for details.
          content:
            application/json:
              schema:
                type: object
                x-class-name: ObjectsError
                x-interface-name-ts: ObjectsError
                required:
                  - httpStatus
                  - errorCode
                  - timestamp
                  - message
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: Time when the error occurred
                  errorCode:
                    type: string
                    description: |
                      Code of the error, needed for troubleshooting

                      See error reference: [https://developers.synerise.com/errors.html](https://developers.synerise.com/errors.html)
                  httpStatus:
                    type: integer
                    description: Error's HTTP status code
                  message:
                    type: string
                    description: Description of the problem
                  traceId:
                    type: string
                    description: Unique identifier of the request, useful for tracing logs
                  errors:
                    type: array
                    items:
                      $ref: "#/components/schemas/brickworks-service-ObjectsError"
                  source:
                    type: object
                    x-class-name: ObjectErrorSource
                    x-interface-name-ts: ObjectErrorSource
                    required:
                      - pointer
                    properties:
                      pointer:
                        type: string
                        description: JSON Pointer for invalid body path
                      value:
                        type: string
                        description: Value that caused the validation error
                  details:
                    type: object
                    x-class-name: ObjectsErrorDetails
                    x-interface-name-ts: ObjectsErrorDetails
                    additionalProperties:
                      type: object
                    description: Additional structured error information
                  field:
                    type: string
                    description: Name of the field that caused the error
        "500":
          description: See error message for details.
          content:
            application/json:
              schema:
                type: object
                x-class-name: ObjectsError
                x-interface-name-ts: ObjectsError
                required:
                  - httpStatus
                  - errorCode
                  - timestamp
                  - message
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: Time when the error occurred
                  errorCode:
                    type: string
                    description: |
                      Code of the error, needed for troubleshooting

                      See error reference: [https://developers.synerise.com/errors.html](https://developers.synerise.com/errors.html)
                  httpStatus:
                    type: integer
                    description: Error's HTTP status code
                  message:
                    type: string
                    description: Description of the problem
                  traceId:
                    type: string
                    description: Unique identifier of the request, useful for tracing logs
                  errors:
                    type: array
                    items:
                      $ref: "#/components/schemas/brickworks-service-ObjectsError"
                  source:
                    type: object
                    x-class-name: ObjectErrorSource
                    x-interface-name-ts: ObjectErrorSource
                    required:
                      - pointer
                    properties:
                      pointer:
                        type: string
                        description: JSON Pointer for invalid body path
                      value:
                        type: string
                        description: Value that caused the validation error
                  details:
                    type: object
                    x-class-name: ObjectsErrorDetails
                    x-interface-name-ts: ObjectsErrorDetails
                    additionalProperties:
                      type: object
                    description: Additional structured error information
                  field:
                    type: string
                    description: Name of the field that caused the error
      x-snr-doc-urls:
        - /api-reference/brickworks#tag/Brickworks:-Records/operation/getRecord
servers:
  - description: Microsoft Azure EU
    url: https://api.synerise.com
  - description: Microsoft Azure USA
    url: https://api.azu.synerise.com
  - description: Google Cloud Platform
    url: https://api.geb.synerise.com
tags:
  - name: "Brickworks: Records"
components:
  schemas:
    brickworks-service-ObjectsError:
      type: object
      x-class-name: ObjectsError
      x-interface-name-ts: ObjectsError
      required:
        - httpStatus
        - errorCode
        - timestamp
        - message
      properties:
        timestamp:
          type: string
          format: date-time
          description: Time when the error occurred
        errorCode:
          type: string
          description: |
            Code of the error, needed for troubleshooting

            See error reference: [https://developers.synerise.com/errors.html](https://developers.synerise.com/errors.html)
        httpStatus:
          type: integer
          description: Error's HTTP status code
        message:
          type: string
          description: Description of the problem
        traceId:
          type: string
          description: Unique identifier of the request, useful for tracing logs
        errors:
          type: array
          items:
            $ref: "#/components/schemas/brickworks-service-ObjectsError"
        source:
          type: object
          x-class-name: ObjectErrorSource
          x-interface-name-ts: ObjectErrorSource
          required:
            - pointer
          properties:
            pointer:
              type: string
              description: JSON Pointer for invalid body path
            value:
              type: string
              description: Value that caused the validation error
        details:
          type: object
          x-class-name: ObjectsErrorDetails
          x-interface-name-ts: ObjectsErrorDetails
          additionalProperties:
            type: object
          description: Additional structured error information
        field:
          type: string
          description: Name of the field that caused the error
  securitySchemes:
    JWT:
      type: http
      scheme: bearer
      description: |-
        JWT Bearer token. The header looks like this: `Bearer {JWT}`

        Remember to include the space between 'Bearer' and the token.

        Generate a token via the **Authorization** endpoints.
```
