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

# Read one attribute definition

> GET /attributes/{attribute_id} on the WISEPIM Public API: one attribute definition of the bound project. Requires attributes:read.



## OpenAPI

````yaml openapi.json GET /api/public/v1/attributes/{attribute_id}
openapi: 3.1.0
info:
  title: WISEPIM Public API
  version: 1.0.0
  description: >-
    Read and update your WisePIM catalogue from your own systems. Authenticate
    with `Authorization: Bearer wpk_…`; create keys under Settings → API keys.
    Each key is bound to one project and to the scopes it was created with.
  summary: >-
    Read and update a WISEPIM project's products, categories and attributes from
    your own systems.
  termsOfService: https://wisepim.com/terms
  contact:
    name: WISEPIM support
    url: https://wisepim.com/contact
    email: info@wisepim.com
  x-logo:
    url: >-
      https://docs.wisepim.com/logo/wisepim-logo-horizontal-transparant-lightmode.png
    altText: WISEPIM
servers:
  - url: https://wisepim.com
    description: Production. Every path below already starts with /api/public/v1.
security:
  - ProjectApiKeyAuth: []
tags:
  - name: Key and project
    description: Check which key you are calling with and read the project it is bound to.
  - name: Products
    description: >-
      Read, create and update products. Reads need products:read, writes need
      products:write.
  - name: Categories
    description: >-
      Read the project's categories as a flat list with parent ids. Needs
      categories:read.
  - name: Attributes
    description: Read the project's attribute definitions. Needs attributes:read.
externalDocs:
  description: WISEPIM API reference and guides
  url: https://docs.wisepim.com/en/api-reference/introduction
paths:
  /api/public/v1/attributes/{attribute_id}:
    get:
      tags:
        - Attributes
      summary: Read one attribute definition
      description: >-
        One attribute definition. An attribute outside this project is a 404.
        Requires `attributes:read`.
      operationId: public_v1_get_attribute
      parameters:
        - in: path
          name: attribute_id
          schema:
            title: Attribute Id
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttributeOut'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorOut'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
      security:
        - ProjectApiKeyAuth: []
components:
  schemas:
    AttributeOut:
      properties:
        id:
          title: Id
          type: integer
        code:
          title: Code
          type: string
        label:
          title: Label
          type: string
        label_localized:
          additionalProperties: true
          title: Label Localized
          type: object
        attribute_type:
          title: Attribute Type
          type: string
        is_required:
          title: Is Required
          type: boolean
        is_unique:
          title: Is Unique
          type: boolean
        is_filterable:
          title: Is Filterable
          type: boolean
        is_searchable:
          title: Is Searchable
          type: boolean
        is_visible:
          title: Is Visible
          type: boolean
        group:
          anyOf:
            - $ref: '#/components/schemas/GroupRefOut'
            - type: 'null'
        options:
          description: Predefined options for select/multiselect attributes.
          title: Options
      required:
        - id
        - code
        - label
        - label_localized
        - attribute_type
        - is_required
        - is_unique
        - is_filterable
        - is_searchable
        - is_visible
      title: AttributeOut
      type: object
    ErrorOut:
      description: |-
        The shared error envelope every NinjaAPI instance renders.

        `code` is present for :class:`user_app.ninja_api.errors.ApiError`
        (`insufficient_scope`, `rate_limited`, `invalid_cursor`, …) so machine
        clients can branch without parsing `error`.
      properties:
        error:
          title: Error
          type: string
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
        request_id:
          title: Request Id
          type: string
      required:
        - error
        - request_id
      title: ErrorOut
      type: object
    ValidationErrorOut:
      description: 'HTTP 422: `detail` carries Ninja''s per-field validation errors.'
      properties:
        error:
          title: Error
          type: string
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
        request_id:
          title: Request Id
          type: string
        detail:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Detail
      required:
        - error
        - request_id
      title: ValidationErrorOut
      type: object
    GroupRefOut:
      properties:
        id:
          title: Id
          type: integer
        name:
          title: Name
          type: string
      required:
        - id
        - name
      title: GroupRefOut
      type: object
  securitySchemes:
    ProjectApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: Project API key (wpk_...)
      description: >-
        Send a project API key as `Authorization: Bearer wpk_...`. Create keys
        under Settings > API Access in the WISEPIM app (project owners and
        admins). A key is bound to one project and to the scopes chosen when it
        was created; scopes cannot be widened afterwards. Scopes: `project:read`
        - Read the project's name, languages, industry and limits.;
        `products:read` - List and read products, including attribute values and
        category ids.; `products:write` - Create and update products: names,
        descriptions, identifiers, prices, SEO fields, categories and attribute
        values.; `categories:read` - List and read the project's category tree.;
        `attributes:read` - List and read the project's attribute definitions.
      x-scopes:
        project:read: Read the project's name, languages, industry and limits.
        products:read: List and read products, including attribute values and category ids.
        products:write: >-
          Create and update products: names, descriptions, identifiers, prices,
          SEO fields, categories and attribute values.
        categories:read: List and read the project's category tree.
        attributes:read: List and read the project's attribute definitions.

````

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