Skip to content

Knowledge Portal Manager APIs

License

The following licenses are required to use the Knowledge Access APIs:

  • If the user is an agent, then the Knowledge + AI license is required.
  • If the user is a customer, the Self-Service and Advanced Self-Service licenses must be available.

Tiers

TierTier NameNamed UsersDescription
Tier 1StarterUp to 10Designed for small-scale implementations or pilot environments
Tier 2GrowthUp to 1000Suitable for mid-scale deployments requiring moderate scalability
Tier 3EnterpriseGreater than 1000Supports large-scale environments with extended configuration options

API Resource Limits

The following Resources have predefined limits for specific access attributes for Starter, Growth and Enterprise use.

ResourceLimitsStarterGrowthEnterprise
Article ReferenceNumber of attachments used in any article255050
Number of custom attributes in an article102550
Number of publish views used in an article version202020
Topic ReferenceUser-defined topics in a department1000500050000
Depth of topics52020
Topics at any level50025002500
Number of custom attributes in a topic101010
Portal ReferenceTag categories in a portal151515
Topics to be included in a portal1005005000
Number of articles to display in announcements102525
Usage links and link groups setup for a portal51025
Download OpenAPI description
Languages
Servers
Production Server
https://api.egain.cloud/knowledge/portalmgr/v4

Article

Article APIs

Operations

Article Lists

Article List APIs

Operations

Bookmark

Bookmark APIs

Operations

Guided Help

Guided Help APIs

Operations

Portal

Portal API

Operations

Suggestion

Suggestion APIs

Operations

Topic

Topic APIs

Operations

User Details

User Details APIs

Operations

User Milestones

User Milestones APIs

Operations

User Profile

UserProfile APIs

Operations

Federated Search Event

Federated Search Event API

Operations

Connectors Search Events

Connectors Search Event APIs

Operations

Attachment

Attachment Upload API

Operations

Export

Content Export APIs

Operations

Export Knowledge

Request

Overview

The Content Export API initiates a bulk export of the Knowledge Hub to a client-provided Amazon S3 bucket or SFTP server path. It returns a URL with a Job ID to enable tracking the status of this asynchronous operation.
Each export job can send multiple JSON files, depending on the total number of items to process. More than one bulk export can take place, as needed, one per portal.

Permission

  • Only a client application can invoke this API.

License

  • This API requires a site license (SKU: EG-CL-RTKA-PT).
Security
oAuthClient(Required scopes:
https://api.egain.cloud/auth/.de...
)
Headers
Accept-Languagestringrequired

The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses).

Enum"en-US""es-ES""fr-FR""it-IT""de-DE""nl-NL""pt-BR""pt-PT""da-DK""ru-RU"
Example: en-US
Bodyapplication/jsonrequired
articleCategoriesstring

Category of articles to return. If all is selected, it includes both browsable and searchable articles.

Default "searchable"
Enum"searchable""all"
portalIDstring[ 7 .. 20 ] characters^[a-zA-Z0-9]{2,4}-\d{4,15}$required

The ID of the portal being accessed.

A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits.

Example: "PROD-1000"
languageobject(language)required

The Knowledge Base language in which the content is created.

language.​codestringrequired

The code of the language.

Enum"en-US""fr-FR""en-GB""es-ES""it-IT""nl-NL""da-DA""sv-SE""pt-PT""fi-FI"
Example: "en-US"
exportUnpublishedOnlyboolean

Determines which article version to export. If true, the latest unpublished version will be exported for each article where available, and articles that do not have an unpublished version will be omitted from the export. If this property is false or omitted, the latest published version will be exported for each article where available. Each request exports either all published or all unpublished article versions in a portal; never both.

Default false
resourceTypesArray of stringsrequired

Types of Knowledge Hub resources to export. Use 'all' to specify all resource types at once.

Below are the attributes that are returned for each resource type specified.

Portal Resource Type Attributes
Portal Attribute NameDescription
idThe ID of the Portal in Readable format.
alternateIdThe system-generated ID of the Portal in long format.
nameThe name of the Portal.
descriptionThe Portal's description.
departmentIdID of the department this Portal belongs to.
defaultContentLanguageIdThe default ID of the language for the portal content.
Topic Resource Type Attributes
Topic Attribute NameDescription
idThe ID of the Topic in Readable form.
alternateIdThe system-generated ID of the Topic in long form.
nameThe name of the Topic.
departmentIdID of the department this Topic belongs to.
modifiedDateThe date when the Topic was last modified on.
topicHomeArticleIdThe ID of the Article used as the home page of this Topic.
childCountTotal number of children sub-topis below the current Topic.
subTopicIdsArray with the list of sub-topics (all levels of the topic hierarchy).
parentTopicIdID of the parent Topic. -1 if it is the root Topic.
imageURLURL of the inline Topic image.
customAttributesOne or more comma-separated names for Topic custom attributes defined by the user to be returned.
Article Resource Type Attributes

