Norway Havtil Offshore Safety Monitor avatar

Norway Havtil Offshore Safety Monitor

Pricing

from $20.00 / 1,000 checked report records

Go to Apify Store
Norway Havtil Offshore Safety Monitor

Norway Havtil Offshore Safety Monitor

Tracks Havtil's (Norwegian Ocean Industry Authority) official supervision feeds for offshore oil and gas: new and changed audit reports, investigation reports, consents, and orders. Company/facility data only, no personal data.

Pricing

from $20.00 / 1,000 checked report records

Rating

0.0

(0)

Developer

Pavel Staurouski

Pavel Staurouski

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Tracks Havtil (the Norwegian Ocean Industry Authority, formerly PSA Norway) - Norway's offshore oil-and-gas safety regulator - for new and changed supervision records: audit reports, investigation reports, consents, and notices about orders.

What you get

One record per new or changed report this run, tagged with an explicit matchState:

  • FIRST_SEEN - your own baseline run.
  • NEW - a report not seen on a previous run.
  • AMENDED - a previously-seen report whose title, introduction, publication date, or category tags changed.
  • UNCHANGED records are never pushed or charged.

Each record carries the report's title, Havtil's own one-line introduction, the full article-body summary (objective/result/follow-up for an audit, operator/well/field for a consent, and so on), Havtil's own topic category tags, the publication date, and a direct link back to Havtil's own page.

Scope: one feed per run, four feeds covered

Havtil publishes five structured supervision sub-feeds. This Actor covers four of them - Audit reports, Investigation reports, Consents, and Notices about orders - all four sharing one listing/detail page structure. Pick which one to track with the feedType input (default: Audit reports); run the Actor again with a different feedType to track another feed, each with its own independently tracked state.

Acknowledgements of Compliance (AoC) is not covered. It is a status registry (grouped by facility, not a dated chronological feed) with a structurally different page shape and no pagination - see NOTES.md for the full reasoning. A future version could add it as a separate feedType option if there is buyer demand.

No personal data

Every detail page on this source carries a "Contact"/"Pressekontakt" component naming an individual Havtil press officer with a direct phone number and email address. This Actor's parser only ever selects the page's .article-body element - a separate part of the page - so that component's name, phone, and email are never read into any variable, anywhere, not even transiently. Report titles name only corporate operators and facilities (Equinor, Aker BP, OKEA, Halliburton, Saipem, Noble Drilling, Archer, and similar), never individuals. As a second, defense-in-depth layer, every free-text field this Actor does output (title, introduction, summary) is scanned for an email-address pattern before being allowed into a record, and the whole field is withheld (never partially redacted) if it ever matches. A final key-based guard (_shared/pii.js's stripPersonalData) is also applied to every assembled record before it is pushed, as a structural safety net against a future code change accidentally reintroducing a contact-shaped field.

How it works

Havtil's supervision feeds are plain server-rendered HTML with simple ?p=N pagination, sorted newest-first and going back many years (confirmed live to ?p=80 and beyond, still returning real, distinct, older reports every time). This Actor paginates backwards from page 1, stopping once it hits a page shorter than a full page, once a run of consecutive unchanged reports suggests it has caught up with where the last run left off, or once it hits the maxChecked cap - whichever comes first. Unchanged reports are detected from the cheap listing page alone; only new or changed reports trigger a (billed) detail-page fetch for the full summary text.

Why you might need this

HSE, compliance, and third-party-risk teams at operators, drilling contractors, and subcontractors on the Norwegian continental shelf, plus insurers and law firms covering Norwegian offshore risk, currently track Havtil's supervision activity by manually re-checking its site. This Actor surfaces new and changed audit reports, investigation reports, consents, and orders directly from Havtil's own feed, with optional watchlist filtering down to the operators or facilities you actually track.

Scope: Havtil (Norway) only. Other national offshore-safety regulators are not covered.

Input

