Model

Press release model

News Item

This is the main model that MFN delivers through its APIs. Our objective to be very clear about the following

  • How to uniquely identify the news item (news_id)

  • How to group different languages versions of the same press release (group_id)

  • Who the author is (author)

  • Who is being referenced in the press release (subjects)

  • What it is regarding (properties)

Model

{
  // A id that uniquely identifies this new item
  "news_id": UUID string,   
  
  // A id that uniquely identifies a set of news item with different languages
  "group_id": UUID string,  
  
  // A url that links to a public page where the item can be viewed
  "url": URL string,      
    
  // A object describing who is the author of the news item
  "author": Entity,        
  
  // A array of objects describing who the news item relates to
  // This field discribe how is subject in the press release,
  // NOT the subject of the item
  "subjects": [Entity], 
      
  // A object containing properties relating to the news item
  "properties": Properties, 
    
  // A object containing the content of the news item
  "content": NewsContent,
  
  // Should always be mfn and describes the source of the press release  
  "source": string,    
  
  // A object where new types of metadata might be added at futer date
  "extensions": Extension   
}

Entity

The entity describes a entity that in some way is referenceable. This includes, but not limited to companies. It can also be other types of entities such as funds. Entities is used for referencing both the author and the subjects of the news item. This serves to define Who says something and about Whom. In most cases the Author entity and Subjects entity will be the same in the case of regular press releases.

Important to note regarding Entities is that the number of fields might grow to allow for more precise identification of the entity, therefor it is important to to for your model allow for this. In statically typed languages such as Java or C# it is a good idea to have a “AnySetter” for your model, that consumes all other parameters that you have not specified.

Model

{
  // A MFN reference to the entity
  "entity_id": UUID string,                  
  
  // The name that MFN uses for the entity
  "name": string,                     
  
  // A url friendly version of the entity name
  "slug": string,   
  
  // An array containing all historical slugs of the entity
  "slugs": [string],                  
  
   // A url to a image illustrating the brands of the entity 
  "brand_image_url": URL string,      
  
  // Isin referring to stocks associated with entity
  "isins": [strings],                 
  
  // References to the entity by LEI, https://www.gleif.org/
  "leis": [strings],                   
  
  // Reference to entity in a country, e.g. SE:556920-1998
  "local_ref": [strings],
  
  // Publicly traded entities will have tickers attached to them 
  // they follow the pattern of primary_market_mic:symbol, eg XSTO:VOLV B
  "tickers": [strings]                
}

NewsContent

The news content contains the content of the news item as well as attachments, such as pdfs.

HTML Example

<div class="mfn-disclaimer"><p>DISCLAIMER TEXT</p></div>
<div class="mfn-correction"><p>MAR text was missing</p></div>
<div class="mfn-preamble"><p><strong>Preamble</strong></p></div>
<div class="mfn-body">
	<p>
		<!--These elements can appear in the parent-->
		<em></em>
		<a></a>
		<strong></strong>
		<strong class="mfn-heading-1"></strong>
		<strong class="mfn-heading-2"></strong>
		</br>
	</p>
	<ul></ul>
	<ol></ol>
	<table></table>
	<blockquote></blockquote>
</div>
<div class="mfn-footer">
	<p>
		<a></a>
		<strong></strong>
	</p>
</div>
<div class="mfn-footer mfn-contacts">
	<p>
		<strong class="mfn-heading-1"></strong>
		<a></a>
	</p>
</div>
<div class="mfn-footer mfn-about">
	<p><a></a></p>
</div>
<div class="mfn-footer mfn-regulatory mfn-regulatory-mar">
	<p></p>
</div>
<div class="mfn-footer mfn-attachment mfn-attachment-image">
	<a></a>
</div>
<div class="mfn-footer mfn-attachment mfn-attachment-general">
	<a class="mfn-generated mfn-primary"></a>
</div>

The example should give you an idea of ​​the structure, elements and classes found in a press release HTML. Disclaimer and correction are alternativ. Footers can be several or none at all.

Model

