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

# Create Artist

> **artist/**

<Note>
  This endpoint requires authentication. Include your Bearer token in the Authorization header.
</Note>

## Description

**artist/**

**Description:**
The `/artist/` endpoint allows the creation of a new artist profile by providing details such as artist name, sign date, label, external ID, links, associated users, and their respective split shares.

**Method:**
`POST`

**Request Payload:**

| Parameter    | Type   | Description                                                          | Required |
| ------------ | ------ | -------------------------------------------------------------------- | -------- |
| artistName   | string | The name of the artist.                                              | Yes      |
| signDate     | date   | The date the artist was signed.                                      | Yes      |
| label        | string | The label associated with the artist.                                | No       |
| copyright    | string | The copyright information of the artist.                             | No       |
| publisher    | string | The publisher information of the artist.                             | No       |
| contributors | array  | An array of objects containing contributor names and roles.          | Yes      |
| externalId   | string | The external ID of the artist.                                       | Yes      |
| links        | object | Links to the artist's website and social media profiles.             | Yes      |
| users        | array  | An array of user IDs associated with the artist.                     | Yes      |
| split        | array  | An array of objects containing user IDs and their respective shares. | Yes      |

> See sample payload and response below

## Code Examples

<CodeGroup>
  ```javascript Node.js theme={null}
  const response = await fetch('https://api.royalti.io/artist/', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      "artistName": "sample-artistName",
      "signDate": "2024-01-21",
      "externalId": "sample-externalId",
      "label": "sample-label",
      "copyright": "sample-copyright",
      "publisher": "sample-publisher",
      "contributors": [
        {
          "name": "sample-name",
          "role": "sample-role"
        }
      ],
      "links": {
        "website": "sample-website",
        "twitter": "sample-twitter",
        "instagram": "sample-instagram",
        "facebook": "sample-facebook",
        "youtube": "sample-youtube"
      },
      "users": [
        {}
      ],
      "split": [
        {
          "user": "sample-user",
          "share": 1
        }
      ]
    })
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
    'https://api.royalti.io/artist/',
    headers={
      'Authorization': f'Bearer {token}'
    },
    json={"artistName":"sample-artistName","signDate":"2024-01-21","externalId":"sample-externalId","label":"sample-label","copyright":"sample-copyright","publisher":"sample-publisher","contributors":[{"name":"sample-name","role":"sample-role"}],"links":{"website":"sample-website","twitter":"sample-twitter","instagram":"sample-instagram","facebook":"sample-facebook","youtube":"sample-youtube"},"users":[{}],"split":[{"user":"sample-user","share":1}]}
  )

  data = response.json()
  print(data)
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.royalti.io/artist/ \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"artistName":"sample-artistName","signDate":"2024-01-21","externalId":"sample-externalId","label":"sample-label","copyright":"sample-copyright","publisher":"sample-publisher","contributors":[{"name":"sample-name","role":"sample-role"}],"links":{"website":"sample-website","twitter":"sample-twitter","instagram":"sample-instagram","facebook":"sample-facebook","youtube":"sample-youtube"},"users":[{}],"split":[{"user":"sample-user","share":1}]}'

  ```
</CodeGroup>


## OpenAPI

````yaml post /artist/
openapi: 3.0.0
info:
  title: Royalti.io API
  description: "# Royalti API\r\n\r\nThis is the Royalti music royalty management platform API server.\r\n\r\n## Overview\r\n\r\nThe Royalti API provides comprehensive music royalty management services including:\r\n- Music publishing and writer management\r\n- Royalty processing and analytics\r\n- DDEX integration for music industry standards\r\n- File processing and pattern recognition\r\n- Payment processing and distribution\r\n\r\n## Authentication\r\n\r\nThe API uses JWT-based authentication with multiple protection levels:\r\n- Public endpoints for basic operations\r\n- Protected endpoints requiring valid JWT tokens\r\n- Admin endpoints for administrative functions\r\n\r\n## Features\r\n\r\n- Multi-dimensional royalty analytics\r\n- CWR (Collective Works Registration) support\r\n- DDEX integration for music metadata\r\n- Advanced file processing with pattern recognition\r\n- Real-time data processing with queue system"
  version: 2.6.0
  contact:
    name: Royalti.io Support
    email: support@royalti.io
    url: https://royalti.io
  license:
    name: Proprietary
    url: https://royalti.io/terms
servers:
  - url: https://api.royalti.io
    description: Production server
  - url: https://api-dev.royalti.io
    description: Development server
  - url: http://localhost:8084
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Accounting
    description: Accounting and financial transaction operations
  - name: DDEX
    description: DDEX operations (ERN/MEAD, messages, delivery, providers)
  - name: Label
    description: Label management operations
  - name: Internal Webhooks
    description: Internal system webhooks for royalty processing and downloads
  - name: Payment Webhooks
    description: Payment processor webhook endpoints
  - name: Billing Webhooks
    description: Stripe billing and subscription webhooks
  - name: Infrastructure Webhooks
    description: Cloudflare domain and SSL webhooks
  - name: Distribution Webhooks
    description: Digital distribution platform webhooks (FUGA)
paths:
  /artist/:
    post:
      tags:
        - Artist
      summary: Create Artist
      description: >-
        **artist/**


        **Description:**

        The `/artist/` endpoint allows the creation of a new artist profile by
        providing details such as artist name, sign date, label, external ID,
        links, associated users, and their respective split shares.


        **Method:**

        `POST`


        **Request Payload:**


        | Parameter | Type | Description | Required |

        | --- | --- | --- | --- |

        | artistName | string | The name of the artist. | Yes |

        | signDate | date | The date the artist was signed. | Yes |

        | label | string | The label associated with the artist. | No |

        | copyright | string | The copyright information of the artist. | No |

        | publisher | string | The publisher information of the artist. | No |

        | contributors | array | An array of objects containing contributor
        names and roles. | Yes |

        | externalId | string | The external ID of the artist. | Yes |

        | links | object | Links to the artist's website and social media
        profiles. | Yes |

        | users | array | An array of user IDs associated with the artist. | Yes
        |

        | split | array | An array of objects containing user IDs and their
        respective shares. | Yes |


        > See sample payload and response below
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                artistName:
                  type: string
                  description: The name of the artist
                signDate:
                  type: string
                  format: date
                  description: The date the artist was signed
                externalId:
                  type: string
                  description: The external ID of the artist
                label:
                  type: string
                  description: The label associated with the artist
                copyright:
                  type: string
                  description: Copyright information
                publisher:
                  type: string
                  description: Publisher information
                contributors:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      role:
                        type: string
                  description: Contributors to the artist
                links:
                  type: object
                  properties:
                    website:
                      type: string
                      format: uri
                    twitter:
                      type: string
                      format: uri
                    instagram:
                      type: string
                      format: uri
                    facebook:
                      type: string
                      format: uri
                    youtube:
                      type: string
                      format: uri
                  description: Links to the artist's website and social media profiles
                users:
                  type: array
                  items:
                    type: string
                  description: An array of user IDs associated with the artist
                split:
                  type: array
                  items:
                    type: object
                    properties:
                      user:
                        type: string
                      share:
                        type: number
                  description: >-
                    An array of objects containing user IDs and their respective
                    shares
              required:
                - artistName
                - signDate
                - users
                - split
              example:
                artistName: testArtist
                signDate: '2022-01-21'
                externalId: 1rema45
                label: Mavins Records
                copyright: mavins global jonzing world
                publisher: mavings global
                contributors:
                  - name: contributor 1
                    role: composer
                  - name: contributor 2
                    role: producer
                links:
                  website: https://remamavins.com/
                  twitter: https://twitter.com/taremamavins
                  instagram: https://www.instagram.com/remamavins/
                  facebook: https://www.facebook.com/remamavins
                  youtube: https://www.youtube.com/remamavins
                users:
                  - 91f1d1bd-ef25-4990-bd4f-aeee696c73a9
                  - 9ea08acc-e135-4bd9-b159-48339ff65061
                  - b369dabe-b4e0-4787-91a5-b561c98601e5
                split:
                  - user: 91f1d1bd-ef25-4990-bd4f-aeee696c73a9
                    share: 30
                  - user: 9ea08acc-e135-4bd9-b159-48339ff65061
                    share: 50
                  - user: b369dabe-b4e0-4787-91a5-b561c98601e5
                    share: 20
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique identifier of the artist
                  artistName:
                    type: string
                    description: Name of the artist
                  signDate:
                    type: string
                    format: date-time
                    description: Date the artist was signed
                  label:
                    type: string
                    description: Label associated with the artist
                  externalId:
                    type: string
                    description: External ID of the artist
                  copyright:
                    type: string
                    description: Copyright information
                  publisher:
                    type: string
                    description: Publisher information
                  links:
                    type: object
                    description: Social media and website links
                    properties:
                      website:
                        type: string
                        format: uri
                      twitter:
                        type: string
                        format: uri
                      instagram:
                        type: string
                        format: uri
                      facebook:
                        type: string
                        format: uri
                      youtube:
                        type: string
                        format: uri
                  contributors:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        role:
                          type: string
                    description: Contributors to the artist
                  TenantId:
                    type: integer
                    description: Tenant ID the artist belongs to
                  createdAt:
                    type: string
                    format: date-time
                    description: Timestamp of when the artist was created
                  updatedAt:
                    type: string
                    format: date-time
                    description: Timestamp of when the artist was last updated
              example:
                id: 2fca1b81-2f97-4b02-92a2-899d17c756b8
                artistName: alobammm
                signDate: '2025-01-12T00:00:00.000Z'
                label: Mavins Records
                externalId: 1rema45
                copyright: mavins global jonzing world
                publisher: mavings global
                links:
                  website: https://remamavins.com/
                  twitter: https://twitter.com/taremamavins
                  instagram: https://www.instagram.com/remamavins/
                  facebook: https://www.facebook.com/remamavins
                  youtube: https://www.youtube.com/remamavins
                contributors:
                  - name: contributor 1
                    role: composer
                  - name: contributor 2
                    role: producer
                TenantId: 2
                createdAt: '2025-01-21T14:30:00.000Z'
                updatedAt: '2025-01-21T14:30:00.000Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: error
              message:
                type: string
                example: Invalid request parameters
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: error
              message:
                type: string
                example: Unauthorized
    NotFound:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: error
              message:
                type: string
                example: Resource not found
  schemas:
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: array
              items:
                type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT Authorization header using the Bearer scheme. Format: "Bearer
        {token}"

````