{
"feedType": "audit-reports",
"watchlist": ["Equinor", "Aker BP", "Draugen"],
"maxResults": 100,
"maxChecked": 300
}
  • feedType (optional, default audit-reports): which feed to track - audit-reports, investigation-reports, consents, or important-messages (Notices about orders).
  • watchlist (optional, default empty): operator/company or facility names. Every record gets a matchesWatchlist flag (case-insensitive substring match against the title and category tags) so you can filter to the operators/facilities you actually track. Leave empty to track every record in the selected feed.
  • maxResults (optional, default 100): caps how many new/changed records are pushed and charged in a single run. On the very first run this bounds how much of the feed's history is backfilled at once; the rest follows automatically on later runs.
  • maxChecked (optional, default 300): caps how many listing records this run reads while paginating backwards. The feed goes back many years, so this bounds pagination depth, not just results - checking a record against prior state is free, only a new/changed one triggers a billed detail-page fetch.

Sample output

One real report (fetched live from Havtil's own audit-reports feed, 2026-10-13), run through this Actor's own sanitiseListingItem()/mergeDetailRecord() field mapping as a first-ever run against that report (hence matchState: "FIRST_SEEN"; a later run against an already-seen, unchanged report would never be pushed at all, and a changed one would report AMENDED instead):

{
"recordKey": "audit-reports:2026/totalenergies-as-and-seadrill---atla-byggve-and-skirne---planning-and-implementation-of-permanent-plugging-and-abandonment-of-wells",
"feedType": "audit-reports",
"title": "TotalEnergies AS and Seadrill - Atla, Byggve and Skirne - planning and implementation of permanent plugging and abandonment of wells",
"introduction": "The Norwegian Ocean Industry Authority (Havtil) has conducted an audit of TotalEnergies and Seadrill regarding the planning and implementation of permanent plugging and abandonment of the wells at Atla, Byggve and Skirne.",
"categories": ["Well integrity"],
"publishedAt": "2026-10-02T07:11:58.000Z",
"sourceUrl": "https://www.havtil.no/en/supervision/audit-reports/2026/totalenergies-as-and-seadrill---atla-byggve-and-skirne---planning-and-implementation-of-permanent-plugging-and-abandonment-of-wells/",
"checkedAt": "2026-10-13T12:00:00.000Z",
"summary": "The audit was conducted from 11 May to 8 June 2026. Objective The objective of the audit was to determine whether TotalEnergies and Seadrill are complying with both regulatory requirements and their own requirements with regard to the permanent plugging and abandonment (PP&A) of the wells at Atla, Byggve and Skirne. The audit was intended to help determine whether risks in the planning and implementation of PP&A operations had been adequately identified. Furthermore, we wanted to assess whether the planned permanent well barriers have been qualified and verified with regard to their location, length and robustness. Result We identified two non-conformities during the audit. These concerned: Deficiencies related to procedures for the dropping and cutting of casing (Seadrill) Outdated barrier drawings related to wireline cutting (TotalEnergies) We also identified two improvement points. These concerned: Work on pressurised systems (Seadrill) Inadequate qualification of a creeping formation as a barrier element (TotalEnergies) What happens now? We have asked the companies to report by 23 October 2026 on how the non-conformities will be addressed and for their assessment of the improvement points observed.",
"matchState": "FIRST_SEEN",
"changedFields": [],
"matchesWatchlist": false
}

matchesWatchlist is false here because this particular report's title and category tags don't contain any of the example watchlist's names (Equinor, Aker BP, Draugen) - a record naming one of your watched operators or facilities gets matchesWatchlist: true instead. No Contact/Pressekontakt field, per "No personal data" above.

Change tracking across runs

Run this Actor on a schedule - weekly is a reasonable match for Havtil's own supervision-report cadence. Each report's key fields are stored per Actor run (kept separately per feedType, so switching feeds never collides with another feed's baseline), so every run after the first reports only what actually changed.

Pricing

Pay per run started, plus per new/changed report reported (unchanged reports are never charged). See the Pricing tab for exact rates.