Orders

The Orders endpoints helps you manage your orders in the Bazoom platform.

Create orders based on the media from the Marketplace, and manage the entire order process such as content details and article approval.

GET/orders
Auth required

List all orders

Lists all of your orders.

Parameters

  • Name
    filter[business_id]
    Type
    string | null
    Description

    The business to list orders for. Defaults to your currently active business.

  • Name
    per_page
    Type
    integer
    Description

    Number of results per page

  • Name
    page
    Type
    integer
    Description

    Current page

  • Name
    sort
    Type
    string
    Description

    Available sorts are id. You can sort by multiple options by separating them with a comma. To sort in descending order, use - sign in front of the sort, for example: -id.

  • Name
    filter[name]
    Type
    string
    Description

    The name of the order. Multiple values can be passed, separated with ,

  • Name
    filter[created_at]
    Type
    string · date
    Description

    The date the order was created. Can either be used to filter all orders on an exact date, or within a date range (2025-05-17,2025-06-17)

  • Name
    filter[updated_at]
    Type
    string · date
    Description

    The date the order was last updated. Can either be used to filter all orders on an exact date, or within a date range (2025-05-17,2025-06-17)

  • Name
    filter[status]
    Type
    string · OrderStatus
    Description

    The order's current status. Separate multiple values with ,

Sample request

GET
/orders
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Accept':'application/json'
};

fetch('https://api.bazoom.com/client-api/v1/orders',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

[
  {
    "id": 1337,
    "created_at": "2026-03-10T12:10:25.000000Z",
    "updated_at": "2026-03-10T12:10:25.000000Z",
    "name": "March 2026",
    "status": "details_missing",
    "business_id": 1234,
    "currency": "EUR",
    "paid": false
  }
]

Responses

POST/orders
Auth required

Create an order

Creates a new order. Enables idempotence via the Idempotency-Key header (expires after 24 hours).

    Body

    ·PlaceOrderRequest
    • Name
      payment_method
      Type
      string
      Description

      Possible values

      card invoice sepa_debit

    • Name
      use_credits
      Type
      boolean | null
      Description

      Whether to use available credits for this order or not.

    • Name
      business_id
      Type
      integer | null
      Description

      The ID of the business to place the order for, if you have a multi business setup. Defaults to your currently active business in the marketplace, and can be left out in most cases.

    • Name
      user
      Type
      string | null · email
      Description

      The email of the user that should be assigned to the order and receive mails related to the order. Defaults to the user your API token is created by, and can be left out in most cases.

    • Name
      name
      Type
      string | null
      Description

      Name for the order

    • Name
      po_number
      Type
      string | null
      Description

      Purchase order number that will be visible on invoices regarding the order

    • Name
      links
      Type
      array
      Description

      The links that should be added to the order. NOTE: maximum number of links in an order is 50.

    • Name
      domain
      Type
      string
      Description

      The domain of the media to add to the order.

    • Name
      type
      Type
      string
      Description

      Possible values

      article homepage native sitewide pr_article link_insertion brand_mention

    • Name
      niche
      Type
      string
      Description

      Possible values

      casino loan erotic dating cbd crypto forex

    • Name
      content_creation
      Type
      boolean
      Description

      Whether Bazoom should create content for the order link or not. true means that Bazoom creates the content (if needed).

    • Name
      content_product
      Type
      string
      Description

      Possible values

      standard business enterprise premium

    • Name
      word_count
      Type
      integer | null
      Description

      Number of words for the article (if content creation is chosen and available). If left empty default number of words will be used, which varies depending on the chosen media.

    • Name
      express
      Type
      boolean | null
      Description

      Whether you would like Express delivery for the order link

Detailed descriptions

» business_id: The ID of the business to place the order for, if you have a multi business setup. Defaults to your currently active business in the marketplace, and can be left out in most cases.

» user: The email of the user that should be assigned to the order and receive mails related to the order. Defaults to the user your API token is created by, and can be left out in most cases.

Sample request

POST
/orders
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Content-Type':'application/json',
  'Accept':'application/json'
};

