# Core API Concepts

**Authentication**

Every request is authenticated by a Bearer credential in the `Authorization` header. There are two types of credential, each suited to a different use case:

- **[API Keys](/openapi/api-keys)** — call the API as yourself (scripts, backend services). Create and revoke them in the dashboard or via the API; you can hold several and revoke any one independently.
- **[OAuth](/openapi/oauth)** — for applications acting on behalf of other users (desktop or CLI tools), via OAuth 2.0 with PKCE.

Each credential carries one or more scopes that control what it can access. Today every credential is issued with full access; scoped, least-privilege credentials are planned.

**Discovery**

Identify and evaluate creators using structured, platform-specific search criteria.
Responses are intentionally constrained to support ranking, filtering, and selection
at scale rather than full profile hydration.

**Enrichment**

Retrieve complete creator-level data once a candidate has been identified.
Enrichment responses provide the depth required for analysis, activation,
and downstream data workflows.

**Execution modes**

Enrichment is available in both synchronous and asynchronous forms.
Single enrichment supports real-time use cases, while batch enrichment is optimized
for high-throughput, non-interactive processing.

**Typical usage**

Discovery and enrichment are designed as complementary stages.
Discovery narrows the candidate set; enrichment supplies detailed data
for creators that have already been qualified.


Version: 1.0.0

## Servers

Production
```
https://api-dashboard.influencers.club
```

## Security

### Bearer

Type: http
Scheme: bearer
Bearer Format: API_KEY

## Download OpenAPI description

