openapi: 3.2.0 info: title: GPT Backend Influencer Inventory API version: 0.1.0 servers: - url: https://api.usepomo.ai description: Base URL declared by the provider in apis.yml (roadmap#122). tags: - name: influencer-inventory paths: /api/influencer-inventory/search: post: tags: - influencer-inventory summary: Search Influencer Inventory operationId: search_influencer_inventory_api_influencer_inventory_search_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerInventorySearchRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InfluencerInventorySearchResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/profiles/related-accounts/discover: post: tags: - influencer-inventory summary: Discover Influencer Related Accounts operationId: discover_influencer_related_accounts_api_influencer_inventory_profiles_related_accounts_discover_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerRelatedAccountsDiscoveryRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InfluencerRelatedAccountsDiscoveryResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/search/web-discovery: post: tags: - influencer-inventory summary: Search Influencer Web Discovery operationId: search_influencer_web_discovery_api_influencer_inventory_search_web_discovery_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerWebDiscoveryRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InfluencerInventorySearchResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/search/web-discovery/stream: post: tags: - influencer-inventory summary: Stream Influencer Web Discovery description: Stream discovery progress and provider-validated results. operationId: stream_influencer_web_discovery_api_influencer_inventory_search_web_discovery_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerWebDiscoveryRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/search/analyze-query: post: tags: - influencer-inventory summary: Analyze Influencer Inventory Search Query operationId: analyze_influencer_inventory_search_query_api_influencer_inventory_search_analyze_query_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerInventoryQueryFilterAnalysisRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InfluencerInventoryQueryFilterAnalysisResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/search/web-discovery/curated-lists/stream: post: tags: - influencer-inventory summary: Stream Influencer Inventory Curated Lists description: Keep long-running curated-list generation alive and return its final snapshot. operationId: stream_influencer_inventory_curated_lists_api_influencer_inventory_search_web_discovery_curated_lists_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerInventoryCuratedListsRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/search/web-discovery/curated-lists: post: tags: - influencer-inventory summary: Get Influencer Inventory Curated Lists operationId: get_influencer_inventory_curated_lists_api_influencer_inventory_search_web_discovery_curated_lists_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerInventoryCuratedListsRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InfluencerInventoryCuratedListsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /api/influencer-inventory/creators/ingest: post: tags: - influencer-inventory summary: Ingest Influencer Inventory Creator operationId: ingest_influencer_inventory_creator_api_influencer_inventory_creators_ingest_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InfluencerInventoryCreatorIngestRequest' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Ingest Influencer Inventory Creator Api Influencer Inventory Creators Ingest Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError InfluencerWebDiscoveryRequest: properties: query: type: string maxLength: 500 minLength: 2 title: Query filters: $ref: '#/components/schemas/InfluencerWebDiscoveryFiltersRequest' type: object required: - query title: InfluencerWebDiscoveryRequest InfluencerInventoryCuratedListsResponse: properties: lists: items: $ref: '#/components/schemas/InfluencerInventoryCuratedList' type: array title: Lists debug: additionalProperties: true type: object title: Debug type: object required: - lists title: InfluencerInventoryCuratedListsResponse InfluencerInventoryQueryFilterAnalysisRequest: properties: query: type: string maxLength: 500 minLength: 2 title: Query type: object required: - query title: InfluencerInventoryQueryFilterAnalysisRequest InfluencerInventorySearchRequest: properties: query: type: string maxLength: 500 minLength: 2 title: Query limit: type: integer maximum: 50.0 minimum: 1.0 title: Limit default: 20 query_type: type: string enum: - hybrid - ann - FULL_TEXT title: Query Type default: hybrid platforms: items: type: string enum: - INST - YT - TT type: array title: Platforms creator_type: anyOf: - type: string maxLength: 80 - type: 'null' title: Creator Type creator_type_includes: items: type: string type: array maxItems: 6 title: Creator Type Includes creator_type_excludes: items: type: string type: array maxItems: 6 title: Creator Type Excludes min_followers: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Min Followers max_followers: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Max Followers location_filters: items: type: string type: array maxItems: 8 title: Location Filters type: object required: - query title: InfluencerInventorySearchRequest InfluencerSuggestedPlatformDmMessage: properties: message: type: string maxLength: 500 minLength: 1 title: Message type: object required: - message title: InfluencerSuggestedPlatformDmMessage InfluencerSuggestedEmailMessage: properties: subject: type: string maxLength: 160 minLength: 1 title: Subject message: type: string maxLength: 800 minLength: 1 title: Message type: object required: - subject - message title: InfluencerSuggestedEmailMessage InfluencerInventoryQueryFilterAnalysisResponse: properties: min_followers: anyOf: - type: integer - type: 'null' title: Min Followers max_followers: anyOf: - type: integer - type: 'null' title: Max Followers follower_size_label: anyOf: - type: string - type: 'null' title: Follower Size Label location_filters: items: type: string type: array title: Location Filters creator_type_includes: items: type: string type: array title: Creator Type Includes creator_type_excludes: items: type: string type: array title: Creator Type Excludes matched_signals: items: type: string type: array title: Matched Signals source: type: string title: Source default: fallback type: object title: InfluencerInventoryQueryFilterAnalysisResponse InfluencerInventoryBudgetMatch: properties: matched: type: boolean title: Matched budget_type: type: string title: Budget Type min_budget_usd: anyOf: - type: number - type: 'null' title: Min Budget Usd max_budget_usd: anyOf: - type: number - type: 'null' title: Max Budget Usd matched_deliverable: type: string title: Matched Deliverable suggested_amount: type: number title: Suggested Amount type: object required: - matched - budget_type - matched_deliverable - suggested_amount title: InfluencerInventoryBudgetMatch InfluencerRelatedAccountsDiscoveryInput: properties: profile_url: type: string maxLength: 1000 minLength: 1 title: Profile Url type: object required: - profile_url title: InfluencerRelatedAccountsDiscoveryInput InfluencerPublicContact: properties: type: type: string enum: - email - phone - social - messaging - link_hub - website - contact_form - booking - address - company - other title: Type purpose: type: string enum: - creator - business - management - agency - press - general title: Purpose label: type: string maxLength: 120 minLength: 1 title: Label value: type: string maxLength: 2000 minLength: 1 title: Value type: object required: - type - purpose - label - value title: InfluencerPublicContact InfluencerInventorySearchResult-Input: properties: vector_record_id: anyOf: - type: string - type: 'null' title: Vector Record Id inventory_account_id: anyOf: - type: string - type: 'null' title: Inventory Account Id platform: anyOf: - type: string - type: 'null' title: Platform platform_account_id: anyOf: - type: string - type: 'null' title: Platform Account Id handle: anyOf: - type: string - type: 'null' title: Handle display_name: anyOf: - type: string - type: 'null' title: Display Name profile_url: anyOf: - type: string - type: 'null' title: Profile Url avatar_url: anyOf: - type: string - type: 'null' title: Avatar Url document_type: anyOf: - type: string - type: 'null' title: Document Type document_version: anyOf: - type: string - type: 'null' title: Document Version score: anyOf: - type: number - type: 'null' title: Score snippet: anyOf: - type: string - type: 'null' title: Snippet chunk_text: anyOf: - type: string - type: 'null' title: Chunk Text creator_type: anyOf: - type: string - type: 'null' title: Creator Type primary_niche: anyOf: - type: string - type: 'null' title: Primary Niche profile_description: anyOf: - type: string - type: 'null' title: Profile Description secondary_niches: items: type: string type: array title: Secondary Niches keywords: items: type: string type: array title: Keywords industry_verticals: items: type: string type: array title: Industry Verticals brand_fit_categories: items: type: string type: array title: Brand Fit Categories content_pillars: items: additionalProperties: true type: object type: array title: Content Pillars collaboration_ideas: items: type: string type: array title: Collaboration Ideas risk_flags: items: additionalProperties: true type: object type: array title: Risk Flags pricing_estimates: items: additionalProperties: true type: object type: array title: Pricing Estimates budget_match: anyOf: - $ref: '#/components/schemas/InfluencerInventoryBudgetMatch' - type: 'null' provider_profile: additionalProperties: true type: object title: Provider Profile followers: anyOf: - type: integer - type: 'null' title: Followers avg_er: anyOf: - type: number - type: 'null' title: Avg Er verified: anyOf: - type: boolean - type: 'null' title: Verified account_country: anyOf: - type: string - type: 'null' title: Account Country audience_top_country_code: anyOf: - type: string - type: 'null' title: Audience Top Country Code quality_score: anyOf: - type: number - type: 'null' title: Quality Score pct_fake_followers: anyOf: - type: number - type: 'null' title: Pct Fake Followers bio_summary: anyOf: - type: string maxLength: 220 - type: 'null' title: Bio Summary public_contacts: items: $ref: '#/components/schemas/InfluencerPublicContact' type: array title: Public Contacts suggested_outreach_messages: anyOf: - $ref: '#/components/schemas/InfluencerSuggestedOutreachMessages' - type: 'null' type: object title: InfluencerInventorySearchResult InfluencerInventorySearchResponse: properties: query: type: string title: Query query_type: type: string title: Query Type index_name: type: string title: Index Name total_returned: type: integer title: Total Returned results: items: $ref: '#/components/schemas/InfluencerInventorySearchResult-Output' type: array title: Results debug: additionalProperties: true type: object title: Debug type: object required: - query - query_type - index_name - total_returned - results title: InfluencerInventorySearchResponse InfluencerInventoryCreatorIngestRequest: properties: inventory_account_id: anyOf: - type: string maxLength: 255 - type: 'null' title: Inventory Account Id platform: type: string enum: - INST - YT - TT - instagram - youtube - tiktok title: Platform platform_account_id: anyOf: - type: string maxLength: 255 - type: 'null' title: Platform Account Id handle: anyOf: - type: string maxLength: 255 - type: 'null' title: Handle display_name: anyOf: - type: string maxLength: 255 - type: 'null' title: Display Name profile_url: anyOf: - type: string maxLength: 1000 - type: 'null' title: Profile Url avatar_url: anyOf: - type: string maxLength: 2000 - type: 'null' title: Avatar Url snippet: anyOf: - type: string maxLength: 4000 - type: 'null' title: Snippet creator_type: anyOf: - type: string maxLength: 80 - type: 'null' title: Creator Type primary_niche: anyOf: - type: string maxLength: 255 - type: 'null' title: Primary Niche profile_description: anyOf: - type: string maxLength: 4000 - type: 'null' title: Profile Description followers: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Followers avg_er: anyOf: - type: number minimum: 0.0 - type: 'null' title: Avg Er verified: anyOf: - type: boolean - type: 'null' title: Verified account_country: anyOf: - type: string maxLength: 120 - type: 'null' title: Account Country audience_top_country_code: anyOf: - type: string maxLength: 16 - type: 'null' title: Audience Top Country Code quality_score: anyOf: - type: number - type: 'null' title: Quality Score pct_fake_followers: anyOf: - type: number - type: 'null' title: Pct Fake Followers provider_profile: additionalProperties: true type: object title: Provider Profile discovery_snapshot: anyOf: - $ref: '#/components/schemas/InfluencerInventorySearchResult-Input' - type: 'null' bio_summary: anyOf: - type: string maxLength: 220 - type: 'null' title: Bio Summary public_contacts: items: $ref: '#/components/schemas/InfluencerPublicContact' type: array title: Public Contacts suggested_outreach_messages: anyOf: - $ref: '#/components/schemas/InfluencerSuggestedOutreachMessages' - type: 'null' suggested_dm_message: anyOf: - type: string maxLength: 500 - type: 'null' title: Suggested Dm Message type: object required: - platform title: InfluencerInventoryCreatorIngestRequest ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError InfluencerInventoryCuratedList: properties: id: type: string title: Id title: type: string title: Title persona: type: string title: Persona query: type: string title: Query rationale: anyOf: - type: string - type: 'null' title: Rationale brand_fit_summary: anyOf: - type: string - type: 'null' title: Brand Fit Summary brand_fit_points: items: type: string type: array maxItems: 3 title: Brand Fit Points platforms: items: type: string enum: - INST - YT - TT type: array title: Platforms total_returned: type: integer title: Total Returned results: items: $ref: '#/components/schemas/InfluencerInventorySearchResult-Output' type: array title: Results debug: additionalProperties: true type: object title: Debug type: object required: - id - title - persona - query - platforms - total_returned - results title: InfluencerInventoryCuratedList InfluencerRelatedAccountsDiscoveryRequest: properties: result: $ref: '#/components/schemas/InfluencerRelatedAccountsDiscoveryInput' type: object required: - result title: InfluencerRelatedAccountsDiscoveryRequest InfluencerSuggestedOutreachMessages: properties: email: $ref: '#/components/schemas/InfluencerSuggestedEmailMessage' platform_dm: $ref: '#/components/schemas/InfluencerSuggestedPlatformDmMessage' type: object required: - email - platform_dm title: InfluencerSuggestedOutreachMessages InfluencerWebDiscoveryFiltersRequest: properties: platforms: items: type: string enum: - INST - YT - TT type: array maxItems: 3 minItems: 1 title: Platforms account_locations: items: type: string maxLength: 120 minLength: 1 type: array maxItems: 8 title: Account Locations min_followers: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Min Followers max_followers: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Max Followers languages: items: type: string maxLength: 120 minLength: 1 type: array maxItems: 8 title: Languages verified_only: type: boolean title: Verified Only default: false creator_type_includes: items: type: string type: array maxItems: 6 title: Creator Type Includes type: object title: InfluencerWebDiscoveryFiltersRequest InfluencerRelatedAccountsDiscoveryResponse: properties: profile_url: type: string title: Profile Url public_contacts: items: $ref: '#/components/schemas/InfluencerPublicContact' type: array title: Public Contacts contacts_json: additionalProperties: items: type: string type: array type: object title: Contacts Json debug: additionalProperties: true type: object title: Debug type: object required: - profile_url title: InfluencerRelatedAccountsDiscoveryResponse InfluencerInventorySearchResult-Output: properties: vector_record_id: anyOf: - type: string - type: 'null' title: Vector Record Id inventory_account_id: anyOf: - type: string - type: 'null' title: Inventory Account Id platform: anyOf: - type: string - type: 'null' title: Platform platform_account_id: anyOf: - type: string - type: 'null' title: Platform Account Id handle: anyOf: - type: string - type: 'null' title: Handle display_name: anyOf: - type: string - type: 'null' title: Display Name profile_url: anyOf: - type: string - type: 'null' title: Profile Url avatar_url: anyOf: - type: string - type: 'null' title: Avatar Url document_type: anyOf: - type: string - type: 'null' title: Document Type document_version: anyOf: - type: string - type: 'null' title: Document Version score: anyOf: - type: number - type: 'null' title: Score snippet: anyOf: - type: string - type: 'null' title: Snippet chunk_text: anyOf: - type: string - type: 'null' title: Chunk Text creator_type: anyOf: - type: string - type: 'null' title: Creator Type primary_niche: anyOf: - type: string - type: 'null' title: Primary Niche profile_description: anyOf: - type: string - type: 'null' title: Profile Description secondary_niches: items: type: string type: array title: Secondary Niches keywords: items: type: string type: array title: Keywords industry_verticals: items: type: string type: array title: Industry Verticals brand_fit_categories: items: type: string type: array title: Brand Fit Categories content_pillars: items: additionalProperties: true type: object type: array title: Content Pillars collaboration_ideas: items: type: string type: array title: Collaboration Ideas risk_flags: items: additionalProperties: true type: object type: array title: Risk Flags pricing_estimates: items: additionalProperties: true type: object type: array title: Pricing Estimates budget_match: anyOf: - $ref: '#/components/schemas/InfluencerInventoryBudgetMatch' - type: 'null' provider_profile: additionalProperties: true type: object title: Provider Profile followers: anyOf: - type: integer - type: 'null' title: Followers avg_er: anyOf: - type: number - type: 'null' title: Avg Er verified: anyOf: - type: boolean - type: 'null' title: Verified account_country: anyOf: - type: string - type: 'null' title: Account Country audience_top_country_code: anyOf: - type: string - type: 'null' title: Audience Top Country Code quality_score: anyOf: - type: number - type: 'null' title: Quality Score pct_fake_followers: anyOf: - type: number - type: 'null' title: Pct Fake Followers bio_summary: anyOf: - type: string maxLength: 220 - type: 'null' title: Bio Summary public_contacts: items: $ref: '#/components/schemas/InfluencerPublicContact' type: array title: Public Contacts suggested_outreach_messages: anyOf: - $ref: '#/components/schemas/InfluencerSuggestedOutreachMessages' - type: 'null' type: object title: InfluencerInventorySearchResult InfluencerInventoryCuratedListsRequest: properties: platforms: items: type: string enum: - INST - YT - TT type: array maxItems: 3 minItems: 1 title: Platforms list_count: type: integer maximum: 5.0 minimum: 4.0 title: List Count default: 5 creators_per_list: anyOf: - type: integer maximum: 50.0 minimum: 1.0 - type: 'null' title: Creators Per List force_refresh: type: boolean title: Force Refresh default: false list_index: anyOf: - type: integer maximum: 4.0 minimum: 0.0 - type: 'null' title: List Index creator_type_includes: items: type: string type: array maxItems: 6 title: Creator Type Includes creator_type_excludes: items: type: string type: array maxItems: 6 title: Creator Type Excludes type: object title: InfluencerInventoryCuratedListsRequest securitySchemes: HTTPBearer: type: http scheme: bearer