Appearance
Overview
We provide two Import options which both revolve around extracting images from your Help Center. This second option requires you to authenticate with your Help Center credentials. This option is more powerful and the recommended method and while it also returns a JSON response with all the images and their support article relationships, this response provides a more detailed response.
The authentication required is also a precursor to the Sync process, so ultimately where you would be headed.
Create an import job
POST /helpcenter/import
Data constraints
The following fields are required as JSON Payload.
json
{
"integrationId": "d9e45598-d24d-40d8-baf6-33b6185c61b3"
}| Fields | Description |
|---|---|
| integrationId | See Help Center Integration Section |
Check an Import Progress
GET /helpcenter/import/:import_job_id
Request
Data constraints
A valid :import_job_id is required.
Optional parameter:
By default, the response will be a list of images with their corresponding images. You can change the default output by appending a query string with the name dimension. For example:
GET /helpcenter/import/:import_job_id?dimension=articles
Supported values: articles or images (default)
| dimensions | Description |
|---|---|
| images | Display a list of images with their corresponding articles |
| articles | Display a list of articles with their corresponding images |
Success Response
Condition: If everything is OK
Code: 200
Content Example (dimension=articles):
json
{
"id": "05364d66-90ee-45b8-a04f-9eb539fa9ff6",
"name": "Helpjuice Import",
"summary": {
"total": 2,
"success": 2,
"pending": 0,
"failed": 0,
"skipped": 0
},
"total": {
"articles": {
"discovered": 2,
"processed": 2,
"total": 2,
"success": 2,
"pending": 0,
"failed": 0,
"skipped": 0
},
"images": {
"total": 2,
"unique": 2,
"duplicate": 0
},
"authors": 0
},
"articles": [
{
"id": "08b08d8e-568c-49fa-9ade-2ff15de3518f",
"external_article_id": "3844212",
"kbid": "3844212",
"title": "Launchbrightly Glossary",
"isPublished": true,
"url": "https://launchbrightly.helpjuice.com/launchbrightly-glossary",
"status": "completed",
"images": [],
"tags": [],
"content": "<article id=\"glossary-article\" contenteditable=\"false\">...",
"createdAt": "2026-06-12T11:46:07.097Z",
"updatedAt": "2026-06-12T11:46:12.714Z"
},
{
"id": "5f842bde-6e3b-42ae-ad46-250507436f6b",
"external_article_id": "3844211",
"kbid": "3844211",
"title": "How to Maximize Your Helpjuice Experience",
"isPublished": true,
"url": "https://launchbrightly.helpjuice.com/how-to-maximize-your-helpjuice-experience",
"status": "completed",
"images": [
{
"url": "https://static.helpjuice.com/helpjuice_production/uploads/upload/image/34907/direct/1781098199552/billing.png",
"cloud": {
"upload": "s3",
"fileObject": "public/your-help-center-import/imported-billing.png",
"bucket": "your-bucket-name"
},
"name": "billing.png",
"alt": "",
"type": "png",
"width": 890,
"height": 1444,
"statusCode": 200,
"size": 52913,
"hash": "056ea60c9dcdfebcfcf22288aa5ec44a5dee4e8e638293be6f9c391f151dd5e4",
"metadata": {}
}
],
"tags": [],
"content": "<p>Welcome to Helpjuice! This article will guide you through the features available...</p>",
"createdAt": "2026-06-12T11:46:07.171Z",
"updatedAt": "2026-06-12T11:46:18.056Z"
}
]
}Content Example (dimension=images):
json
{
"id": "05364d66-90ee-45b8-a04f-9eb539fa9ff6",
"name": "Helpjuice Import",
"summary": {
"total": 2,
"success": 2,
"pending": 0,
"failed": 0,
"skipped": 0
},
"total": {
"articles": {
"discovered": 2,
"processed": 2,
"total": 2,
"success": 2,
"pending": 0,
"failed": 0,
"skipped": 0
},
"images": {
"total": 2,
"unique": 2,
"duplicate": 0
},
"authors": 0
},
"images": [
{
"url": "https://static.helpjuice.com/helpjuice_production/uploads/upload/image/34907/direct/1781098199552/billing.png",
"cloud": {
"upload": "s3",
"fileObject": "public/your-help-center-import/imported-billing.png",
"bucket": "your-bucket-name"
},
"name": "billing.png",
"alt": "",
"type": "png",
"width": 890,
"height": 1444,
"statusCode": 200,
"size": 52913,
"hash": "056ea60c9dcdfebcfcf22288aa5ec44a5dee4e8e638293be6f9c391f151dd5e4",
"tags": [],
"metadata": {},
"articlesCount": 1,
"articles": [
{
"kbid": "3844211",
"external_article_id": "3844211",
"url": "https://launchbrightly.helpjuice.com/how-to-maximize-your-helpjuice-experience",
"title": "How to Maximize Your Helpjuice Experience",
"isPublished": true
}
]
}
]
}cURL Examples
bash
curl --location --request GET 'https://api.launchbrightly.com/helpcenter/import/:import_job_id?dimension=articles' \
--header 'x-api-key: YOUR_API_KEY'bash
curl --location --request GET 'https://api.launchbrightly.com/helpcenter/import/:import_job_id?dimension=images' \
--header 'x-api-key: YOUR_API_KEY'Error Response(s)
Condition: If the import job id is invalid or does not exist
Code: 404
Content Example:
json
{
"message": "The record 05364d66-90ee-45b8-a04f-9eb539fa0000 does not exist or is invalid.",
"statusCode": 404,
"error": {
"message": "The ImportRequest id could not be found: 05364d66-90ee-45b8-a04f-9eb539fa0000",
"type": "RESOURCE_NOT_FOUND"
}
}Retrieve an article
Request
json
GET /helpcenter/article/:external_article_id
{
"integrationId": "e240e5f7-ee66-4272-b2e3-d3a096791d46"
}Data constraints
An
:external_article_idis required which corresponds to a unique identifier for the underlying help center's article. You can obtain the:external_article_idfromGET /helpcenter/import/:id?dimension=articlesAn
integrationIdis required as part of the body payload. See Storage integration how to obtain one.
Response
json
{
"id": "8444283",
"isPublished": true,
"content": "<p class=\"no-margin\">For a lot of designs rounded corners help draw attention and focus to the center of an image while sharp corners, in contrast, draw the eye away from the center.</p>",
"images": [
{
"url": "https://launchbrightly.intercom-attachments-1.com/i/o/upload_14588685472463433686.png",
"alt": "",
"name": "upload_14588685472463433686.png",
"type": "png",
"width": 3152,
"height": 576,
"size": 55818,
"statusCode": 200,
"hash": "b6975b10b36df3cc8e41b16a9be8c4f691aa1a2059d3dbcfde31d16fe6d5f65d",
"metadata": {
"name": "John",
"surname": "Doe",
"PoweredBy": "LaunchBrightly"
}
},
{
"url": "https://launchbrightly.intercom-attachments-1.com/i/o/upload_145886854724634336833.png",
"alt": "",
"name": "upload_14588685472463433686.png",
"type": "png",
"width": 0,
"height": 0,
"size": 0,
"statusCode": 404,
"hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"metadata": {}
}
],
"images_count": 2,
"title": "Managing Editions from your help center import",
"url": "https://intercom.help/lbdemo/en/articles/8444283-managing-editions-from-your-help-center-import",
"importRequestId": "8444283",
"createdOn": "2023-10-04T18:51:41Z",
"tags": [
""
]
}INFO
Note: The statusCode field in each image object indicates whether the image was successfully downloaded (200) or if it's a broken image (404). This helps identify which images in the article are accessible and which ones need attention.
INFO
The article retrieval endpoint may return a 5XX error response if the article cannot be retrieved from the help center. This typically occurs when:
- The article has been deleted from the help center
- The article ID is invalid or no longer exists
- There are connectivity issues with the help center
In such cases, the response will include a detailed error message and the specific status code indicating the type of failure.
An example of response when an unhandled error occurs:
{
"statusCode": 500,
"error": {
"message": "Request failed with status code 404",
"type": "RUNTIME_ERROR"
}
}Update an article
Request
json
PUT /helpcenter/article/:external_article_id
{
"integrationId": "e240e5f7-ee66-4272-b2e3-d3a096791de6",
"screenshots": [
{
"metadata": {
"name": "John",
"surname": "Doe"
},
"hash": "4d441888f21eceed2443eef4ba9b4e4d6c198f86904c258d476fed10a6b2e555",
"name": "raw-a1f99be5-2672-4cbc-9e60-61416932d848.png",
"url": "https://lb-api-screenshots.s3.us-east-1.amazonaws.com/Dev_Hyder/2024-09-03/5e275c4b-d61c-4c5e-9391-e958afb64bb3.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIASH5PNXSCN5O7E7U2%2F20240903%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240903T201744Z&X-Amz-Expires=86400&X-Amz-Signature=bd45fd3104c0e6c9f3797fb3da54bf804d2027de5bdd25067eaa8531bac7fe91&X-Amz-SignedHeaders=host&x-id=GetObject"
}
]
}Data constraints
A
:external_article_idis required as part of the URL which corresponds to a unique identifier for the underlying help center's article.An
integrationIdis required as part of the body payload. See Storage integration how to obtain one.A
contentfield is required as part the body payload which corresponds to the article's content.
Response
json
{
"summary": {
"total": 1,
"success": 1,
"failed": 0
},
"screenshots": [
{
"metadata": {
"name": "John",
"surname": "Doe",
"PoweredBy": "LaunchBrightly"
},
"hash": "b6975b10b36df3cc8e41b16a9be8c4f691aa1a2059d3dbcfde31d16fe6d5f65d",
"name": "upload_14588685472463433686.png",
"status": "success",
"matchType": "metadata"
}
]
}Screenshot Matching Priority
The matchType field indicates which matching algorithm was used to identify the screenshot. The system uses a priority-based matching approach:
| Priority | Match Type | Description |
|---|---|---|
| 1st | metadata | Matches based on PNG metadata embedded in the image |
| 2nd | hash | Matches based on the image's pixel hash |
| 3rd | name | Matches based on the image filename |
| - | notfound | No match was found using any method |
::: important Early Exit Behavior: The matching process stops as soon as a match is found. For example, if an image matches on metadata, the system will not continue to check hash or name. This ensures the highest-priority match is always used. :::
Validate API Credentials
Please see integration connection verification endpoint.