Skip to main content
Solved

API: Payload requirements for POST /kb/articles (Creating KB articles)

  • April 7, 2026
  • 1 reply
  • 33 views

RTroge 5339285 orangeusd
Forum|alt.badge.img+1

Hello,

I am looking for the specific payload requirements to programmatically create Knowledge Base articles.

I noted a previous discussion where it was mentioned that KB creation might not be supported via API, but I have made some progress:

  • Confirmed: GET /kb/articles/{id} (Read access works)

  • Confirmed: POST /kb/articles (Search/List works)

I am now trying to identify the correct endpoint and schema to create a new article. When attempting a POST to create, I need clarification on:

  1. The specific endpoint for creation (if different from the search endpoint).

  2. The required JSON structure (e.g., Title, CategoryId, Body, Status).

We have several articles to migrate and would prefer an API solution over manual entry or external automation tools like Selenium. Any guidance from the iiQ team or community experts would be appreciated!

Best answer by scopous_iiq

Great question, and good news — KB article creation is fully supported via API!

The endpoint you're looking for is:

POST /api/v1.0/kb/articles/new

This is distinct from POST /api/v1.0/kb/articles, which as you discovered is the search/list endpoint.

Here's a minimal payload to create an article:

{
"Title": "Your Article Title",
"Issue": "The problem or question this article addresses",
"Resolution": "<p>The solution — HTML formatting is supported.</p>",
"Scope": "Site",
"SiteId": "your-site-guid",
"CategoryId": "guid-of-target-kb-category",
"Visibility": 1
}

A few notes on the fields:

  • Title — The article title.
  • Issue — A description of the problem or question the article covers.
  • Resolution — The article body / solution content. Supports HTML formatting, so you can migrate existing articles with their formatting intact.
  • Scope — Set to "Site" for site-level articles.
  • SiteId — Your site's GUID. You can find this in any API response that includes a SiteId field.
  • CategoryId — Organize articles into KB categories. Retrieve available categories via GET /api/v1.0/categories/of/kb — each item includes a CategoryId and Name.
  • Visibility — Controls who can see the article: 1 = Everyone, 4 = Requestors, 16 = Agents, 64 = Admins.

The response returns the created article in a standard response envelope, including the assigned KbArticleId. One thing to be aware of: the IsPublished field is currently always set to true by the server, so all created articles will be published immediately.

Linking Articles to Issue Types, Models, etc.

If you want your KB articles to surface as recommended articles on relevant tickets, there's a second step — you need to associate the article with specific issue types, models, categories, or locations using the filter system:

POST /api/v1.0/filters/values/for/kb-articles

First, retrieve the available filter definitions:

GET /api/v1.0/filters

This returns all filter facets with their FilterId GUIDs. The ones relevant to KB linking are:

Filter Key Purpose
issuetype Link article to specific issue types
issuecategory Link article to issue categories
model Link article to asset models
location Link article to locations

Then, associate your KB article with the desired filters:

{
"Ids": ["<your-KbArticleId>"],
"Values": [
{
"Id": "<your-KbArticleId>",
"FilterId": "<FilterId-from-GET-filters>",
"Value": "<IssueTypeId-or-ModelId-etc>"
}
]
}

Note that each filter facet has multiple FilterId entries — one per product module (Ticketing, Facilities, Assets, etc.). Make sure you use the FilterId that matches the product your article targets.

For your bulk migration, the workflow would be:

  1. GET /api/v1.0/categories/of/kb — get KB category IDs
  2. GET /api/v1.0/filters — get filter definitions (one-time lookup)
  3. For each article: POST /api/v1.0/kb/articles/new to create it
  4. Optionally: POST /api/v1.0/filters/values/for/kb-articles to link it to relevant issue types/models

Hope this helps!

1 reply

scopous_iiq
Forum|alt.badge.img
  • Employee
  • Answer
  • April 8, 2026

Great question, and good news — KB article creation is fully supported via API!

The endpoint you're looking for is:

POST /api/v1.0/kb/articles/new

This is distinct from POST /api/v1.0/kb/articles, which as you discovered is the search/list endpoint.

Here's a minimal payload to create an article:

{
"Title": "Your Article Title",
"Issue": "The problem or question this article addresses",
"Resolution": "<p>The solution — HTML formatting is supported.</p>",
"Scope": "Site",
"SiteId": "your-site-guid",
"CategoryId": "guid-of-target-kb-category",
"Visibility": 1
}

A few notes on the fields:

  • Title — The article title.
  • Issue — A description of the problem or question the article covers.
  • Resolution — The article body / solution content. Supports HTML formatting, so you can migrate existing articles with their formatting intact.
  • Scope — Set to "Site" for site-level articles.
  • SiteId — Your site's GUID. You can find this in any API response that includes a SiteId field.
  • CategoryId — Organize articles into KB categories. Retrieve available categories via GET /api/v1.0/categories/of/kb — each item includes a CategoryId and Name.
  • Visibility — Controls who can see the article: 1 = Everyone, 4 = Requestors, 16 = Agents, 64 = Admins.

The response returns the created article in a standard response envelope, including the assigned KbArticleId. One thing to be aware of: the IsPublished field is currently always set to true by the server, so all created articles will be published immediately.

Linking Articles to Issue Types, Models, etc.

If you want your KB articles to surface as recommended articles on relevant tickets, there's a second step — you need to associate the article with specific issue types, models, categories, or locations using the filter system:

POST /api/v1.0/filters/values/for/kb-articles

First, retrieve the available filter definitions:

GET /api/v1.0/filters

This returns all filter facets with their FilterId GUIDs. The ones relevant to KB linking are:

Filter Key Purpose
issuetype Link article to specific issue types
issuecategory Link article to issue categories
model Link article to asset models
location Link article to locations

Then, associate your KB article with the desired filters:

{
"Ids": ["<your-KbArticleId>"],
"Values": [
{
"Id": "<your-KbArticleId>",
"FilterId": "<FilterId-from-GET-filters>",
"Value": "<IssueTypeId-or-ModelId-etc>"
}
]
}

Note that each filter facet has multiple FilterId entries — one per product module (Ticketing, Facilities, Assets, etc.). Make sure you use the FilterId that matches the product your article targets.

For your bulk migration, the workflow would be:

  1. GET /api/v1.0/categories/of/kb — get KB category IDs
  2. GET /api/v1.0/filters — get filter definitions (one-time lookup)
  3. For each article: POST /api/v1.0/kb/articles/new to create it
  4. Optionally: POST /api/v1.0/filters/values/for/kb-articles to link it to relevant issue types/models

Hope this helps!