Skip to main content

Overview

Internet is a first-class service type on Offergrid. Rather than a free-form JSON blob, internet offers carry a single, structured internet object grouped into four sections — speed, data, term, and disclosures — including the FCC Broadband Consumer Label fields.
This page is the narrative guide. The field-by-field reference is published in the API Reference as the InternetContractWrite and InternetContract schema components.

Identifying an internet offer

Every offer response carries a top-level serviceType discriminator that mirrors category — check either field:
Internet offers additionally include the grouped internet object. Other service types (electricity, other) get their own top-level key.

The internet contract

All four sections and all fields are optional on write, except the publish requirement. Send only what you have; unspecified fields are left untouched on update.
  • minBandwidthMbps / maxBandwidthMbps — the marketed plan range, in Mbps.
  • connectionTypefiber, cable, dsl, satellite, fixed_wireless, or 5g_home.
The FCC “typical” speeds (what customers actually experience) live under disclosures.broadbandLabel.
  • capGb — monthly data cap in GB. Omit for an unlimited plan.
  • lengthno_contract, month_to_month, months_12, months_24, or months_36.
  • earlyTerminationFee — cancellation fee in dollars.
  • earlyTerminationFeeNotes — free-text detail, e.g. “Prorated by months remaining”.
  • broadbandLabelurl, plus the label’s typical performance figures (typicalDownload, typicalUpload in Mbps, typicalLatency in ms) and dataCapGb.
  • networkManagementUrl — link to your network management practices disclosure.

Creating an internet offer

The response is the created offer with serviceType: "internet", the projected internet object, and the standard offer fields. Unlike electricity, internet pricing is set directly via monthlyPrice — the contract does not derive it.

Updating an internet offer

Send only the sections you’re changing. The internet object is merged onto the stored offer, so unrelated data is preserved:
PATCH /provider/offers/{id}
This changes only the term; the existing speed, data, and disclosures are untouched.
The internet object is the only way to set an internet offer’s speed, data, term, and disclosures — there is no flat/free-form alternative field to fall back to.

Publishing requirements

POST /provider/offers/{id}/publish validates the offer. For internet, the contract-specific rule is:
speed must include minBandwidthMbps, maxBandwidthMbps, and a valid connectionType.
If any are missing, publish returns 400 with structured validationErrors pointing at the internetDetails bandwidth/connection fields. General offer requirements — name, SKU, description, at least one market, etc. — also apply.

Storage

Internet offer data lives in a dedicated typed relation — there is no free-form JSON blob involved. Read and write everything internet-related through .internet.

Quick reference

Next steps

Creating Offers

The general offer create/publish flow

Electricity Offers

The parallel structured contract for electricity

API Integration

Automate offer sync and order processing

API Reference

The InternetContract schema, field by field