{"service":"Aeralas Maps","endpoint":"https://localhost:8080/api/v1/maps","method":"POST","payment":{"protocol":"x402","enabled":true,"price":"$2.00","currency":"USDC","network":"eip155:8453","testnet":false,"note":"Send the request without payment to receive a 402 with exact requirements."},"request":{"contentType":"application/json","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"description":"US street address, city and state. Geocoded via the US Census.","type":"string","minLength":5,"maxLength":200},"center":{"description":"[longitude, latitude] in WGS84. Alternative to address.","type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2},"groundWidthM":{"default":500,"description":"True ground width of the frame in meters. 500 fits a typical retail plaza.","type":"number","minimum":100,"maximum":5000},"pageSize":{"default":"tabloid","type":"string","enum":["letter","legal","tabloid"]},"orientation":{"default":"portrait","type":"string","enum":["portrait","landscape"]},"dpi":{"default":200,"type":"integer","minimum":150,"maximum":300},"format":{"default":"pdf","type":"string","enum":["pdf","png"]},"imagerySourceId":{"description":"Imagery source id. Defaults to the sharpest source covering the frame.","type":"string"},"annotations":{"description":"Callouts to draw. Placement, collision avoidance and leader lines are automatic.","maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"description":"Your id for this annotation. Echoed back in warnings so you can match them up.","type":"string","maxLength":64},"type":{"type":"string","enum":["tenant_callout","subject_property","road_label","traffic_count"]},"at":{"description":"[lon, lat]. Required for tenant_callout and traffic_count.","type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2},"path":{"description":"[[lon,lat],...] along the road. Required for road_label.","minItems":2,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"polygon":{"description":"[[lon,lat],...] ring. Required for subject_property.","minItems":3,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"items":false,"minItems":2,"maxItems":2}},"label":{"type":"string","maxLength":120},"sublabel":{"description":"Second line, e.g. \"24,500 SF\".","type":"string","maxLength":120},"aadt":{"description":"Traffic count, for traffic_count.","type":"integer","minimum":0,"maximum":9007199254740991},"stylePreset":{"default":"light","description":"light reads on dark pavement and roofs in shadow; dark reads on bright roofs and sunlit parking; accent is survey orange, meant for the subject property only.","type":"string","enum":["light","dark","accent"]},"offset":{"description":"Move the label box relative to its pin, in preview pixels (the page is 1397 wide at 11x17 portrait). Setting this turns the auto-placer OFF for this annotation, so it is the fix for a label_overlap warning you want resolved a specific way.","type":"object","properties":{"dx":{"type":"number","minimum":-2000,"maximum":2000},"dy":{"type":"number","minimum":-2000,"maximum":2000}},"required":["dx","dy"],"additionalProperties":false},"textScale":{"description":"Multiplier on text size. Lower it to clear a text_truncated warning.","type":"number","minimum":0.6,"maximum":2},"strokeScale":{"description":"Multiplier on pin, leader and outline weights.","type":"number","minimum":0.5,"maximum":4},"boxColor":{"description":"CSS colour for the label box fill.","type":"string","maxLength":32},"inkColor":{"description":"CSS colour for the label text.","type":"string","maxLength":32},"markColor":{"description":"CSS colour for the pin and leader line.","type":"string","maxLength":32}},"required":["type","stylePreset"],"additionalProperties":false}},"autoLabel":{"default":false,"description":"Draft tenant callouts from OpenStreetMap and road names from Census TIGER before drawing your own. Use this when you do not know what is at the location. Pass an object to control how many: fewer labels is the simplest cure for a crowded page.","anyOf":[{"type":"boolean"},{"type":"object","properties":{"maxTenants":{"default":10,"type":"integer","minimum":0,"maximum":20},"maxRoads":{"default":4,"type":"integer","minimum":0,"maximum":8},"brandsOnly":{"default":false,"description":"Keep only recognised chains. A flyer wants anchors, not every barber.","type":"boolean"}},"required":["maxTenants","maxRoads","brandsOnly"],"additionalProperties":false}]},"labelScale":{"default":1,"description":"Text size multiplier applied to every annotation that does not set its own textScale. Drop to ~0.8 to fit more labels; raise for a map read at arm’s length.","type":"number","minimum":0.6,"maximum":2},"titleBlockScale":{"default":1,"description":"Size multiplier for the title block.","type":"number","minimum":0.6,"maximum":2},"overlays":{"default":[],"description":"Thematic layers drawn under the annotations. A legend is added automatically. fema-flood: regulated floodplain (blank means no mapped hazard — FEMA draws Zone X with no symbol). nwi-wetlands: USFWS National Wetlands Inventory.","maxItems":2,"type":"array","items":{"type":"string","enum":["fema-flood","nwi-wetlands"]}},"pageElements":{"default":{"titleBlock":true,"northArrow":true,"scaleBar":true,"locatorInset":false,"insetZoomOut":14},"description":"Page furniture. Turn elements off to free up room for labels.","type":"object","properties":{"titleBlock":{"default":true,"type":"boolean"},"northArrow":{"default":true,"type":"boolean"},"scaleBar":{"default":true,"type":"boolean"},"locatorInset":{"default":false,"description":"A small USGS topo overview showing where this frame sits in the wider area, with the frame outlined on it. Worth the corner it costs whenever the reader may not know the town.","type":"boolean"},"insetZoomOut":{"default":14,"description":"How many times wider than the frame the inset covers.","type":"number","minimum":4,"maximum":60}},"required":["titleBlock","northArrow","scaleBar","locatorInset","insetZoomOut"],"additionalProperties":false},"title":{"description":"Title block heading. Defaults to the address.","type":"string","maxLength":200},"mapId":{"description":"Revise a map you already bought. Returned as X-Map-Id on your paid export. Re-exports are free for 7 days as long as the FRAME is unchanged — change labels, styling, overlays and page elements freely; changing address, center, groundWidthM, pageSize, orientation or dpi makes it a different map.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["groundWidthM","pageSize","orientation","dpi","format","autoLabel","labelScale","titleBlockScale","overlays","pageElements"],"additionalProperties":false},"pageSizes":{"letter":"8.5 x 11 in","legal":"8.5 x 14 in","tabloid":"11 x 17 in"},"examples":{"quickest":{"note":"One call, finished page. Tenants and road names are drafted from public data.","body":{"address":"1500 S Willow St, Manchester, NH","groundWidthM":500,"autoLabel":true,"format":"pdf"}},"listingFlyer":{"note":"What a real estate listing needs. The subject_property polygon is the difference between a listing map and an area map — without it the reader cannot tell which property is for sale. Use stylePreset \"accent\" for it.","body":{"address":"1500 S Willow St, Manchester, NH","groundWidthM":450,"autoLabel":{"maxTenants":8,"maxRoads":4,"brandsOnly":true},"annotations":[{"id":"subject","type":"subject_property","stylePreset":"accent","label":"SUBJECT PROPERTY","polygon":[[-71.439,42.9478],[-71.437,42.9478],[-71.437,42.9462],[-71.439,42.9462]]}],"overlays":["fema-flood"],"format":"pdf"}},"repairLoop":{"note":"POST /api/v1/maps/check first — it is free, returns `warnings` naming the parameter to change, and `drawn` with the geometry of every drafted annotation so you can edit the draft and resend it. Buy once it is clean.","body":{"address":"1500 S Willow St, Manchester, NH","autoLabel":true}}}},"response":{"body":"The file bytes (application/pdf or image/png).","headers":{"X-Imagery-Source":"Imagery source id, e.g. naip-conus","X-Imagery-Years":"Comma-separated capture years of the imagery in frame","X-Frame-Bbox-3857":"minX,minY,maxX,maxY of the frame in EPSG:3857 meters","X-Frame-Ground-M":"width,height of the frame in true ground meters","X-Print-Quality":"sharp | acceptable | insufficient (native detail vs demanded)","X-Formatted-Address":"The address as the geocoder matched it, when an address was given"}},"revisions":{"included":"Free for 7 days after purchase.","how":"A paid export returns X-Map-Id. Send it back as `mapId` and the re-export is free, as long as the FRAME is unchanged. Labels, styling, overlays, page elements and the title are all yours to change.","whatCostsAgain":"A different view is a different map: changing address/center, groundWidthM, pageSize, orientation or dpi starts a new purchase. A refused revision returns 402 with X-Revision-Refused and X-Revision-Refused-Detail explaining which.","note":"Checks via /api/v1/maps/check are always free and unlimited, before or after buying."},"imagery":"USDA NAIP via USGS The National Map. Public domain; commercial print use permitted."}