Skip to main content
POST
/
contacts
/
{contactId}
curl --request POST \
  --url https://{companyName}.api.joinluminous.com/external/api/v1/contacts/{contactId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "newemail@example.com"
}
'
{
  "data": {
    "id": "789123",
    "created_at": "2023-03-15T14:30:00Z",
    "updated_at": "2023-03-15T14:30:00Z",
    "status": "active",
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@acmecorp.com",
    "phone": "555-987-6543",
    "phone_2": "555-555-5555",
    "full_name": "John Smith",
    "company_id": "123456",
    "company": {
      "id": "123456",
      "name": "Acme Corporation"
    },
    "is_primary": true,
    "receive_quotation_pdf": false,
    "receive_purchase_order_pdf": false,
    "receive_purchase_order_invoice_pdf": false,
    "has_portal_login": false,
    "companies": [
      {
        "id": 123,
        "name": "<string>",
        "is_primary": true,
        "receive_quotation_pdf": true,
        "receive_purchase_order_pdf": true,
        "receive_purchase_order_invoice_pdf": true
      }
    ],
    "tags": [
      {
        "id": 123,
        "name": "<string>",
        "description": "<string>",
        "icon": "<string>",
        "color": "<string>"
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.joinluminous.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.

Path Parameters

contactId
integer
required

The unique identifier of the contact

Body

application/json
first_name
string | null

Contact's first name

Maximum string length: 255
Example:

"John"

last_name
string | null

Contact's last name

Maximum string length: 255
Example:

"Smith"

company_id
integer | null

ID of the company this contact belongs to.

For updates:

  • Optional - if not provided, the existing company association will be preserved
  • If provided, must be a valid, non-empty integer that exists in the system
  • Cannot be an empty string or null if included in the request
  • Changing the company_id will move the contact to the new company
Example:

123

email
string<email> | null

Contact's email address

Maximum string length: 255
Example:

"john.smith@acmecorp.com"

phone_1
string | null

Contact's primary phone number

Maximum string length: 255
Example:

"555-987-6543"

phone_2
string | null

Contact's secondary phone number

Maximum string length: 255
Example:

"555-555-5555"

receiving_bank_name
string | null

Bank name for receiving payments

Maximum string length: 255
receiving_bank_address
string | null

Bank address for receiving payments

Maximum string length: 255
is_primary
boolean | null

Whether this is the primary contact for the company

Example:

false

receive_quotation_pdf
boolean | null

Whether the contact should receive quotation PDFs

Example:

false

receive_purchase_order_pdf
boolean | null

Whether the contact should receive purchase order PDFs

Example:

false

receive_purchase_order_invoice_pdf
boolean | null

Whether the contact should receive purchase order invoice PDFs

Example:

false

tags
string[] | null

Tags to associate with the contact

Maximum string length: 255
Example:
["sales", "primary"]
company_ids
integer[]

Multiple company associations (alternative to company_id)

Minimum array length: 1
password
string<password>

Optional. Creates or updates the B2B client portal login for this contact. The contact must have an email set (either existing or provided in the same request). Changing email without password on a contact that already has a portal login will update the linked login's email to match.

Required string length: 8 - 255

Response

Contact successfully updated

data
object