const inputBody = '{
  "payment_method": "card",
  "use_credits": true,
  "business_id": 0,
  "user": "[email protected]",
  "name": "March 2026",
  "po_number": "Mar-2026-0001",
  "links": [
    {
      "domain": "domain.com",
      "type": "article",
      "niche": "casino",
      "content_creation": true,
      "content_product": "standard",
      "word_count": 600,
      "express": true
    }
  ]
}';

fetch('https://api.bazoom.com/client-api/v1/orders',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "name": "March 2026",
  "status": "details_missing",
  "business_id": 1234,
  "currency": "EUR",
  "paid": false
}

Responses

GET/orders/{order}
Auth required

Retrieve an order

Retrieves an order by its ID.

Parameters

  • Name
    order
    Type
    integer
    Description

    The order ID

Sample request

GET
/orders/{order}
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Accept':'application/json'
};

fetch('https://api.bazoom.com/client-api/v1/orders/{order}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "name": "March 2026",
  "status": "details_missing",
  "business_id": 1234,
  "currency": "EUR",
  "paid": false
}

Responses

POST/orders/preview
Auth required

Preview an order

Previews an order; useful for final confirmation before actual placement

    Body

    ·PlaceOrderRequest
    • Name
      payment_method
      Type
      string
      Description

      Possible values

      card invoice sepa_debit

    • Name
      use_credits
      Type
      boolean | null
      Description

      Whether to use available credits for this order or not.

    • Name
      business_id
      Type
      integer | null
      Description

      The ID of the business to place the order for, if you have a multi business setup. Defaults to your currently active business in the marketplace, and can be left out in most cases.

    • Name
      user
      Type
      string | null · email
      Description

      The email of the user that should be assigned to the order and receive mails related to the order. Defaults to the user your API token is created by, and can be left out in most cases.

    • Name
      name
      Type
      string | null
      Description

      Name for the order

    • Name
      po_number
      Type
      string | null
      Description

      Purchase order number that will be visible on invoices regarding the order

    • Name
      links
      Type
      array
      Description

      The links that should be added to the order. NOTE: maximum number of links in an order is 50.

    • Name
      domain
      Type
      string
      Description

      The domain of the media to add to the order.

    • Name
      type
      Type
      string
      Description

      Possible values

      article homepage native sitewide pr_article link_insertion brand_mention

    • Name
      niche
      Type
      string
      Description

      Possible values

      casino loan erotic dating cbd crypto forex

    • Name
      content_creation
      Type
      boolean
      Description

      Whether Bazoom should create content for the order link or not. true means that Bazoom creates the content (if needed).

    • Name
      content_product
      Type
      string
      Description

      Possible values

      standard business enterprise premium

    • Name
      word_count
      Type
      integer | null
      Description

      Number of words for the article (if content creation is chosen and available). If left empty default number of words will be used, which varies depending on the chosen media.

    • Name
      express
      Type
      boolean | null
      Description

      Whether you would like Express delivery for the order link

Detailed descriptions

» business_id: The ID of the business to place the order for, if you have a multi business setup. Defaults to your currently active business in the marketplace, and can be left out in most cases.

» user: The email of the user that should be assigned to the order and receive mails related to the order. Defaults to the user your API token is created by, and can be left out in most cases.

Sample request

POST
/orders/preview
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Content-Type':'application/json',
  'Accept':'application/json'
};

const inputBody = '{
  "payment_method": "card",
  "use_credits": true,
  "business_id": 0,
  "user": "[email protected]",
  "name": "March 2026",
  "po_number": "Mar-2026-0001",
  "links": [
    {
      "domain": "domain.com",
      "type": "article",
      "niche": "casino",
      "content_creation": true,
      "content_product": "standard",
      "word_count": 600,
      "express": true
    }
  ]
}';

fetch('https://api.bazoom.com/client-api/v1/orders/preview',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "total": 1200,
  "currency": "EUR",
  "items": [
    {
      "media": "domain.com",
      "type": "article",
      "niche": "casino",
      "media_price": 1150,
      "content_price": 30,
      "express_price": 20,
      "total_price": 1200
    }
  ],
  "business": {
    "id": 123,
    "name": "Compu-Global-Hyper-Mega-Net",
    "country": "DK",
    "address": "Example Road 10",
    "city": "Aarhus C",
    "postal_code": "8000",
    "vat_number": "DK12345678",
    "currency": "EUR"
  },
  "user": "string"
}