[Core API Concepts](https://docs.influencers.club/_bundle/openapi.yaml)

## Discovery API

### Discovery API

 - [POST /public/v1/discovery/](https://docs.influencers.club/openapi/discovery-api/public_v1_discovery_create.md): Search and discover creators across multiple platforms using advanced filtering and search.

Platform-specific filters
- The available filters depend on the platform you choose.
- When you switch platform, you’ll see different filter fields available in the request body for that platform.
- Use the Dictionary endpoints to retrieve valid values for filters such as locations, languages, brands, audience interests, and audience locations.

Credits
- 0.01 credits per creator returned. If a request returns 0 creators, 0 credits are deducted.
- Credits are consumed on every request that returns creators, even if the filters are identical to a previous request.It is the client's responsibility to monitor request volume and credit usage.

What you get
- Paginated list of creator profiles with profile info, follower counts, engagement rates, and analytics. Instagram creators (10k+ followers) also include audience demographics and interest data.
- Supports Instagram, YouTube, TikTok, Twitch, Twitter, and OnlyFans platforms.

## Similar Creators

### Similar Creators

 - [POST /public/v1/discovery/creators/similar/](https://docs.influencers.club/openapi/similar-creators/public_v1_discovery_creators_similar_create.md): Discover creators similar to a reference creator based on various similarity criteria.

What you get
- Returns a paginated list of creator profiles that match the reference creator's characteristics, content style, audience, or other specified attributes.
- Supports filtering by URL, username, or ID, and allows additional filters to refine similarity matching.
- Useful for finding lookalike creators, competitors, or creators in the same niche.

Credits
- 0.01 credits per creator returned. If no creators are returned, no credits are deducted.
- Credits are consumed on every request that returns creators, even if the filters are identical to a previous request.
- It is the client's responsibility to monitor request volume and credit usage.

## Audience Overlap

### Audience Overlap

 - [POST /public/v1/creators/audience/overlap/](https://docs.influencers.club/openapi/audience-overlap/public_v1_creators_audience_overlap_create.md): Compare audience overlap between 2-10 creators on a given platform.

What you get
- Returns per-creator audience overlap and unique audience percentages, plus report-level totals (total followers and total unique followers across all compared creators).
- Useful for evaluating creator partnerships, identifying audience duplication across campaigns, and optimizing influencer selection for maximum reach.

Credits
- 1 credit per request, regardless of how many creators are compared.

## Dictionary

Provides the complete set of supported filter values used by the Discovery and Similar Creators endpoints.

These endpoints return all valid, platform-specific values (such as languages, locations, brands, YouTube topics, Twitch games, audience brand categories, audience brand names, audience interests, and audience locations) that can be used when constructing discovery queries.

Clients should retrieve dictionary values programmatically to ensure only supported values are sent in requests. Available values may vary by platform and can evolve over time.


### Languages

 - [GET /public/v1/discovery/classifier/languages/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_languages_list.md): Retrieve a list of supported languages with their abbreviations for filtering creators by profile language or content language. Useful for discovering creators who create content in specific languages or target particular linguistic audiences.

Credits
- 0 credits. This endpoint does not deduct credits.

### Platform Locations

 - [GET /public/v1/discovery/classifier/locations/{platform}/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_locations_retrieve.md): Retrieve a list of location identifiers available for a specific platform.

What you get
- Returns location strings that can be used to filter creators by geographic location in discovery searches.
- Platform-specific location data helps target creators from specific regions, cities, or countries.
- Use the search parameter for substring/prefix matching on location names (e.g. "London", "United").
- Use offset and limit to paginate through results.

Credits
- 0 credits. This endpoint does not deduct credits.

### Brands

 - [GET /public/v1/discovery/classifier/brands/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_brands_list.md): Retrieve a comprehensive list of brand names available for filtering in creator discovery searches. Returns brand identifiers including full names, cleaned names, and usernames that can be used to find creators who have worked with specific brands or mentioned them in their content.
Credits - 0 credits. This endpoint does not deduct credits.

### Youtube Topics

 - [GET /public/v1/discovery/classifier/yt-topics/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_yt_topics_list.md): Retrieve a hierarchical list of YouTube topic categories and their subtopics.

What you get
- Returns YouTube topic categories and their subtopics. When using YouTube Discovery, pass sub_topic_details values into the topics filter.
- Useful for finding creators in particular content verticals or subject areas.

Credits
- 0 credits. This endpoint does not deduct credits.

### Twitch Games

 - [GET /public/v1/discovery/classifier/games/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_games_list.md): Retrieve a list of video games available on Twitch that can be used for filtering creators. Returns game identifiers and metadata to help discover Twitch streamers who play specific games or have streamed particular titles.

Credits
- 0 credits. This endpoint does not deduct credits.

### Audience Brand Categories

 - [GET /public/v1/discovery/classifier/audience-brand-categories/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_audience_brand_categories_list.md): Returns a list of audience brand categories (e.g., Sports, Fashion, Technology) from Instagram creator audience data. Use these values in the audience.brand_categories filter on the Discovery API to search for Instagram creators (10k+ followers) whose audience follows brands in specific categories.

Credits
- 0 credits. This endpoint does not deduct credits.

### Audience Brand Names

 - [GET /public/v1/discovery/classifier/audience-brand-names/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_audience_brand_names_list.md): Returns a list of audience brand names (e.g., Nike, Apple, Starbucks) from Instagram creator audience data. Use these values in the audience.brands filter on the Discovery API to search for Instagram creators (10k+ followers) whose audience follows specific brands.

Credits
- 0 credits. This endpoint does not deduct credits.

### Audience Interests

 - [GET /public/v1/discovery/classifier/audience-interests/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_audience_interests_list.md): Returns a list of audience interest values from Instagram creator audience data. Use these values in the audience.interests filter on the Discovery API to search for Instagram creators (10k+ followers) whose audience has specific interests.

Credits
- 0 credits. This endpoint does not deduct credits.

### Audience Locations

 - [GET /public/v1/discovery/classifier/audience-locations/](https://docs.influencers.club/openapi/dictionary/public_v1_discovery_classifier_audience_locations_list.md): Returns a list of audience location values (countries, states, cities) from Instagram creator audience data. Use these values in the audience.location filter on the Discovery API to search for Instagram creators (10k+ followers) whose audience is in specific locations.

Credits
- 0 credits. This endpoint does not deduct credits.

## Connected Socials

### Connected Socials

 - [POST /public/v1/creators/socials/](https://docs.influencers.club/openapi/connected-socials/public_v1_creators_socials_create.md): Discover all verified social accounts connected to a creator, given a seed platform and handle.

What you get
- Returns an array of verified connected social accounts across platforms, including platform name, username, and follower count for each connected account.
- Supports 6 seed platforms: Instagram, YouTube, TikTok, OnlyFans, Twitter, and Twitch.

Credits
- 0.5 credits per successful request. If no data is returned, no credits are deducted.

## Enrich by handle full

### Enrich by handle full

 - [POST /public/v1/creators/enrich/handle/full/](https://docs.influencers.club/openapi/enrich-by-handle-full/public_v1_creators_enrich_handle_full_create.md): Perform comprehensive enrichment of a creator profile using their social media handle.

What you get
- Returns complete profile data including cross-platform presence, engagement analytics, follower growth metrics, content performance data, monetization indicators, niche classification, hashtags, income estimates, and optional lookalike creator recommendations.
- Supports Instagram, YouTube, TikTok, OnlyFans, Twitter, Snapchat, Discord, Pinterest, Facebook, LinkedIn, and Twitch platforms.
- Optional email requirement and lookalike inclusion settings available.

Credits
- 1 credit per successful request. If no data is returned, no credits are deducted.

## Enrich by handle raw

### Enrich by handle raw

 - [POST /public/v1/creators/enrich/handle/raw/](https://docs.influencers.club/openapi/enrich-by-handle-raw/public_v1_creators_enrich_handle_raw_create.md): Retrieve raw platform data for a creator profile using their social media handle.

What you get
- Returns unprocessed platform-specific data directly from the source, including basic profile information, post data, media counts, and platform-native metadata.
- This endpoint provides the foundational data layer before any additional processing or enrichment.
- Supports Instagram, YouTube, TikTok, OnlyFans, Twitter, Snapchat, Discord, Pinterest, Facebook, and LinkedIn platforms.

Credits
- 0.03 credits per successful request. If no data is returned, no credits are deducted.

## Enrich by email

### Enrich by email

 - [POST /public/v1/creators/enrich/email/](https://docs.influencers.club/openapi/enrich-by-email/public_v1_creators_enrich_email_create.md): Perform basic enrichment of creator profiles using an email address.

What you get
- Returns the creator's single strongest platform — the one with the highest follower count — with essential profile data: basic social media presence, contact details, and platform account identifiers.
- Ideal for quick profile lookups and initial creator identification across Instagram, YouTube, TikTok, Twitter, Twitch, and OnlyFans.

Credits
- 0.05 credits per successful request. If no data is returned, no credits are deducted.

## Batch enrichment

Bulk enrichment jobs: create, check status, resume, and download results.

### Create Batch Enrichment

 - [POST /public/v1/enrichment/batch/](https://docs.influencers.club/openapi/batch-enrichment/public_v1_enrichment_batch_create.md): Create a batch enrichment job by uploading a CSV.

How it works
1. Upload a .csv file (one column: handle or email)
2. Choose the enrichment mode (handle: raw/full, email: basic)
3. Use the returned batch_id to check status and download results

Request
- multipart/form-data
- file: CSV (max 10MB)
- Mode fields depend on whether you’re enriching by handle or email

Credits
- Credits are deducted per successfully enriched record
- The credit rate follows the corresponding single-enrichment pricing (handle raw/full, or email enrichment)
- If no data is returned for a record, 0 credits are deducted for that record

Checking completion
Poll GET /public/v1/enrichment/batch/{batch_id}/status/ every 30–60 seconds until the job finishes. Status values:
- queued — waiting to start
- processing — actively enriching records
- finished — all records done; download results via GET /public/v1/enrichment/batch/{batch_id}/
- failed — job failed
- paused_insufficient_credits — top up credits and call the resume endpoint

This API is polling-based. There are no webhooks or push notifications.

### Get Batch Enrichment Status

 - [GET /public/v1/enrichment/batch/{batch_id}/status/](https://docs.influencers.club/openapi/batch-enrichment/public_v1_enrichment_batch_status_retrieve.md): Check the current processing status of a batch enrichment job.

What you get
- Current state (e.g., queued/running/completed/failed)
- Progress indicators (processed vs remaining), when available

Credits
- 0 credits (status only)

### Resume Batch Enrichment

 - [POST /public/v1/enrichment/batch/{batch_id}/resume/](https://docs.influencers.club/openapi/batch-enrichment/public_v1_enrichment_batch_resume_create.md): Resume a paused or interrupted batch enrichment job.

When to use
- If a batch was paused or failed mid-run and needs to continue processing

Credits
- 0 credits to resume (credits apply only to successfully enriched records)

### Download Batch Enrichment CSV (Recommended)

 - [GET /public/v1/enrichment/batch/{batch_id}/download/](https://docs.influencers.club/openapi/batch-enrichment/public_v1_enrichment_batch_download_retrieve.md): Download the enriched CSV dataset via a temporary presigned URL. This is the recommended endpoint for downloading CSV results.

Compared to the direct download endpoint, this returns a short-lived URL that lets you download the file directly from storage — faster and more reliable for large files.

Requirements
- Batch must be in finished status
- Results file must have been generated

Output format
- CSV only — for JSON output, use the direct download endpoint (GET /public/v1/enrichment/batch/{batch_id}/) with ?format=json

Response
- download_url — temporary URL (valid for a limited time)
- expires_in — seconds until the URL expires
- expires_at — expiration timestamp

Error Responses
- 400 Bad Request — batch not completed yet or no results file available
- 404 Not Found — invalid batch ID or batch does not belong to client

Credits
- 0 credits (download only)

### Download Batch Enrichment Results (Direct)

 - [GET /public/v1/enrichment/batch/{batch_id}/](https://docs.influencers.club/openapi/batch-enrichment/public_v1_enrichment_batch_retrieve.md): Download the final enriched dataset after processing is complete.

> Tip: For CSV downloads, consider using the recommended endpoint GET /public/v1/enrichment/batch/{batch_id}/download/ instead — it returns a presigned URL for faster, more reliable downloads. Use this endpoint if you need JSON output or as a fallback.

Requirements
- Batch must be in finished status
- Results file must have been generated

Output formats
- CSV (default) — omit format or pass ?format=csv
- JSON — pass ?format=json to receive a JSON array where each object has:
&nbsp;&nbsp;- input_value — the original input (handle or email)
&nbsp;&nbsp;- status — enrichment status for that record
&nbsp;&nbsp;- enrichment_data — the enriched creator data

Error Responses
- 400 Bad Request — batch not completed yet or no results file available
- 404 Not Found — invalid batch ID or batch does not belong to client

Credits
- 0 credits (download only)

## Subscriptions

Create and manage social-listening subscriptions — the monitoring configs that watch a set of creators (by handle or discovery list) and deliver matching activity to your notify endpoints (e.g. a webhook URL). Covers listing, retrieving, updating and deleting subscriptions, and managing their creators, details and exports.

### List subscriptions

 - [GET /public/v1/social/listening/subscription/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_list.md): Return a paginated list of the client's social-listening subscriptions, optionally filtered by type. The response includes a summary block with aggregate counts.

### Create subscription

 - [POST /public/v1/social/listening/subscription/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_create.md): Create a new social-listening subscription from handles and/or discovery lists.

### Get subscription

 - [GET /public/v1/social/listening/subscription/{subscription_id}/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_retrieve.md): Return the full detail representation of a subscription, including creators, daily cost, and (for campaign subscriptions) stats.

### Update subscription

 - [PATCH /public/v1/social/listening/subscription/{subscription_id}/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_partial_update.md): Partially update a subscription (name, endpoints, or creators). Status changes (pause/resume) on campaign-backed subscriptions are rejected; their lifecycle is driven by the campaign.

### Delete subscription

 - [DELETE /public/v1/social/listening/subscription/{subscription_id}/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_delete.md): Delete a webhook subscription and all its related links. Campaign-backed subscriptions are rejected; archive the campaign instead (DELETE /campaign//).

### List subscription creators

 - [GET /public/v1/social/listening/subscription/{subscription_id}/creators/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_creators_retrieve.md): Return a paginated list of creators in the subscription with follower and source metadata, optionally filtered by handle via the search query parameter.

### Add subscription creators

 - [POST /public/v1/social/listening/subscription/{subscription_id}/creators/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_creators_create.md): Add creators to the subscription from handles, discovery lists, and/or a CSV file (a handle column is required).

### Get subscription stats

 - [GET /public/v1/social/listening/subscription/{subscription_id}/details/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_details_retrieve.md): Return aggregated delivery stats for a campaign subscription.

### Export subscription stats (CSV)

 - [GET /public/v1/social/listening/subscription/{subscription_id}/details/export/](https://docs.influencers.club/openapi/subscriptions/public_v1_social_listening_subscription_details_export_retrieve.md): Download the campaign subscription's aggregated stats as a CSV file.

## Campaigns

Higher-level monitoring campaigns that provision and manage the backing per-platform webhook subscriptions for you, and expose aggregated delivery stats — for monitoring across platforms under a single construct.

### List campaigns

 - [GET /public/v1/social/listening/campaign/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_list.md): Return a paginated list of the client's campaigns, optionally filtered by status and search, with a status_counts summary.

### Create campaign

 - [POST /public/v1/social/listening/campaign/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_create.md): Create a campaign and its backing per-platform webhook subscriptions.

### Get campaign

 - [GET /public/v1/social/listening/campaign/{campaign_id}/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_retrieve.md): Return the detail representation of a single campaign by id. Team members can view campaigns within their client scope.

### Update campaign

 - [PATCH /public/v1/social/listening/campaign/{campaign_id}/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_partial_update.md): Update a campaign's status, budget and/or content types. Setting status to paused or active pauses/resumes the campaign and cascades the same status to all its backing subscriptions; resuming runs a credit check. Editing content types re-derives and propagates the detection filters to the campaign's backing subscriptions. Archived or completed campaigns cannot be edited.

### Archive campaign

 - [DELETE /public/v1/social/listening/campaign/{campaign_id}/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_delete.md): Archive a campaign and disable all its backing subscriptions. This is a soft delete: rows are retained but detection is stopped.

### List campaign creators

 - [GET /public/v1/social/listening/campaign/{campaign_id}/creators/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_creators_retrieve.md): Return a paginated list of the campaign's creators with per-creator metrics (posts, views, engagement, ER%, EMV, and a 7-day trend), searchable by handle/name and sortable by any metric column. Creators added but not yet posting are included with status awaiting_first_post.

### Add campaign creators

 - [POST /public/v1/social/listening/campaign/{campaign_id}/creators/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_creators_create.md): Add creators to one of the campaign's platforms from handles, a discovery list, and/or a CSV file.

### Remove campaign creators

 - [DELETE /public/v1/social/listening/campaign/{campaign_id}/creators/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_creators_delete.md): Remove creators from the campaign by creator id (the id field from the Creators list). The creators' links are deleted while the campaign and subscriptions are kept; detection stops for the removed creators. Idempotent: ids that aren't on the campaign are ignored.

### Get campaign overview

 - [GET /public/v1/social/listening/campaign/{campaign_id}/overview/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_overview_retrieve.md): Return the aggregated overview metrics for a single campaign, including total posts, views, engagement, EMV, and trends. Optionally filter by platform using the platform query parameter.

### List campaign content

 - [GET /public/v1/social/listening/campaign/{campaign_id}/content/](https://docs.influencers.club/openapi/campaigns/public_v1_social_listening_campaign_content_retrieve.md): Return a paginated feed of the campaign's posts (one per detected new_post event), optionally narrowed to a single platform and sorted by a metric column (defaults to most recent first). Each post carries its creator, metrics, per-post EMV and ER%, media, and a top flag for the highest-ER posts.

## Events

Activity detected on monitored creators — events such as `new_post`, `bio_change` and `follower_threshold` — with the full payload and per-endpoint delivery history and status (pending / sending / sent / failed / retrying). List events or fetch a single event.

### List events

 - [GET /public/v1/social/listening/events/](https://docs.influencers.club/openapi/events/public_v1_social_listening_events_list.md): Return a paginated list of the client's events, optionally filtered by subscription, event type, or creator.

### Get event

 - [GET /public/v1/social/listening/events/{event_id}/](https://docs.influencers.club/openapi/events/public_v1_social_listening_events_retrieve.md): Return a single event with its full payload and delivery history.

## Usage

Current social-listening limits and active subscription counts for the account's scope, so a client can see how much of its monitoring quota is in use.

### Get usage

 - [GET /public/v1/social/listening/usage/](https://docs.influencers.club/openapi/usage/public_v1_social_listening_usage_list.md): Return current social-listening limits and active subscription counts for the client's scope.

## Creator Posts

### Creator Posts

 - [POST /public/v1/creators/content/posts/](https://docs.influencers.club/openapi/creator-posts/public_v1_creators_content_posts_create.md): Fetch recent posts for a creator on a given platform.

What you get
- Returns a list of recent posts with metadata including post ID, URL, caption, media URLs, timestamps, and engagement metrics (likes, comments, views, shares).
- Supports Instagram, TikTok, and YouTube platforms.
- Uses cursor-based pagination via next_token for fetching additional pages of results.
- Page sizes are platform-specific:
&nbsp;&nbsp;Instagram — fixed at 12 posts per page (not configurable).
&nbsp;&nbsp;TikTok — default 30, max 35.
&nbsp;&nbsp;YouTube — default 30, max 50.

Credits
- 0.03 credits per successful request. If no data is returned, no credits are deducted.

## Post Details

### Post Details

 - [POST /public/v1/creators/content/details/](https://docs.influencers.club/openapi/post-details/public_v1_creators_content_details_create.md): Retrieve detailed information about specific creator content.

What you get
- Supports Instagram, TikTok, and YouTube platforms.
- Returns platform-specific content metadata and engagement data in a structured format.

Supported content types per platform
- Instagram: data, comments, transcript, audio
- TikTok: data, comments, transcript, audio
- YouTube: data, comments, transcript

Credits
- 0.03 credits per successful request. If no data is returned, no credits are deducted.

When to use
Use this endpoint when you have a specific post ID and need to go deeper than profile-level data. Typical use cases: brand safety review, transcript extraction for content analysis, pulling comment threads, and engagement deep-dives on individual posts.

Result format
The result field returns a platform-specific object:
- data — post metadata and engagement stats (likes, views, shares)
- comments — paginated comment list; use pagination_token to fetch the next page
- transcript — spoken text extracted from the video
- audio — audio resource reference (Instagram and TikTok only)

## Account credits & usage

Account-level endpoints (credits, usage).

### Check account credits and usage details

 - [GET /public/v1/accounts/credits/](https://docs.influencers.club/openapi/account-credits-and-usage/account_credits_usage_retrieve.md): Use your API key to check your remaining credits and total credits used.

Response fields
- credits_available — remaining credits
- credits_used — total credits consumed

Credits
- 0 credits

## API Keys

API keys are the Bearer credentials used to authenticate requests to the public API. They are the preferred method for machine-to-machine integrations — scripts, backend services, and direct server-to-server calls where no user interaction is needed.

You can hold multiple active API keys simultaneously — useful for separating credentials across environments or applications. Each key can be revoked individually without affecting the others.

Pass the key in the `Authorization` header as `Bearer <YOUR_API_KEY>`.

### List API keys

 - [GET /public/v1/accounts/tokens/](https://docs.influencers.club/openapi/api-keys/public_v1_accounts_tokens_list.md): Returns all API keys for the authenticated user, including inactive ones. Each response object includes the raw token value and the active field indicating current status.

### Create API key

 - [POST /public/v1/accounts/tokens/](https://docs.influencers.club/openapi/api-keys/public_v1_accounts_tokens_create.md): Creates a new API key. The token value is included in the response.

### Update API key

 - [PATCH /public/v1/accounts/tokens/{token_id}/](https://docs.influencers.club/openapi/api-keys/public_v1_accounts_tokens_partial_update.md): Update an API key's label, active status, expiration date, or scopes. Pass null for expires_at to remove expiration.

### Delete API key

 - [DELETE /public/v1/accounts/tokens/{token_id}/](https://docs.influencers.club/openapi/api-keys/public_v1_accounts_tokens_delete.md)

## OAuth

OAuth 2.0 Authorization Code flow with PKCE, the recommended approach for connecting apps and services that act on behalf of a user. Desktop and CLI applications use this flow to obtain a token tied to a specific user's account without ever handling their password.

Call order:
1. **Register** (`POST /oauth/register/`) — obtain a `client_id` (one-time, no auth required).
2. **Authorize** (`GET /oauth/authorize/`) — open the browser to the consent URL. The user approves the consent screen in the dashboard.
3. **Token** (`POST /oauth/token/`) — exchange the authorization code + PKCE verifier for an access token.

The access token is used as a Bearer credential in the `Authorization` header, the same way as an API key.

### Register OAuth client (DCR)

 - [POST /public/v1/oauth/register/](https://docs.influencers.club/openapi/oauth/public_v1_oauth_register_create.md): Open endpoint — no authentication required. Desktop/CLI apps call this once to obtain a client_id they persist locally and reuse for all future authorize flows.

### Initiate OAuth authorization

 - [GET /public/v1/oauth/authorize/](https://docs.influencers.club/openapi/oauth/public_v1_oauth_authorize_list.md): OAuth 2.1 authorization endpoint. The client opens the browser at this URL; valid requests are redirected to the frontend consent page where the user approves access.

### OAuth token endpoint

 - [POST /public/v1/oauth/token/](https://docs.influencers.club/openapi/oauth/public_v1_oauth_token_create.md): Accepts application/x-www-form-urlencoded or application/json.

authorization_code grant: grant_type, code, code_verifier, client_id, redirect_uri

refresh_token grant: grant_type, refresh_token, client_id

### List connected OAuth apps

 - [GET /public/v1/oauth/apps/](https://docs.influencers.club/openapi/oauth/public_v1_oauth_apps_list.md): Returns all OAuth apps the authenticated user has authorized.

### Disconnect OAuth app

 - [DELETE /public/v1/oauth/apps/{app_id}/](https://docs.influencers.club/openapi/oauth/public_v1_oauth_apps_delete.md): Revokes the user's authorization for the given app and deactivates all associated access tokens.

