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

# Refresh Customer Token

This endpoint refreshes a customer token. This is useful when you want to force a customer token to rotate because an existing one may be compromised.

### Body

<ParamField body="current_token" type="string">
  This is the current customer token you have for the customer that you want to
  rotate.
</ParamField>

### Response

<ResponseField name="success" type="number">
  Indicates whether the call was successful. 1 if successful, 0 if not.
</ResponseField>

<ResponseField name="customer" type="object">
  The contents of the customer

  <Expandable title="Toggle object">
    <ResponseField name="token" type="string">
      The customer token (customerToken or CUSTOMER\_TOKEN) that will be used to
      identify which customer is viewing the dashboard. You should save this on your
      end to use when rendering an embedded dashboard by passing this token into the
      web component or iframe. Example usage
      [here](/embedding-documentation/dashboard/option-1-web-component/).
    </ResponseField>

    <ResponseField name="name" type="string">
      The display name you provided for your customer in Explo.
    </ResponseField>

    <ResponseField name="provided_id" type="string">
      The ID you use to identify this customer in your database that you provided.
      This is also the ID you will use to reference your customer in Explo queries
      or access your customer via the API. For more information on example usage,
      check out [this section](/creating-dashboards/variables/tips).
    </ResponseField>

    <ResponseField name="emails" type="object">
      An array of email addresses you provided for your customer.
    </ResponseField>

    <ResponseField name="is_demo_group" type="boolean">
      True if this customer is a demo customer, which means that data panels will
      include a demo watermark for the customer. Demo customers do not count towards
      paid customers.
    </ResponseField>

    <ResponseField name="properties" type="JSON or null">
      A set of key-value pairs assigned to this customer. These will be accessible
      through variables in the dashboards and SQL editor. More information on
      properties can be found in [this
      section](/creating-dashboards/variables/passing-in-variables).
    </ResponseField>

    <ResponseField name="computed_properties" type="JSON">
      A properties object based on the provided properties of this customer and any
      inherited properties from parent customers.
    </ResponseField>

    <ResponseField name="parent_schema_datasource_mapping" type="JSON | Null">
      A set of key-values pairs that map a schema id to the data source that this
      customer loads data from. For more information on schemas and data sources,
      check out [this section](/database-setup/data-sources-and-schema/).
    </ResponseField>

    <ResponseField name="computed_parent_schema_datasource_mapping" type="JSON">
      A schema datasource mapping object based on the
      parent\_schema\_datasource\_mapping of the customer and any inherited
      parent\_schema\_datasource\_mapping from parent customers.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash Example Request theme={null}
  curl --location --request POST 'https://api.explo.co/api/update_customer/' \
  --header 'Content-Type: application/json' \
  --header 'Explo-Authorization: Token <token>' \
  --data-raw '{
      "current_token": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": 1,
    "customer": {
      "token": "<customer_token_to_auth_dashboard>",
      "name": "Example 1",
      "provided_id": "example_1",
      "is_demo_group": false,
      "emails": ["new_email@example.com"],
      "properties": { "filterValue": "new_value" },
      "computed_properties": { "filterValue": "new_value" },
      "parent_schema_datasource_mapping": {"40": "213": "134": 386"},
      "computed_parent_schema_datasource_mapping": {"40": "213": "134": 386"}
    }
  }
  ```
</ResponseExample>
