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

# Create FaqArticle

> Create a new FaqArticle record.

A FaqArticle is a frequently asked question and answer published in the members portal, with optional audience restrictions for customers, plans, and teams; location-network visibility is controlled by the viewing location's FAQ data-visibility setting. Active, customer-eligible articles are also semantically matched to answer questions through the AI chat, WhatsApp, and voice channels. The same matcher can automatically answer Help Desk messages and customer comments when OpenAI Help Desk automation is enabled; matched replies include a link to the source FAQ. FAQ content changes refresh the embeddings used for these AI answers.

## Authentication

<Note>
  This endpoint requires OAuth2 authentication. Include a valid bearer token in the `Authorization` header.
  The authenticated user must be a full unrestricted administrator or have the **`FaqArticle-Create`** role.
</Note>

## Request Body

### Required Fields

<ParamField body="BusinessId" type="integer" required>
  ID of the location that owns this FAQ article; the viewing location's FAQ data-visibility setting controls where it can be displayed across a location network..
</ParamField>

<ParamField body="Title" type="string" required>
  Required question or heading shown for this FAQ article..
</ParamField>

<ParamField body="DisplayOrder" type="integer" required>
  Numeric position used to order articles within a group; create and update handlers normalize stored positions after changes..
</ParamField>

### Optional Fields

<ParamField body="SummaryText" type="string">
  Optional short plain-text or HTML summary of the answer, used with the article content in FAQ search indexing..
</ParamField>

<ParamField body="FullText" type="string">
  Optional full answer displayed in the members portal; HTML content is supported and is included in FAQ search indexing..
</ParamField>

<ParamField body="NewImageUrl" type="string">
  URL of a new file to upload as the image.
</ParamField>

<ParamField body="ClearImageFile" type="boolean">
  Set to true to remove the current image file.
</ParamField>

<ParamField body="NewLargeImageUrl" type="string">
  URL of a new file to upload as the large image.
</ParamField>

<ParamField body="ClearLargeImageFile" type="boolean">
  Set to true to remove the current large image file.
</ParamField>

<ParamField body="Active" type="boolean">
  Whether the article is active and therefore eligible to appear in the members portal, subject to its audience restrictions..
</ParamField>

<ParamField body="GroupName" type="string">
  Optional group or category name used to organize FAQ articles; portal lists are ordered by group first..
</ParamField>

<ParamField body="ShowInHomePage" type="boolean">
  Whether the article is marked to be shown on the members portal home page..
</ParamField>

<ParamField body="OnlyForContacts" type="boolean">
  Whether the article is restricted to contacts, meaning customers without an active contract; this restriction is cumulative with all other audience restrictions..
</ParamField>

<ParamField body="OnlyForMembers" type="boolean">
  Whether the article is restricted to members, meaning customers with an active contract; this restriction is cumulative with all other audience restrictions..
</ParamField>

<ParamField body="Tariffs" type="integer[]">
  List of plan IDs whose active members may view this article; an empty list does not restrict access, and this restriction is cumulative with the other audience restrictions..
</ParamField>

<ParamField body="Members" type="integer[]">
  List of customer IDs who may view this article; an empty list does not restrict access, and this restriction is cumulative with the other audience restrictions..
</ParamField>

<ParamField body="Teams" type="integer[]">
  List of team IDs whose customers may view this article; an empty list does not restrict access, and this restriction is cumulative with the other audience restrictions..
</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST \
    "https://spaces.nexudus.com/api/content/faqarticles" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "BusinessId": 0,
      "Title": "",
      "DisplayOrder": 0
  }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/content/faqarticles',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        BusinessId: 0,
        Title: '',
        DisplayOrder: 0
      })
    }
  );

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

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

  response = requests.post(
      'https://spaces.nexudus.com/api/content/faqarticles',
      headers={
          'Authorization': 'Bearer YOUR_TOKEN',
          'Content-Type': 'application/json'
      },
      json={
          'BusinessId': 0,
          'Title': '',
          'DisplayOrder': 0
      }
  )

  data = response.json()
  ```
</CodeGroup>

## Response

### 200

<ResponseField name="Status" type="integer">
  HTTP status code. `200` on success.
</ResponseField>

<ResponseField name="Message" type="string">
  A human-readable message confirming the creation.
</ResponseField>

<ResponseField name="Value" type="object">
  Contains the `Id` of the newly created record.
</ResponseField>

<ResponseField name="WasSuccessful" type="boolean">
  `true` if the faqarticle was created successfully.
</ResponseField>

<ResponseField name="Errors" type="array">
  `null` on success.
</ResponseField>

```json Example Response theme={null}
{
  "Status": 200,
  "Message": "FaqArticle was successfully created.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}
```

### 400

<ResponseField name="Message" type="string">
  A summary of the validation error(s), in the format `PropertyName: error message`.
</ResponseField>

<ResponseField name="Value" type="any">
  `null` on validation failure.
</ResponseField>

<ResponseField name="Errors" type="object[]">
  Array of validation errors.

  <Expandable>
    <ResponseField name="AttemptedValue" type="any">
      The value that was submitted for the field, or `null` if missing.
    </ResponseField>

    <ResponseField name="Message" type="string">
      The validation error message.
    </ResponseField>

    <ResponseField name="PropertyName" type="string">
      The name of the property that failed validation.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="WasSuccessful" type="boolean">
  `false` when the request fails validation.
</ResponseField>

```json Example Response theme={null}
{
  "Message": "Title: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Title"
    }
  ],
  "WasSuccessful": false
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.