{"openapi":"3.1.0","info":{"title":"MarineRoster Public Provider Discovery API","version":"1.0.0","description":"Read-only access to MarineRoster providers whose public facts are active, verified and approved for publication. Customer requests, private contacts, vetting notes and internal records are never included.","contact":{"email":"requests@marineroster.com"}},"servers":[{"url":"https://marineroster.com"}],"paths":{"/data/providers":{"get":{"operationId":"searchPublicProviders","summary":"Search verified public providers","parameters":[{"name":"service","in":"query","schema":{"type":"string"},"example":"marine-air-conditioning"},{"name":"market","in":"query","schema":{"type":"string"},"example":"South Florida"},{"name":"city","in":"query","schema":{"type":"string"},"example":"Fort Lauderdale"}],"responses":{"200":{"description":"Matching public providers","content":{"application/json":{"schema":{"type":"object","required":["schemaVersion","canonicalUrl","dataUpdatedAt","providerCount","filters","providers"],"properties":{"schemaVersion":{"type":"string"},"canonicalUrl":{"type":"string","format":"uri"},"dataUpdatedAt":{"type":["string","null"],"format":"date-time"},"providerCount":{"type":"integer"},"filters":{"type":"object","required":["service","market","city"],"properties":{"service":{"type":["string","null"]},"market":{"type":["string","null"]},"city":{"type":["string","null"]}}},"providers":{"type":"array","items":{"type":"object","required":["id","slug","companyName","profileUrl","verificationLabel","locations","services","verifiedAt"],"properties":{"id":{"type":"string","description":"Stable MarineRoster provider identifier."},"slug":{"type":"string"},"companyName":{"type":"string"},"profileUrl":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"publicPhone":{"type":"string"},"publicEmail":{"type":"string","format":"email"},"businessAddress":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"postalCode":{"type":"string"},"serviceModel":{"type":"string","enum":["mobile","shop","both","confirm"]},"publicSummary":{"type":"string"},"verifiedAt":{"type":"string","format":"date-time"},"verificationLabel":{"type":"string","const":"Personally reviewed by MarineRoster"},"publishedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"locations":{"type":"array","items":{"type":"object","required":["market","coverageLabel","counties","mobileService","shopService"],"properties":{"id":{"type":"string"},"market":{"type":"string","examples":["South Florida"]},"coverageLabel":{"type":"string"},"counties":{"type":"array","items":{"type":"string"}},"mobileService":{"type":"boolean"},"shopService":{"type":"boolean"},"primaryLocation":{"type":"boolean"},"updatedAt":{"type":"string","format":"date-time"}}}},"services":{"type":"array","items":{"type":"object","required":["serviceSlug","serviceCategory","brands","capabilities","bestFit"],"properties":{"id":{"type":"string"},"serviceSlug":{"type":"string","examples":["marine-air-conditioning"]},"serviceCategory":{"type":"string"},"brands":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"string"}},"minimumVesselLengthFt":{"type":["integer","null"]},"maximumVesselLengthFt":{"type":["integer","null"]},"bestFit":{"type":"string"},"publicProfileCopy":{"type":"string"},"verifiedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}}}}}}}}},"503":{"description":"Provider data is temporarily unavailable"}}}},"/data/providers/{slug}":{"get":{"operationId":"getPublicProvider","summary":"Get one verified public provider","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Public provider record","content":{"application/json":{"schema":{"type":"object","required":["schemaVersion","canonicalUrl","dataUpdatedAt","provider"],"properties":{"schemaVersion":{"type":"string"},"canonicalUrl":{"type":"string","format":"uri"},"dataUpdatedAt":{"type":"string","format":"date-time"},"provider":{"type":"object","required":["id","slug","companyName","profileUrl","verificationLabel","locations","services","verifiedAt"],"properties":{"id":{"type":"string","description":"Stable MarineRoster provider identifier."},"slug":{"type":"string"},"companyName":{"type":"string"},"profileUrl":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"publicPhone":{"type":"string"},"publicEmail":{"type":"string","format":"email"},"businessAddress":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"postalCode":{"type":"string"},"serviceModel":{"type":"string","enum":["mobile","shop","both","confirm"]},"publicSummary":{"type":"string"},"verifiedAt":{"type":"string","format":"date-time"},"verificationLabel":{"type":"string","const":"Personally reviewed by MarineRoster"},"publishedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"locations":{"type":"array","items":{"type":"object","required":["market","coverageLabel","counties","mobileService","shopService"],"properties":{"id":{"type":"string"},"market":{"type":"string","examples":["South Florida"]},"coverageLabel":{"type":"string"},"counties":{"type":"array","items":{"type":"string"}},"mobileService":{"type":"boolean"},"shopService":{"type":"boolean"},"primaryLocation":{"type":"boolean"},"updatedAt":{"type":"string","format":"date-time"}}}},"services":{"type":"array","items":{"type":"object","required":["serviceSlug","serviceCategory","brands","capabilities","bestFit"],"properties":{"id":{"type":"string"},"serviceSlug":{"type":"string","examples":["marine-air-conditioning"]},"serviceCategory":{"type":"string"},"brands":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"string"}},"minimumVesselLengthFt":{"type":["integer","null"]},"maximumVesselLengthFt":{"type":["integer","null"]},"bestFit":{"type":"string"},"publicProfileCopy":{"type":"string"},"verifiedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}}}}}}}},"404":{"description":"Provider is not published or does not exist"},"503":{"description":"Provider data is temporarily unavailable"}}}}}}