{
  // The title of the press release
  "title": string,               
  
  // A url friendly version of the title
  "slug": string,                
  
  // The content of the news, including preamble, footers and attachemtns
  // formatted as html        
  "html": html string,                 
  
  // RFC3339 time format, 2006-01-02T15:04:05Z07:00
  "publish_date": date string,   
  
  // Attachments that augments the news item.
  "attachments": [Attachment]    
}

Attachment

Attachments allow for files of different types to be attached to a News Item. This can include pdf, images, or spreadsheets a full list of attachments can be found further down.

If you would like to scale the images, you can use the following query param that is used in the example.

Eg size with fixed width:

https://storage.mfn.se/a/modfin/dd35b358-3a4a-44ae-8eac-c20df6f54358/mf-founding-team.jpeg?size=w-600

https://storage.mfn.se/a/modfin/dd35b358-3a4a-44ae-8eac-c20df6f54358/mf-founding-team.jpeg?size=w-1000

Eg size with fixed height:

https://storage.mfn.se/a/modfin/dd35b358-3a4a-44ae-8eac-c20df6f54358/mf-founding-team.jpeg?size=h-600

Model

{
  // Display name for file
  "file_title": string,            
  // MIME type for file, e.g. application/pdf
  "content_type": mime string      
  
  // The url where the file can be retrieved.
  "url": url string 
                 
  // Attachment tags
  // ':generated' is an attachment generated by MFN (usually the item in PDF format)
  // ':primary' is an attachment containing the news item content
  "tags": [string]                 
}

Content types for attachments

PDF

application/pdf

Images

image/jpeg

image/jpg

image/png

image/svg+xml

ZIP for European Single Electronic Format (ESEF)

application/zip

application/zip-compressed

application/x-zip-compressed

Misc

application/vnd.openxmlformats-officedocument.wordprocessingml.document

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

application/vnd.openxmlformats-officedocument.presentationml.presentation

text/html

application/xhtml+xml

If content_type is empty the attachment is to be considered an external URL / link. For example a link to a webcast. content_type

Properties

The properties object contain metadata about the news item that describes it. One of the more important aspects of this object is the type property which relates for whom the news item is targeted. If it is set to "ir", Investor Relations, this means that the target is investors and the stock market. While "pr", Public Relations, is meant for news that should have no real bearing on the stock market, and is only for the company website and email subscribers. Many times PR is shown on a separate or tab, labelled "News".

Model

{
  // The type of news item, Investor Relations or Public Relation, e.g. ir or pr.
  "type": type string,            
  
  // The language of newsitem.content, ISO-639, e.g. sv or en
  "lang": lang string,            

  // Metadata regarding the news item, both MFN specific and Author specific
  "tags": [Tag string],
}

Tags

pageTags

JSON Example

{
  "news_id": "a7566f9a-673a-4fa3-9cd7-1343b5cad0ee",
  "group_id": "16849475-df12-4d95-82bb-0cbe44d9307f",
  "url": "https://feed.mfn.se/v1/item/a7566f9a-673a-4fa3-9cd7-1343b5cad0ee.html",
  "subjects": [
    {
      "entity_id": "26c373c6-5688-4bfa-bb55-b9c62249d4ef",
      "slug": "volvo",
      "slugs": [
        "volvo"
      ],
      "name": "Volvo",
      "brand_image_url": "/assets/img/test/volvo.jpg",
      "isins": [
        "SE0000115446",
        "SE0000115420"
      ],
      "leis": [
        "549300HGV012CNC8JD22"
      ],
      "local_refs": [
        "SE:556012-5790"
      ],
      "tickers": [
        "XSTO:VOLV B",
        "XSTO:VOLV A"
      ]
    }
  ],
  "content": {
    "title": "New number of votes in AB Volvo",
    "slug": "new-number-of-votes-in-ab-volvo-a7566f9a",
    "publish_date": "2018-12-28T12:00:00Z",
    "html": "<div class=\"mfn-preamble\">The number of votes in AB Volvo has cha...",
    "attachments": [
      {
        "file_title": "New number of votes in AB Volvo",
        "content_type": "application/pdf",
        "url": "https://mfn.se/xassets/c59bd97e-22e8-414b-a7dd-c3b4cc767b62",
        "tags": null
      }
    ]
  },
  "author": {
    "entity_id": "26c373c6-5688-4bfa-bb55-b9c62249d4ef",
    "slug": "volvo",
    "slugs": [
      "volvo"
    ],
    "name": "Volvo",
    "brand_image_url": "/assets/img/test/volvo.jpg",
    "isins": [
      "SE0000115446",
      "SE0000115420"
    ],
    "leis": [
      "549300HGV012CNC8JD22"
    ],
    "local_refs": [
      "SE:556012-5790"
    ],
    "tickers": [
      "XSTO:VOLV B",
      "XSTO:VOLV A"
    ]
  },
  "properties": {
    "lang": "en",
    "type": "ir",
    "tags": [
      ":regulatory",
      ":regulatory:lhfi",
      "sub:ci",
      "sub:ci:shares"
    ]
  },
  "source": "mfn"
}