Responses

GET/orders/{order}/order-links
Auth required

Retrieves all links that exist in an order.

Parameters

  • Name
    order
    Type
    integer
    Description

    The order ID

  • Name
    per_page
    Type
    integer
    Description

    Number of results per page

  • Name
    page
    Type
    integer
    Description

    Current page

  • Name
    sort
    Type
    string
    Description

    Available sorts are id. You can sort by multiple options by separating them with a comma. To sort in descending order, use - sign in front of the sort, for example: -id.

  • Name
    filter[updated_at]
    Type
    string · date
    Description

    The date the order link was last updated. Can either be used to filter all orders on an exact date, or within a date range (2025-05-17,2025-06-17)

  • Name
    filter[status]
    Type
    string · OrderLinkStatus
    Description

    The order link's current status. Separate multiple values with ,

Sample request

GET
/orders/{order}/order-links
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Accept':'application/json'
};

fetch('https://api.bazoom.com/client-api/v1/orders/{order}/order-links',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

[
  {
    "id": 1337,
    "created_at": "2026-03-10T12:10:25.000000Z",
    "updated_at": "2026-03-10T12:10:25.000000Z",
    "type": "article",
    "media": "domain.com",
    "price": 1200,
    "anchor_1": "Click here",
    "anchor_2": "Click here as well",
    "url_1": "https://site.com/target",
    "url_2": "https://site.com/target-2",
    "status": "details_missing",
    "article": "https://final-article.com/1234",
    "date_published": "2026-04-10",
    "live_link": "https://domain.com/article",
    "express": true
  }
]

Responses

GET/order-links/{orderLink}
Auth required

Retrieves an order link by its ID.

Parameters

  • Name
    orderLink
    Type
    integer
    Description

    The order link ID

Sample request

GET
/order-links/{orderLink}
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Accept':'application/json'
};

fetch('https://api.bazoom.com/client-api/v1/order-links/{orderLink}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "type": "article",
  "media": "domain.com",
  "price": 1200,
  "anchor_1": "Click here",
  "anchor_2": "Click here as well",
  "url_1": "https://site.com/target",
  "url_2": "https://site.com/target-2",
  "status": "details_missing",
  "article": "https://final-article.com/1234",
  "date_published": "2026-04-10",
  "live_link": "https://domain.com/article",
  "express": true
}

Responses

PATCH/order-links/update/{orderLink}
Auth required

Update details for an order link

Parameters

  • Name
    orderLink
    Type
    integer
    Description

    The order link ID

  • Body

    • Name
      anchor_1
      Type
      string
      Description

      The text that will be shown for your anchor

    • Name
      target_url_1
      Type
      string · uri
      Description

      The URL where you should end up when clicking the anchor

    • Name
      anchor_2
      Type
      string | null
      Description

      An optional second anchor text

    • Name
      target_url_2
      Type
      string | null · uri
      Description

      An optional second anchor URL

    • Name
      express
      Type
      boolean | null
      Description

      If true, it means that the link should be published as soon as possible. Only available if Express has been purchased for the link.

    • Name
      publication_date
      Type
      string | null · date
      Description

      The date you would like the link to be published. Must be at least 7 weekdays in the future. Required unless express is true.

    • Name
      topic
      Type
      string | null
      Description

      The topic you would like your article to be about (if the link needs content)

    • Name
      content_guidelines
      Type
      string | null
      Description

      For specific requirements for the link's content

    • Name
      notes
      Type
      string | null
      Description

      Notes regarding the link

    • Name
      article_link
      Type
      string | null · uri
      Description

      Google Docs link to your article (if you have chosen to deliver content yourself)

    • Name
      keywords
      Type
      array | null
      Description

      Keywords you want included in the article (if the link needs content)

Sample request

PATCH
/order-links/update/{orderLink}
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Content-Type':'application/json',
  'Accept':'application/json'
};

