{"files":{"SKILL.md":"---\nname: ecosystem-api\ndescription: \"Ecosystem API skill. Use when working with Ecosystem for ecosystems. Covers 12 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Ecosystem API\nAPI version: 0.0.6\n\n## Auth\nNo authentication required.\n\n## Base URL\nhttps://api.apideck.com\n\n## Setup\n1. No auth setup needed\n2. GET /ecosystems/{ecosystem_id} -- get ecosystem\n3. Explore available endpoints below\n\n## Endpoints\n12 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Ecosystems\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /ecosystems/{ecosystem_id} | Get ecosystem |\n| GET | /ecosystems/{ecosystem_id}/listings | List listings |\n| GET | /ecosystems/{ecosystem_id}/listings/{id} | Get listing |\n| GET | /ecosystems/{ecosystem_id}/categories | List categories |\n| GET | /ecosystems/{ecosystem_id}/categories/{id} | Get category |\n| GET | /ecosystems/{ecosystem_id}/categories/{id}/listings | List category listings |\n| GET | /ecosystems/{ecosystem_id}/collections | List collections |\n| GET | /ecosystems/{ecosystem_id}/collections/{id} | Get collection |\n| GET | /ecosystems/{ecosystem_id}/collections/{id}/listings | List collection listings |\n| GET | /ecosystems/{ecosystem_id}/products | List products |\n| GET | /ecosystems/{ecosystem_id}/products/{id} | Get product |\n| GET | /ecosystems/{ecosystem_id}/products/{id}/listings | List product listings |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Get ecosystem details?\" -> GET /ecosystems/{ecosystem_id}\n- \"List all listings?\" -> GET /ecosystems/{ecosystem_id}/listings\n- \"Get listing details?\" -> GET /ecosystems/{ecosystem_id}/listings/{id}\n- \"List all categories?\" -> GET /ecosystems/{ecosystem_id}/categories\n- \"Get category details?\" -> GET /ecosystems/{ecosystem_id}/categories/{id}\n- \"List all collections?\" -> GET /ecosystems/{ecosystem_id}/collections\n- \"Get collection details?\" -> GET /ecosystems/{ecosystem_id}/collections/{id}\n- \"List all products?\" -> GET /ecosystems/{ecosystem_id}/products\n- \"Get product details?\" -> GET /ecosystems/{ecosystem_id}/products/{id}\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Ecosystem API\n@base https://api.apideck.com\n@version 0.0.6\n@common_fields {ecosystem_id: str}\n@endpoints 12\n@toc ecosystems(12)\n\n@endpoint GET /ecosystems/{ecosystem_id}\n@desc Get ecosystem\n@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)}} # Ecosystems\n\n@endpoint GET /ecosystems/{ecosystem_id}/listings\n@desc List listings\n@optional {cursor: str # Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response., limit: int=50 # Number of records to return, external_id: str # Filter on external_id}\n@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}} # Listings\n\n@endpoint GET /ecosystems/{ecosystem_id}/listings/{id}\n@desc Get listing\n@required {id: str # ID of the record you are acting upon.}\n@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)}} # Listing\n\n@endpoint GET /ecosystems/{ecosystem_id}/categories\n@desc List categories\n@optional {cursor: str # Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response., limit: int=50 # Number of records to return}\n@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}} # Categories\n\n@endpoint GET /ecosystems/{ecosystem_id}/categories/{id}\n@desc Get category\n@required {id: str # ID of the record you are acting upon.}\n@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)}} # Category\n\n@endpoint GET /ecosystems/{ecosystem_id}/categories/{id}/listings\n@desc List category listings\n@required {id: str # ID of the record you are acting upon.}\n@optional {cursor: str # Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response., limit: int=50 # Number of records to return}\n@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}} # Listings\n\n@endpoint GET /ecosystems/{ecosystem_id}/collections\n@desc List collections\n@optional {cursor: str # Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response., limit: int=50 # Number of records to return}\n@returns(200) {status_code: int, status: str, data: [map]} # Collections\n\n@endpoint GET /ecosystems/{ecosystem_id}/collections/{id}\n@desc Get collection\n@required {id: str # ID of the record you are acting upon.}\n@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}} # Collection\n\n@endpoint GET /ecosystems/{ecosystem_id}/collections/{id}/listings\n@desc List collection listings\n@required {id: str # ID of the record you are acting upon.}\n@optional {cursor: str # Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response., limit: int=50 # Number of records to return}\n@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}} # Listings\n\n@endpoint GET /ecosystems/{ecosystem_id}/products\n@desc List products\n@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}} # Products\n\n@endpoint GET /ecosystems/{ecosystem_id}/products/{id}\n@desc Get product\n@required {id: str # ID of the record you are acting upon.}\n@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]?}} # Product\n\n@endpoint GET /ecosystems/{ecosystem_id}/products/{id}/listings\n@desc List product listings\n@required {id: str # ID of the record you are acting upon.}\n@optional {cursor: str # Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response., limit: int=50 # Number of records to return}\n@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}} # Listings\n\n@end\n"}}