Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Paste your API key as the CMS showed it: fsk_<site>_<key id>_<secret> (issued under API Keys). ApiKey in front of it works too. Leave it empty to read as the public.

Scopes

content:service-areas:write

Query Parameters

aposMode
enum<string>
default:published

published (the default) or draft. Drafts need a credential that may see them: an API key with the type’s write scope (content:<type>:write), or a signed-in editor. The public and a key with only the read scope get 403.

Available options:
draft,
published
aposLocale
string

The locale to read or write, e.g. en (default: the site’s default locale).

Example:

"fr"

Body

application/json

ServiceArea content type

title
string
default:""
required

Its title: the name it goes by in every list, and the heading of its page where it has one.

mode
enum<string> | null
default:zips

How is this area defined?

Available options:
zips,
polygon,
null
priority
integer | null
default:0

Sort position — and where areas overlap, the LOWEST number wins the click/search result.

active
boolean | null
default:true

Turn off to keep the area saved but leave it off the map.

zipCodes
string | null
default:""

One or more 5-digit zip codes, separated by commas, spaces or new lines. The map shape is generated automatically from public zip-boundary data.

shapes
Area shape · object[] | null

One or more shapes for this area. Paste coordinates (or draw on the map once a Google Maps key is configured); each shape needs at least 3 points.

slug
string | null
default:""

The URL name: lowercase words joined by hyphens (letters outside a–z, even emoji, are kept).

visibility
enum<string> | null
default:public

Select whether this content is public or private

Available options:
public,
loginRequired,
null
scheduledPublish
string | null

An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.

scheduledUnpublish
string | null

An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.

price
number | null
default:0

The amount shown for this area (0 shows the map section’s “included” label). Use the label below for anything non-standard.

Required range: x >= 0
priceLabel
string | null
default:""

Optional. Shown instead of the formatted price — e.g. “From $40” or “Call for pricing”.

color
string | null

Optional. Leave empty to assign a color from the site palette automatically.

description
string | null
default:""

Optional short text shown when a visitor clicks this area (or finds it via search).

publicNames
Public place names · object[] | null

Optional. The real-world places this area covers — e.g. “Brooklyn” or “Albany County”. Zone names like “Zone A” mean nothing to search engines; these names are what gets published as structured data (with structured data enabled in Site settings → SEO).

archived
boolean | null
default:false

In the archive: kept, but out of every list and off the site until it is restored. false (or null) for a live document.

Response

Success

ServiceArea content type

title
string
default:""
required

Its title: the name it goes by in every list, and the heading of its page where it has one.

_id
string
required
read-only

The document’s id. On a type with drafts it ends in its locale and mode (…:en:published, …:en:draft): the part before the first colon is its aposDocId, shared by both copies. The {_id} the type’s routes take.

type
string
required
read-only

The document type’s name: always this type’s.

mode
enum<string> | null
default:zips

How is this area defined?

Available options:
zips,
polygon,
null
priority
integer | null
default:0

Sort position — and where areas overlap, the LOWEST number wins the click/search result.

active
boolean | null
default:true

Turn off to keep the area saved but leave it off the map.

zipCodes
string | null
default:""

One or more 5-digit zip codes, separated by commas, spaces or new lines. The map shape is generated automatically from public zip-boundary data.

shapes
Area shape · object[] | null

One or more shapes for this area. Paste coordinates (or draw on the map once a Google Maps key is configured); each shape needs at least 3 points.

slug
string | null
default:""

The URL name: lowercase words joined by hyphens (letters outside a–z, even emoji, are kept).

visibility
enum<string> | null
default:public

Select whether this content is public or private

Available options:
public,
loginRequired,
null
scheduledPublish
string | null

An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.

scheduledUnpublish
string | null

An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.

price
number | null
default:0

The amount shown for this area (0 shows the map section’s “included” label). Use the label below for anything non-standard.

Required range: x >= 0
priceLabel
string | null
default:""

Optional. Shown instead of the formatted price — e.g. “From $40” or “Call for pricing”.

color
string | null

Optional. Leave empty to assign a color from the site palette automatically.

description
string | null
default:""

Optional short text shown when a visitor clicks this area (or finds it via search).

publicNames
Public place names · object[] | null

Optional. The real-world places this area covers — e.g. “Brooklyn” or “Albany County”. Zone names like “Zone A” mean nothing to search engines; these names are what gets published as structured data (with structured data enabled in Site settings → SEO).

source
enum<string> | null
default:manual
read-only

Set automatically. “Demo placeholder” rows are removed the moment a real service area is published. “Zip feed import” rows were created by Import Zones from Zip Feed and get their zips/price refreshed on re-import.

Available options:
manual,
demo,
zipFeed,
null
sourceId
string | null
default:""
read-only

Internal id of the seed/import that created this row. Empty for manually created areas.

archived
boolean | null
default:false

In the archive: kept, but out of every list and off the site until it is restored. false (or null) for a live document.

createdAt
string<date-time> | null
read-only

When it was created (ISO 8601).

updatedAt
string<date-time> | null
read-only

When it last changed (ISO 8601).

aposShareKey
string | null
read-only

The draft’s preview share key, while its share link is on: the link is the draft’s _url with aposShareKey and aposShareId (the draft’s _id) in its query. Absent otherwise, and on published documents.

Example:

"k3v9x2m7q1z8w4p6"