generated: '2026-08-12' method: generated source: >- openapi/ownlocal-*-openapi.yml (derived from OwnLocal's published Swagger 2.0 at https://admin.austin.ownlocal.com/api-docs/v1/swagger.json) + the published reference at https://api.docs.ownlocal.com/ api: OwnLocal API v1 provider_published_skills: false provider_published_agents_md: false note: >- OwnLocal publishes no Agent Skills, no AGENTS.md and no agent surface of any kind — searched across ownlocal.com, api.docs.ownlocal.com, the admin API host and github.com/OwnLocal. These three skills are generated by API Evangelist from OwnLocal's own contract. Every operationId referenced below is verified against the refined OpenAPI in openapi/; none is invented. skills: - name: ownlocal-submit-print-ad file: ownlocal-submit-print-ad.md title: Submit a print ad to OwnLocal description: >- The marquee flow — create an ad under a publisher, upload the source print PDF, poll until the conversion pipeline populates the digital creative. operations: - createAd - uploadAdContent - getAd writes: true irreversible: true caution: No idempotency key and no DELETE — a retried create is a permanent duplicate. - name: ownlocal-onboard-local-business file: ownlocal-onboard-local-business.md title: Onboard a local business into OwnLocal description: >- Read the category vocabulary, create the advertiser under one or more publishers with locations and opening hours, attach logo and gallery imagery, verify. operations: - listCategories - createBusiness - getBusiness - listBusinesses - uploadBusinessLogo - uploadBusinessImage writes: true irreversible: true caution: >- Same duplicate risk as ads. Also note the sub-category id/name asymmetry between write and read, and the 12-hour "1"/"0" string encoding on hours_of_operation. - name: ownlocal-report-ad-performance file: ownlocal-report-ad-performance.md title: Read OwnLocal ad and business performance description: >- Pull the publisher-wide ads report or the per-business report, including print reach, directory/Origami breakdowns and search keyword rank history. operations: - getAdsReport - getBusinessReport - listAds - listBusinesses writes: false irreversible: false caution: >- Snake_case parameters unlike the rest of the API; no pagination; two response schemas are undefined in the provider's own spec. coverage: skills: 3 operations_covered: 12 operations_total: 13 uncovered: - operationId: updateAd reason: >- A bare PATCH with no documented flow of its own in OwnLocal's reference. Folded into the ad lifecycle rather than given a skill; there is no published guidance on which fields are patchable. preconditions_shared: publisher_uuid: >- Every skill needs a publisherUuid and the API exposes no way to discover one. This is the single hard blocker on autonomous use of the OwnLocal API and it applies to all three skills. auth: Raw API key in the Authorization header, no Bearer prefix, issued manually by OwnLocal support.