Export article's attributes returned are aligned with the response of the Get Article By ID with Editions API.

Items Enum"articles""topics""portals""all"
Example: ["articles"]
dataDestinationobjectrequired
dataDestination.​destinationTypestringrequired

Type of data destination

Enum"AWS S3 bucket""SFTP server"
Example: "AWS S3 bucket"
dataDestination.​pathstring<= 1024 charactersrequired

Path of the data destination. For S3 bucket, it can be root or a folder. For SFTP, it can be target directory on the server.

Examples:

  • For S3: "s3://amzn-s3-demo-bucket/mydeptfolder"
  • For SFTP: "exports/mydeptfolder"
Example: "s3://amzn-s3-demo-bucket/mydeptfolder"
dataDestination.​sftpDetailsobject(SftpConfig)
dataDestination.​s3Detailsobject(S3Config)
curl -i -X POST \
  https://api.egain.cloud/knowledge/portalmgr/v4/content/export \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "articleCategories": "searchable",
    "portalID": "PROD-1000",
    "language": {
      "code": "en-US"
    },
    "resourceTypes": [
      "articles"
    ],
    "dataDestination": {
      "destinationType": "SFTP server",
      "path": "exports/mydeptfolder",
      "sftpDetails": {
        "username": "rtka-user",
        "password": "xyz1234",
        "host": "sftp.yourcompany.com",
        "port": 22
      }
    }
  }'

Responses

A request was accepted and is being processed.

Expected Processing Time:

  • Small jobs (< 1,000 items): 5-15 minutes
  • Medium jobs (1,000-10,000 items): 15-60 minutes
  • Large jobs (> 10,000 items): 1-4 hours (depending on content complexity)
Headers
locationstring

Location Header
This header contains the URL to check the status of your validation job. The jobID (as in this example) is the unique identifier for tracking this operation. ```

Example: "/knowledge/portalmgr/v4/content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD"
Response
No content

Get Export Job Status

Request

Overview

The Content Export Status API provides real-time status information to monitor job progress and check completion status.

Status Values

  • Pending: Job is pending start of processing
  • In Progress: Job is actively processing content
  • Completed: Job finished successfully
  • Failed: Job encountered errors and could not complete

Response Information

  • Current Status: Real-time job status
  • Progress Metrics: Items processed, total items
  • Error Details: Specific errors encountered during processing
  • Timing Information: Start time, estimated completion, actual completion

Permission

  • Only a client application can invoke this API.

License

  • This API requires a site license (SKU: EG-CL-RTKA-PT).
Security
oAuthClient(Required scopes:
https://api.egain.cloud/auth/.de...
)
Path
jobIDstringrequired

Example Usage:

GET /content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD/status
Example: 7A84B875-6F75-4C7B-B137-0632B62DB0BD
Headers
Accept-Languagestringrequired

The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses).

Enum"en-US""es-ES""fr-FR""it-IT""de-DE""nl-NL""pt-BR""pt-PT""da-DK""ru-RU"
Example: en-US
curl -i -X GET \
  https://api.egain.cloud/knowledge/portalmgr/v4/content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD/status \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Job Status Retrieved Successfully

The current status and progress information for the specified export job.

Response Details:

  • Status: Current job state (Pending, In Progress, Successful, etc.)
  • Progress: Number of items processed vs. total items
  • Timing: Start time and estimated completion time
  • Errors: Any validation or processing errors encountered
Bodyapplication/json
statusstringrequired
Enum"Pending""In Progress""Successful""Failed"
Example: "In Progress"
progressobject

Details about the job's progress.

startTimestring(date-time)

The timestamp when the job started.

Example: "2025-09-15T10:00:00.000Z"
estimatedCompletionstring(date-time)

The estimated timestamp when the job is expected to finish.

Example: "2025-09-15T11:30:00.000Z"
completionTimestring(date-time)

The timestamp when the job completed.

Example: "2025-09-15T11:25:00.000Z"
failureTimestring(date-time)

The timestamp when the job failed.

Example: "2025-09-15T10:45:00.000Z"
resultsobject

Breakdown of completed job results.

errorstring

A description of the job failure reason.

Example: "Connection timeout after processing 1500 items."
Response
application/json
{ "status": "Pending" }