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

# Create A Contact



## OpenAPI

````yaml /openapi.json post /v1/partners/{partner_id}/contacts
openapi: 3.0.3
info:
  contact:
    name: Stuut Support
    url: https://stuut.ai
    email: devs@stuut.co
  termsOfService: https://stuut.ai/terms-and-conditions
  title: Stuut API
  version: 0.1.0
servers:
  - url: http://api.stuut.ai
security: []
tags:
  - name: Analytics
  - name: Bank Accounts
  - name: Bank Statements
  - name: Bank Transactions
  - name: Call Agents
  - name: Call Agent Scenarios
  - name: Calls
  - name: Contact Suggestions
  - name: demo
  - name: Email Senders
  - name: Email Templates
  - name: Email Template Folders
  - name: Email Threads
  - name: Emails
  - name: Files
  - name: Invoices
  - name: Notes
  - name: Organizations
  - name: Outreach Workflows
  - name: Partners
  - name: Partner Contacts
  - name: Payments
  - name: Phone Numbers
  - name: Plaid
  - name: Profile
  - name: Pusher
  - name: Remittances
  - name: Tags
  - name: Tasks
  - name: User Invites
  - name: Users
paths:
  /v1/partners/{partner_id}/contacts:
    post:
      tags:
        - Partner Contacts
      summary: Create A Contact
      operationId: contacts.create
      parameters:
        - in: path
          name: partner_id
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateContact'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
          description: Successful response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StuutErrorHTTP'
          description: Authentication error
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StuutErrorHTTP'
          description: Not found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: Validation error
      security:
        - BearerAuth: []
components:
  schemas:
    CreateContact:
      type: object
      properties:
        email:
          type: string
          format: email
        given_name:
          type: string
          nullable: true
        family_name:
          type: string
          nullable: true
        is_primary_email:
          type: boolean
        is_primary_phone:
          type: boolean
        phone:
          type: string
          nullable: true
        job_title:
          type: string
          nullable: true
        internal_role:
          enum:
            - account_manager
            - account_executive
            - csm
            - null
          nullable: true
        external_role:
          enum:
            - billing_contact
            - executive
            - economic_user
            - null
          nullable: true
      required:
        - email
    Contact:
      type: object
      properties:
        id:
          type: string
          maxLength: 32
        address:
          $ref: '#/components/schemas/Address'
        address_id:
          type: integer
          nullable: true
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/ContactAddress'
        created_at:
          type: string
          format: date-time
        custom_fields: {}
        email:
          type: string
          maxLength: 255
          description: The contact's email address.
        external_role:
          maxLength: 15
          description: The external contact's role.
          enum:
            - billing_contact
            - executive
            - economic_user
            - null
          nullable: true
        family_name:
          type: string
          description: If an individual, the contact's family name.
          nullable: true
        given_name:
          type: string
          description: If an individual, the contact's given name.
          nullable: true
        internal_role:
          maxLength: 17
          description: The internal contact's role.
          enum:
            - account_manager
            - account_executive
            - csm
            - null
          nullable: true
        is_email_disabled:
          type: boolean
          description: Whether the contact's email has been deemed invalid.
        is_phone_disabled:
          type: boolean
          description: Whether the contact's email has been deemed invalid.
        is_primary:
          type: boolean
          description: Whether the contact is a primary contact for the partner.
        is_primary_email:
          type: boolean
          description: Whether the contact is the primary email contact for the partner.
        is_primary_phone:
          type: boolean
          description: Whether the contact is the primary phone contact for the partner.
        job_title:
          type: string
          description: The contact's job at their company.
          nullable: true
        modified_at:
          type: string
          format: date-time
          nullable: true
        name:
          type: string
          description: The contact's name, if no given/family name.
          nullable: true
        object:
          type: string
        partner_id:
          type: string
          maxLength: 32
        phone:
          type: string
          maxLength: 32
          description: The contact's phone number.
          nullable: true
        remote_created_at:
          type: string
          format: date-time
          description: When the third party's entry was created.
          nullable: true
        remote_id:
          type: string
          description: The contact's third party API ID.
          nullable: true
        remote_metadata:
          nullable: true
        remote_modified_at:
          type: string
          format: date-time
          description: When the third party's entry was updated.
          nullable: true
        status_metadata:
          description: >-
            Holds metadata about why contact channel statuses changed, has
            source (email or call) as key values (e.g. {'email'|'call': {status:
            'enabled'|'disabled', reason: str, timestamp: datetime}})
      required:
        - email
        - object
        - partner_id
    StuutErrorHTTP:
      type: object
      properties:
        data:
          type: object
          additionalProperties: {}
        error:
          type: string
        message:
          type: string
      required:
        - data
        - error
        - message
    ValidationError:
      properties:
        detail:
          type: object
          properties:
            <location>:
              type: object
              properties:
                <field_name>:
                  type: array
                  items:
                    type: string
        message:
          type: string
      type: object
    Address:
      type: object
      properties:
        city:
          type: string
          description: City, district, suburb, town, or village.
          nullable: true
        coordinates:
          anyOf:
            - type: object
              nullable: true
            - $ref: '#/components/schemas/Coordinates'
        country:
          type: string
          maxLength: 3
          description: >-
            Two-letter country code. [(ISO 3166
            alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
          nullable: true
        created_at:
          type: string
          format: date-time
        description:
          type: string
          nullable: true
        line1:
          type: string
          description: Address line 1 (e.g., street, PO Box, or company name).
          nullable: true
        line2:
          type: string
          description: Address line 2 (e.g., apartment, suite, unit, or building).
          nullable: true
        modified_at:
          type: string
          format: date-time
          nullable: true
        name:
          type: string
          nullable: true
        object:
          type: string
        phone:
          type: string
          maxLength: 20
          nullable: true
        postal_code:
          type: string
          description: ZIP or postal code.
          nullable: true
        remote_id:
          type: string
          description: The address' third party API ID.
          nullable: true
        state:
          type: string
          description: State, county, province, or region.
          nullable: true
        type:
          type: string
          description: >-
            Whether the address is a shipping, billing, or other type of
            address.
      required:
        - object
    ContactAddress:
      type: object
      properties:
        id:
          type: string
          maxLength: 32
        city:
          type: string
          description: City, district, suburb, town, or village.
          nullable: true
        coordinates:
          anyOf:
            - type: object
              nullable: true
            - $ref: '#/components/schemas/Coordinates'
        country:
          type: string
          maxLength: 3
          description: >-
            Two-letter country code. [(ISO 3166
            alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
          nullable: true
        created_at:
          type: string
          format: date-time
        description:
          type: string
          nullable: true
        is_primary:
          type: boolean
        line1:
          type: string
          description: Address line 1 (e.g., street, PO Box, or company name).
          nullable: true
        line2:
          type: string
          description: Address line 2 (e.g., apartment, suite, unit, or building).
          nullable: true
        modified_at:
          type: string
          format: date-time
          nullable: true
        name:
          type: string
          nullable: true
        object:
          type: string
        postal_code:
          type: string
          description: ZIP or postal code.
          nullable: true
        state:
          type: string
          description: State, county, province, or region.
          nullable: true
        type:
          type: string
          description: >-
            Whether the address is a shipping, billing, or other type of
            address.
      required:
        - object
    Coordinates:
      type: object
      properties:
        lat:
          type: number
        lng:
          type: number
      required:
        - lat
        - lng
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````