const inputBody = '{
  "anchor_1": "Click here",
  "target_url_1": "https://site.com/target",
  "anchor_2": "Click here as well",
  "target_url_2": "https://site.com/target-2",
  "express": true,
  "publication_date": "2019-08-24",
  "topic": "Sports",
  "content_guidelines": "string",
  "notes": "string",
  "article_link": "http://example.com",
  "keywords": [
    "Football",
    "Sports"
  ]
}';

fetch('https://api.bazoom.com/client-api/v1/order-links/update/{orderLink}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "type": "article",
  "media": "domain.com",
  "price": 1200,
  "anchor_1": "Click here",
  "anchor_2": "Click here as well",
  "url_1": "https://site.com/target",
  "url_2": "https://site.com/target-2",
  "status": "details_missing",
  "article": "https://final-article.com/1234",
  "date_published": "2026-04-10",
  "live_link": "https://domain.com/article",
  "express": true
}

Responses

PATCH/order-links/approve/{orderLink}
Auth required

Parameters

  • Name
    orderLink
    Type
    integer
    Description

    The order link ID

Sample request

PATCH
/order-links/approve/{orderLink}
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Accept':'application/json'
};

fetch('https://api.bazoom.com/client-api/v1/order-links/approve/{orderLink}',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "type": "article",
  "media": "domain.com",
  "price": 1200,
  "anchor_1": "Click here",
  "anchor_2": "Click here as well",
  "url_1": "https://site.com/target",
  "url_2": "https://site.com/target-2",
  "status": "details_missing",
  "article": "https://final-article.com/1234",
  "date_published": "2026-04-10",
  "live_link": "https://domain.com/article",
  "express": true
}

Responses

PATCH/order-links/disapprove/{orderLink}
Auth required

Parameters

  • Name
    orderLink
    Type
    integer
    Description

    The order link ID

  • Body

    • Name
      category
      Type
      string
      Description

      Possible values

      image word_count missing_or_wrong_details small_edit change_in_guidelines does_not_follow_guidelines plagiarism topic_mismatch

    • Name
      reason
      Type
      string
      Description

Sample request

PATCH
/order-links/disapprove/{orderLink}
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Content-Type':'application/json',
  'Accept':'application/json'
};

const inputBody = '{
  "category": "image",
  "reason": "The image does not fit well with the content"
}';

fetch('https://api.bazoom.com/client-api/v1/order-links/disapprove/{orderLink}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "type": "article",
  "media": "domain.com",
  "price": 1200,
  "anchor_1": "Click here",
  "anchor_2": "Click here as well",
  "url_1": "https://site.com/target",
  "url_2": "https://site.com/target-2",
  "status": "details_missing",
  "article": "https://final-article.com/1234",
  "date_published": "2026-04-10",
  "live_link": "https://domain.com/article",
  "express": true
}

Responses

POST/order-links/upload-article/{orderLink}
Auth required

Upload article for order link

Uploads an article for an order link where the content is delivered in a .docx file. Use this endpoint if you want to deliver content yourself in a Word document, after adding details via Update an order link.

Parameters

  • Name
    orderLink
    Type
    integer
    Description

    The order link ID

  • Body

    multipart/form-data
    • Name
      article
      Type
      string · binary
      Description

      The file to attach to the order link as the content article

Sample request

POST
/order-links/upload-article/{orderLink}
const headers = {
  'Authorization': 'Bearer YOUR_SECRET_TOKEN',
  'Content-Type':'multipart/form-data',
  'Accept':'application/json'
};

const inputBody = '{
  "article": "string"
}';

fetch('https://api.bazoom.com/client-api/v1/order-links/upload-article/{orderLink}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

Responses

{
  "id": 1337,
  "created_at": "2026-03-10T12:10:25.000000Z",
  "updated_at": "2026-03-10T12:10:25.000000Z",
  "type": "article",
  "media": "domain.com",
  "price": 1200,
  "anchor_1": "Click here",
  "anchor_2": "Click here as well",
  "url_1": "https://site.com/target",
  "url_2": "https://site.com/target-2",
  "status": "details_missing",
  "article": "https://final-article.com/1234",
  "date_published": "2026-04-10",
  "live_link": "https://domain.com/article",
  "express": true
}

Responses