@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Ecosystem API
@base https://api.apideck.com
@version 0.0.6
@common_fields {ecosystem_id: str}
@endpoints 12
@toc ecosystems(12)

@endpoint GET /ecosystems/{ecosystem_id}
@returns(200) {status_code: int, status: str, data: map{id: str, about: str, alternatives_background_color: str, alternatives_color: str, attribution: bool, body_background_color: str, body_button_background_color: str, body_button_color: str, body_color: str, body_link_color: str, card_settings: map{background_color: str, border_color: str, border_radius: str, border_size: str, color: str, columns: int, description_lines: int, icon_border_radius: str, icon_shadow_enabled: bool, icon_size: int, shadow_enabled: bool, show_action: bool, show_badges: bool, show_category: bool, show_description: bool, style: str}, categories_count_badge: bool, categories_show_max_items: int, collections_count_badge: bool, collections_title: str, create_link: str, cta_settings: map{background_color: str, button_background_color: str, button_color: str, button_label: str, button_link: str, color: str, description: str, enabled: bool, title: str}, custom_domain: str, custom_settings: map{css: str, css_link: str, domain: str, html_footer: str, html_nav: str, java_script_link: str}, detail_pages_enabled: bool, footer_background_color: str, footer_color: str, google_site_verification_id: str, hide_install_buttons: bool, home_page_collection_category_cards: bool, home_page_show_all_listings: bool, installation_request_flow_enabled: bool, integration_settings: map{albacross_id: str, automate_enabled: bool, blendr_enabled: bool, combidesk_enabled: bool, crisp_id: str, drift_id: str, google_analytics_id: str, google_tag_manager_id: str, heap_id: str, hubspot_portal_id: str, integromat_enabled: bool, intercom_app_id: str, iubenda_cookie_policy_id: str, iubenda_site_id: str, journy_io_domain: str, journy_io_id: str, livechat_id: str, metomic_id: str, microsoft_flow_id: str, microsoft_flow_enabled: bool, onetrust_id: str, piesync_enabled: bool, segment_id: str, segment_enabled: bool, tray_io_enabled: bool, zapier_beta_link: str, zapier_enabled: bool, zapier_id: str}, is_published: bool, lead_form_settings: map{capture_form_enabled: bool, first_name_field_enabled: bool, first_name_field_required: bool, integration_enabled: bool, last_name_field_enabled: bool, last_name_field_required: bool, telephone_field_enabled: bool, telephone_field_required: bool, work_email_validation: bool}, listing_settings: map{description_text_template: str, description_title: str, features_text_template: str, features_title: str, install_button_label: str, name_postfix: str, naming: str, native_integration_link: str, pricing_disabled: bool, pricing_text_template: str, pricing_title: str, sidebar_position: str}, masthead_settings: map{background: str, background_color: str, color: str, columns: int, description: str, title: str}, menu_position: str, menu_style: str, meta_tag_settings: map{description: str, description_category_page: str, description_collection_page: str, description_listing_page: str, keywords: str, title: str, title_postfix: str}, name: str, navigation_background_color: str, navigation_color: str, navigation_logo_post_fix: str, navigation_mobile_menu_type: str, navigation_sticky: bool, primary_color: str, privacy_link: str, request_link: str, shadow_page_description: str, shadow_pages_enabled: bool, show_attribution_badge: bool, show_requested_listings: bool, slug: str, terms_link: str, total_published_listings: int, unify_application_id: str, utm_campaign: str, website: str, zaps_menu_title: str, zaps_page_enabled: bool, created_at: str(date-time), updated_at: str(date-time)}}

@endpoint GET /ecosystems/{ecosystem_id}/listings
@optional {cursor: str, limit: int=50, external_id: str}
@returns(200) {status_code: int, status: str, data: [map], meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str, current: str, next: str}}

@endpoint GET /ecosystems/{ecosystem_id}/listings/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, data: map{id: str, external_id: str, automate_id: str, blendr_id: str, card_background_color: str, card_background_image: map{id: str, content_type: str, type: str, url: str, created_at: str(date-time), updated_at: str(date-time)}, categories: [map], cloud_service_id: str, combidesk_id: str, collections: [map], description: str, detail_page_disabled: bool, features: str, integromat_id: str, logo: map{content_type: str, id: str, type: str, url: str}, meta_tag_description: str, meta_tag_keywords: str, meta_tag_title: str, microsoft_flow_id: str, name: str, native_integration: bool, native_integration_link: str, media: [map], partner: map{id: str, company: str, contacts: [map], icon: map{id: str, content_type: str, type: str, url: str, created_at: str(date-time), updated_at: str(date-time)}, listed: str, twitter: str, website: str, created_at: str(date-time), updated_at: str(date-time)}, piesync_id: str, pricing: str, products: [map], published: bool, published_at: str(date-time), screenshots: [map], segment_id: str, slug: str, sticky: bool, tag_line: str, third_party_integration: bool, third_party_integration_link: str, translations: [map]?, tray_io_id: str, unify_connector_id: str, upcoming: bool, zapier_id: str, created_at: str(date-time), updated_at: str(date-time)}}

@endpoint GET /ecosystems/{ecosystem_id}/categories
@optional {cursor: str, limit: int=50}
@returns(200) {status_code: int, status: str, data: [map], meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str, current: str, next: str}}

@endpoint GET /ecosystems/{ecosystem_id}/categories/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, data: map{id: str, description: str, name: str, slug: str, count: int, translations: [map]?, listing_description_text_template: str, listing_pricing_text_template: str, listing_features_text_template: str, logo: map{content_type: str, id: str, type: str, url: str}, created_at: str(date-time), updated_at: str(date-time)}}

@endpoint GET /ecosystems/{ecosystem_id}/categories/{id}/listings
@required {id: str}
@optional {cursor: str, limit: int=50}
@returns(200) {status_code: int, status: str, data: [map], meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str, current: str, next: str}}

@endpoint GET /ecosystems/{ecosystem_id}/collections
@optional {cursor: str, limit: int=50}
@returns(200) {status_code: int, status: str, data: [map]}

@endpoint GET /ecosystems/{ecosystem_id}/collections/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, data: map{id: str, card_background_color: str, card_background_image: map{id: str, content_type: str, type: str, url: str, created_at: str(date-time), updated_at: str(date-time)}, card_columns: int, card_style: str, count: int, description: str, logo: map{id: str, content_type: str, type: str, url: str, created_at: str(date-time), updated_at: str(date-time)}, name: str, hidden_from_homepage: bool, show_max_items_homepage: int, sequence: int, slug: str, translations: [map]?, visible: bool}}

@endpoint GET /ecosystems/{ecosystem_id}/collections/{id}/listings
@required {id: str}
@optional {cursor: str, limit: int=50}
@returns(200) {status_code: int, status: str, data: [map], meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str, current: str, next: str}}

@endpoint GET /ecosystems/{ecosystem_id}/products
@returns(200) {status_code: int, status: str, data: [map], meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str, current: str, next: str}}

@endpoint GET /ecosystems/{ecosystem_id}/products/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, data: map{id: str, name: str, slug: str, description: str, visible: bool, sequence: int, count: int, logo: map{id: str, content_type: str, type: str, url: str, created_at: str(date-time), updated_at: str(date-time)}, translations: [map]?}}

@endpoint GET /ecosystems/{ecosystem_id}/products/{id}/listings
@required {id: str}
@optional {cursor: str, limit: int=50}
@returns(200) {status_code: int, status: str, data: [map], meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str, current: str, next: str}}

@end