XML Example

<?xml version="1.0" encoding="UTF-8"?>
<NewsItem>
  <newsId>a7566f9a-673a-4fa3-9cd7-1343b5cad0ee</newsId>
  <groupId>16849475-df12-4d95-82bb-0cbe44d9307f</groupId>
  <url>https://feed.mfn.se/v1/item/a7566f9a-673a-4fa3-9cd7-1343b5cad0ee.html</url>
  <subjects>
    <subject>
      <entityId>26c373c6-5688-4bfa-bb55-b9c62249d4ef</entityId>
      <slug>volvo</slug>
      <slugs>
        <slug>volvo</slug>
      </slugs>
      <name>Volvo</name>
      <brandImageUrl>https://mfn.se/assets/img/test/volvo.jpg</brandImageUrl>
      <isins>
        <isin>SE0000115446</isin>
        <isin>SE0000115420</isin>
      </isins>
      <leis>
        <lei>549300HGV012CNC8JD22</lei>
      </leis>
      <localRefs>
        <localRef>SE:556012-5790</localRef>
      </localRefs>
      <tickers>
        <ticker>XSTO:VOLV B</ticker>
        <ticker>XSTO:VOLV A</ticker>
      </tickers>
    </subject>
  </subjects>
  <content>
    <title>New number of votes in AB Volvo</title>
    <slug>new-number-of-votes-in-ab-volvo-a7566f9a</slug>
    <publishDate>2018-12-28T12:00:00Z</publishDate>
    <html><![CDATA[<div class="mfn-preamble">The number of votes in AB Vo...]]></html>
    <attachments>
      <attachment>
        <fileTitle>New number of votes in AB Volvo</fileTitle>
        <contentType>application/pdf</contentType>
        <url>https://mfn.se/xassets/c59bd97e-22e8-414b-a7dd-c3b4cc767b62</url>
        <tags />
      </attachment>
    </attachments>
  </content>
  <author>
    <entityId>26c373c6-5688-4bfa-bb55-b9c62249d4ef</entityId>
    <slug>volvo</slug>
    <slugs>
      <slug>volvo</slug>
    </slugs>
    <name>Volvo</name>
    <brandImageUrl>https://mfn.se/assets/img/test/volvo.jpg</brandImageUrl>
    <isins>
      <isin>SE0000115446</isin>
      <isin>SE0000115420</isin>
    </isins>
    <leis>
      <lei>549300HGV012CNC8JD22</lei>
    </leis>
    <localRefs>
      <localRef>SE:556012-5790</localRef>
    </localRefs>
    <tickers>
      <ticker>XSTO:VOLV B</ticker>
      <ticker>XSTO:VOLV A</ticker>
    </tickers>
  </author>
  <properties>
    <lang>en</lang>
    <tags>
        <tag>:regulatory</tag>
        <tag>:regulatory:lhfi</tag>
        <tag>sub:ci</tag>
        <tag>sub:ci:shares</tag>
    </tags>
    <type>ir</type>
  </properties>
  <source>mfn</source>
</NewsItem>

Last updated