VwD External API (1.0.0)

External API for accessing VwD creators data.

Download OpenAPI description
Overview
VwD API Support

support@vwd.ai

License

MIT

Languages
Servers
VwD Production API Server

https://api.vwd.ai/api/public/v1/

Mock server

https://apidocs.vwd.ai/_mock/apis/

Creator Management

Endpoints related to creators information and searches.

Operations

Brand Management

Endpoints for brand search and management.

Operations

List Management

Endpoints for managing creator lists.

Operations

Search creators by content

Request

Full-text search across creator names, summaries, and associated post content powered by Elasticsearch. Supports boolean keyword logic (AND/OR/NOT), exact phrase matching, platform filtering, list filtering, and multiple sort options.

Results are automatically scoped to the organization associated with the API key. Leave q blank to browse all creators with optional filters applied.

Bodyapplication/jsonrequired
qstring<= 500 characters

Free-text search query matched against the creator's name, summary, and associated post content. Leave blank to browse all creators with optional filters applied. Maximum 500 characters.

Example: "sustainable fashion"
exactboolean

When true the query is treated as an exact phrase — the words must appear consecutively and in the given order. When false (default) the query is tokenised and matched with partial/fuzzy logic.

Default false
Example: false
must_include_allArray of strings<= 10 items

AND logic — every keyword in this list must be present in the matching post content. Maximum 10 items, each up to 200 characters.

Example: ["vegan","organic"]
must_not_includeArray of strings<= 10 items

NOT logic — none of the keywords in this list should appear in the matching post content. Maximum 10 items, each up to 200 characters.

Example: ["spam"]
may_include_anyArray of strings<= 10 items

OR logic — at least one keyword from this list must be present in the matching post content. Maximum 10 items, each up to 200 characters.

Example: ["eco-friendly","green"]
sort_bystring

Sort order for results. Use relevance (default) to rank by search score. Prefix a field name with - for descending order.

Default "relevance"
Enum"relevance""followers_reach""name""avg_likes_per_post""avg_views_per_video""avg_comments_per_post""total_compliance_violations""created_at""posts_count""-followers_reach"
Example: "-followers_reach"
pageinteger[ 1 .. 100 ]

1-based page number (1–100). Defaults to 1.

Default 1
Example: 1
page_sizeinteger[ 1 .. 100 ]

Number of results per page (1–100). Defaults to 10.

Default 10
Example: 10
filtersobject

Optional nested object with platform, influencer, and list filters.

curl -i -X POST \
  https://api.vwd.ai/api/public/v1/search/creators/ \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "q": "sustainable fashion",
    "exact": false,
    "must_include_all": [
      "vegan",
      "organic"
    ],
    "must_not_include": [
      "spam"
    ],
    "may_include_any": [
      "eco-friendly",
      "green"
    ],
    "sort_by": "-followers_reach",
    "page": 1,
    "page_size": 10,
    "filters": {
      "platforms": [
        "instagram",
        "tiktok"
      ],
      "influencer_id": 12345,
      "list_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    }
  }'

Responses

Successfully retrieved search results.

Bodyapplication/json
countinteger

Total number of creators matching the query.

Example: 42
total_pagesinteger

Total number of pages available at the current page_size.

Example: 5
pageinteger

Current page number (1-based).

Example: 1
page_sizeinteger

Number of results returned per page.

Example: 10
resultsArray of objects

List of creator search results for the current page.

Response
application/json
{ "count": 42, "total_pages": 5, "page": 1, "page_size": 10, "results": [ {} ] }

Search posts by content

Request

Full-text search across post content (captions, descriptions, transcripts) powered by Elasticsearch. Supports boolean keyword logic (AND/OR/NOT), exact phrase matching, platform filtering, list filtering, and sorting by relevance or date.

Results are automatically scoped to the organization associated with the API key. Leave q blank to browse all posts with optional filters applied.

Bodyapplication/jsonrequired
qstring<= 500 characters

Free-text search query matched against post content. Leave blank to browse all posts with optional filters applied. Maximum 500 characters.

Example: "brand partnership"
exactboolean

When true the query is treated as an exact phrase — the words must appear consecutively and in the given order. When false (default) the query is tokenised and matched with partial/fuzzy logic.

Default false
Example: false
must_include_allArray of strings<= 10 items

AND logic — every keyword in this list must be present in the post content. Maximum 10 items, each up to 200 characters.

Example: ["sponsored","ad"]
must_not_includeArray of strings<= 10 items

NOT logic — none of the keywords in this list should appear in the post content. Maximum 10 items, each up to 200 characters.

Example: ["giveaway"]
may_include_anyArray of strings<= 10 items

OR logic — at least one keyword from this list must be present in the post content. Maximum 10 items, each up to 200 characters.

Example: ["collab","partnership"]
sort_bystring

Sort order for results. relevance (default) ranks by search score. posted_at sorts chronologically (oldest first), -posted_at sorts reverse-chronologically (newest first).

Default "relevance"
Enum"relevance""posted_at""-posted_at"
Example: "-posted_at"
pageinteger[ 1 .. 100 ]

1-based page number (1–100). Defaults to 1.

Default 1
Example: 1
page_sizeinteger[ 1 .. 100 ]

Number of results per page (1–100). Defaults to 10.

Default 10
Example: 10
filtersobject

Optional nested object with platform, influencer, and list filters.

curl -i -X POST \
  https://api.vwd.ai/api/public/v1/search/posts/ \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "q": "brand partnership",
    "exact": false,
    "must_include_all": [
      "sponsored",
      "ad"
    ],
    "must_not_include": [
      "giveaway"
    ],
    "may_include_any": [
      "collab",
      "partnership"
    ],
    "sort_by": "-posted_at",
    "page": 1,
    "page_size": 10,
    "filters": {
      "platforms": [
        "instagram",
        "youtube"
      ],
      "influencer_id": 12345,
      "list_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    }
  }'

Responses

Successfully retrieved search results.

Bodyapplication/json
countinteger

Total number of posts matching the query.

Example: 128
total_pagesinteger

Total number of pages available at the current page_size.

Example: 13
pageinteger

Current page number (1-based).

Example: 1
page_sizeinteger

Number of results returned per page.

Example: 10
resultsArray of objects

List of post search results for the current page.

Response
application/json
{ "count": 128, "total_pages": 13, "page": 1, "page_size": 10, "results": [ {} ] }

Content Analysis

Endpoints for retrieving creators posts with labels.

Operations

Brand Mentions

Endpoints for creators posts and timelines related to brands.

Operations

Compliance Monitoring

Endpoints for creators compliance data.

Operations