generated: '2026-07-26' method: derived source: openapi/landgate-slip-public-arcgis-openapi.yml, openapi/landgate-data-wa-ckan-openapi.yml, openapi/landgate-slip-public-ogc-openapi.yml, plus live probes 2026-07-26 note: | Landgate publishes no API design guide, no developer portal and no conventions page. Every convention below is derived from the behaviour of the three public surfaces as observed live, or from the upstream product standard those surfaces implement (Esri ArcGIS REST, OGC WMS/WFS, CKAN Action API). Where a convention does not exist, it is recorded as absent rather than guessed. authentication: style: none on the public tier; OAuth 2.0 / OIDC on the gated MyLandgate tier detail: authentication/landgate-authentication.yml idempotency: supported: false note: | No idempotency contract exists. All three public surfaces are read-only GET surfaces — there is no write operation to make idempotent, no Idempotency-Key header is documented or accepted, and no such parameter appears in any harvested contract. Do NOT wire an Idempotency pointer for this provider. pagination: - surface: SLIP ArcGIS REST feature query style: offset params: [resultOffset, resultRecordCount] response_fields: [exceededTransferLimit, features] limits: maxRecordCount: 10000 evidence: probed 2026-07-26 — SLIP_Public_Services/Boundaries/MapServer reports maxRecordCount 10000; returnCountOnly=true on layer 14 returned {"count":139} - surface: Data WA CKAN Action API style: offset params: [rows, start] response_fields: [count, results] limits: default_rows: 10 max_rows: 1000 evidence: CKAN help_show?name=package_search documents rows default 10, upper limit 1000 - surface: SLIP OGC WFS 2.0.0 style: index params: [count, startIndex] caution: | A GetFeature with count=1 against esri:DFES_Regions__DFES-015_ returned a 1.65 MB GML FeatureCollection on 2026-07-26 — server-side limiting should not be assumed on this deployment. Filter with bbox or a CQL/OGC filter instead of relying on count. filtering: - surface: SLIP ArcGIS REST params: [where, geometry, geometryType, inSR, outSR, outFields, returnGeometry] note: SQL-style `where` clause plus spatial geometry filters. - surface: Data WA CKAN params: [q, fq, sort, facet.field] note: Solr query surface. `fq=organization:landgate` narrows the 2,872-dataset catalogue to the 395 Landgate publishes. - surface: SLIP OGC WFS params: [typeNames, bbox, srsName] content_negotiation: style: query parameter, not Accept header detail: | ArcGIS REST selects the representation with `f` (html default, json/pjson/image/kmz); OGC services select with `format`/`outputFormat`; CKAN always returns JSON on /api/3/action and JSON-LD on /catalog.jsonld. Sending an Accept header does not change the ArcGIS default — `f=json` is required to get machine-readable output. field_selection: supported: true note: ArcGIS `outFields` (comma list or `*`). CKAN has no sparse-fieldset parameter. expansion: supported: partial note: CKAN `organization_show?include_datasets=true` and package_show inline `resources[]` are the only expansion-like behaviours. No generic expand parameter. metadata: user_defined: false note: Catalogue metadata is publisher-controlled (CKAN package extras, ArcGIS documentInfo); consumers cannot attach their own metadata to anything. request_tracing: request_id_header: none observed note: No X-Request-Id / correlation header was returned by any probed endpoint on 2026-07-26. versioning: - surface: SLIP ArcGIS REST scheme: server-version-in-payload current: '12.1' detail: /public/rest/info reports currentVersion 12.1, fullVersion 12.1.0. The version is not in the URI, so a server upgrade changes behaviour under the same URLs. - surface: Data WA CKAN scheme: uri-path current: '3' detail: /api/3/action/*. /api/action/* also resolves to the same v3 surface. - surface: SLIP OGC scheme: query-parameter current: WMS 1.3.0, WFS 2.0.0 detail: "`version` query parameter; WMS also answers 1.1.1." error_envelope: rfc9457: false detail: errors/landgate-problem-types.yml surfaces: - surface: Data WA CKAN shape: '{"help": "...", "success": false, "error": {"__type": "...", "": ["Missing value"]}}' http_status_used: true observed: [400, 409] - surface: SLIP ArcGIS REST shape: '{"error": {"code": , "message": "...", "details": []}}' http_status_used: false caution: errors are returned with HTTP 200 — clients MUST inspect the body, not the status. - surface: SLIP OGC shape: XML ServiceExceptionReport / ows:ExceptionReport, or an ArcGIS Server HTML error page http_status_used: partial rate_limits: published: false note: No rate-limit documentation, no RateLimit/X-RateLimit response headers observed on any probed endpoint (2026-07-26). The only published ceiling is the ArcGIS maxRecordCount of 10000 features per query response. caching: note: ArcGIS export/tile responses are cacheable; no explicit caching policy is published. cross_links: errors: errors/landgate-problem-types.yml lifecycle: lifecycle/landgate-lifecycle.yml authentication: authentication/landgate-authentication.yml scopes: scopes/landgate-scopes.yml conformance: conformance/landgate-conformance.yml