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

# Update a contact by vid

> This endpoint is used to update an existing contact in HubSpot by its vid (visitor ID). It only updates the properties specified in the request. Use case for this endpoint: Let's say you've been updating contact records in an external database and now you want to sync those updates to HubSpot. You can use this endpoint to complete the sync and avoid making manual updates.

export const ScopesList = ({scopes = [], description = "この API には、次のいずれかのスコープが必要です。"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

<Accordion title="Scope requirements">
  <ScopesList scopes={['crm.objects.contacts.read', 'content', 'crm.objects.contacts.write']} />
</Accordion>


## OpenAPI

````yaml specs/legacy/v1/crm-contacts-v1.json POST /contacts/v1/contact/vid/{vid}/profile
openapi: 3.0.0
info:
  title: CRM Contacts API v1
  version: 1.0.0
  description: Use the contact lists API to create and manage contact lists.
  x-hubspot-introduction: Use the contact lists API to create and manage contact lists.
  x-hubspot-api-use-case: >-
    Retrieve a contact list by ID to bring that contact data into your external
    system.
servers:
  - url: https://api.hubapi.com
    description: HubSpot API Server
security: []
paths:
  /contacts/v1/contact/vid/{vid}/profile:
    post:
      summary: Update a contact by vid
      description: >-
        This endpoint is used to update an existing contact in HubSpot by its
        vid (visitor ID). It only updates the properties specified in the
        request. Use case for this endpoint: Let's say you've been updating
        contact records in an external database and now you want to sync those
        updates to HubSpot. You can use this endpoint to complete the sync and
        avoid making manual updates.
      operationId: postcontactsv1contactvidvidprofile
      parameters:
        - name: vid
          in: query
          required: true
          description: >-
            Each vid requires it's own query parameter (vid=10&vid=11). Requests
            should be limited to 100 or fewer vids. Any vids that are provided
            that are invalid will be ignored.
          schema:
            type: string
        - name: property
          in: query
          required: false
          description: >-
            Specify the properties that should be returned for each ID. By
            default, the endpoint returns all valued properties for a contact.
            If this parameter is used, only the specified property or properties
            will be included.
          schema:
            type: string
        - name: propertyMode
          in: query
          required: false
          description: >-
            One of `value_only` or `value_and_history` to specify if the current
            value for a property should be fetched, or the value and all the
            historical values for that property. Default is `value_only`.
          schema:
            type: string
        - name: formSubmissionMode
          in: query
          required: false
          description: >-
            One of `all`, `none`, `newest`, `oldest` to specify which form
            submissions should be fetched. Default is `newest`.
          schema:
            type: string
        - name: showListMemberships
          in: query
          required: false
          description: >-
            Boolean `true` or `false` to indicate whether current list
            memberships should be fetched for the contact. Default is `false`.
          schema:
            type: string
        - name: includeDeletes
          in: query
          required: false
          description: >-
            Boolean true or false to indicate whether the return of deleted
            contacts is desired. Default is `false`.
          schema:
            type: string
      responses:
        '200':
          description: >-
            Successful response - For a given account, return information about
            a group of contacts by their unique IDs
          content:
            application/json:
              schema:
                type: object
              examples:
                example1:
                  summary: or company - Example 1
                  value:
                    properties:
                      - property: email
                        value: new-email@hubspot.com
                      - property: firstname
                        value: Updated
                      - property: lastname
                        value: Record
                      - property: website
                        value: ''
                      - property: lifecyclestage
                        value: customer
      security:
        - oauth2:
            - crm.objects.contacts.write
        - oauth2_legacy: []
        - private_apps:
            - crm.objects.contacts.write
        - private_apps_legacy: []
components: {}

````