Data requirements for integrating with Northfork


In order for Northfork to be able to do it’s work, we need to persist data in our end. This includes recipe, product and inventory data. This allows us to make the best choice possible when it comes to for instance transforming a recipe into a list of products. Northfork take pride in being able to handle pretty much any kind of format that can be made available to us.


We’ve probably seen every type of format there is, for recipes, and are very flexible in whatever format you prefer.


    If your content is formatted using the standard, Northfork can take advantage of that and import your data seamlessly. Below is the list of the data we need to make your recipes shopable.

    For more information about the format, visit

    Mandatory fields

    Unique identifier. Used as reference to communicate between Northfork and the Publisher.

    Recipe title.

    Image URL or URI.

    Number of portions/servings that the recipe yields.

    A list of ingredients.

    Categories/tags associated to the recipe.

    Source URL or URI to display the recipe’s page.

    Optional fields

    Total time it takes to cook the recipe (including preparation and waiting).

    Type of cuisine. 

    Instructions on how to cook the recipe.

    Short description of the recipe.

    Rating of the recipe. Can be used to filter by e.g. popularity.

    Owner of the recipe.

  2. Customised

    Regardless of the way you store your recipe data currently, Northfork can ingest it to our system. Below is an JSON example of what it could look like:

        "id": 12345,
        "title": "Fish Taco deluxe",
        "image_url": "",
        "portions": 4,
        "ingredients": [
            "name": "Tortillas",
            "amount": "2",
            "unit": "pcs"
            "name": "Fish fillet",
            "amount": "200",
            "unit": "g"
            "name": "Lime juice",
            "amount": "1",
            "unit": "oz"


  1. Products


    ProductID/EAN/GTIN 123456
    Name Yellow onion
    Manufacturer   Barilla
    Size 180
    Unit g
    Section 1/2/3 Vegetables/greens/avocado
    Image 245_IMG


    State (labels) Frozen/fresh/canned
    Country DK/SE/US
    Environmental marking (labels) Organic, CO2 Emissions etc.
    Popularity is relative 1
    Perishable date 3 days / 2017-08-02
    Order type Piece|Weight



    Store id 123456
    Product id 123
    Price 14,35
    Discount Price   12,34 (when applicable)
    Availability y/n
    In stock y/n

  2. Customised


    Northfork will need meta information about all grocery products, which are available in one or more stores, that ingredients can be converted to. Below is a JSON example of the basic meta data Northfork needs:

        "identifier": 12345,
        "title": "Penne",
        "brand": "Barilla",
        "size": "500",
        "unit": "g",
        "image_url": ""
        "identifier": 12346,
        "title": "Fusilli",
        "brand": "Barilla",
        "size": "350",
        "unit": "g",
        "image_url": ""

    Inventory & Pricing

    In order for the Northfork Smart Cart Resolver to be able to recommend the best available products for the end user, Northfork need data about the products’ inventory status and prices. Below is a JSON example on what it could look like:

        "store_id": 1,
        "product_id": 12345,
        "price": 1.49
        "store_id": 1,
        "product_id": 12346,
        "price": 1.69

Continuous updates

API integration

Northfork is able to adapt to whatever APIs the retailer has available for third parties to keep the data as “up-to-date” as possible.

Full files

The most common way for Northfork to continuously synchronise data with a retailer is with full files, especially for the product catalog. When it comes to Inventory & Pricing, it varies depending on the amount of data we need to keep track.

SFTP – You push files to Northfork’s server.
AWS S3 – You push files to a Northfork provided S3 bucket.

Customised – Northfork can pull files from a setup you currently use.

Message Bus
Push – Retailer produces messages to Northfork’s message bus (Kafka)
Pull – Northfork consumes messages from an external message bus.