Welcome to OutXAI API!
OutXAI API is the starting point on your journey towards building powerful Social Monitoring Systems. With OutXAI you can get all the data you need to build an efficient application while also saving your time and budget.
Our API currently supports three core endpoints:
Ready to get started? Check out our detailed endpoint documentation below.
Create Watchlist API provides you a way to Create your watchlists once you have the Keywords Defined.
All POST data should be sent in the JSON format (UTF-8 encoding).
You can add multiple keyword in the keywords array in your watchlist which you want to track.
curl -X POST "https://cafqluqomuhgtchexldv.supabase.co/functions/v1/api-watchlist"
-H "x-api-key: YOUR_TEAM_API_KEY_HERE"
-H "Content-Type: application/json"
-d '{
"keywords": [
{
"keyword": "artificial intelligence",
"required_keywords": ["business", "enterprise"],
"exclude_keywords": ["gaming", "entertainment"]
},
"machine learning"
],
"name": "Enterprise AI Watchlist",
"description": "Track enterprise AI and ML discussions"
}'
Authentication
Essential Parameters:
Parameter | Type | Description |
---|---|---|
keywords | array | Array of keywords to track. Can be simple strings or detailed keyword objects. |
Optional Parameters:
Parameter | Type | Description |
---|---|---|
name | string | Custom name for the watchlist. If not provided, it is auto-generated from the keywords. |
description | string | Description for the watchlist. Used for metadata. |
Request Body Examples
Simple:
{
"keywords": ["artificial intelligence", "machine learning", "AI"]
}
Advance:
{
"keywords": [
{
"keyword": "artificial intelligence",
"required_keywords": ["technology", "innovation"],
"exclude_keywords": ["science fiction", "movies"]
},
{
"keyword": "machine learning",
"required_keywords": ["data"],
"exclude_keywords": ["gaming"]
}
]
}
{
"keywords": ["blockchain", "cryptocurrency", "web3"],
"name": "Crypto Trends Watchlist",
"description": "Track latest trends in blockchain and cryptocurrency"
}
Success (200) - New Watchlist Created
{
"id": "uuid-string",
"name": "Crypto Trends Watchlist",
"slug": "crypto-trends-watchlist-abc123",
"keywords": ["blockchain", "cryptocurrency", "web3"],
"created": true,
"results": [
{
"success": true,
"keyword": "blockchain",
"keyword_id": "uuid-string"
},
{
"success": true,
"keyword": "cryptocurrency",
"keyword_id": "uuid-string"
},
{
"success": false,
"keyword": "web3",
"error": "Failed to create keyword tracking"
}
]
}
Response Fields Description
Field | Type | Description |
---|---|---|
id | string | Unique watchlist identifier in UUID format* |
name | string | Custom or auto-generated name of the watchlist. |
slug | string | URL-friendly slug for the watchlist. |
keywords | array | List of keywords associated with the watchlist. |
created | boolean | Indicates whether the watchlist was successfully created. |
results | array | Array of keyword creation results. Each entry includes success/failure for individual keywords. |
Inside results array Fields description
Field | Type | Description |
---|---|---|
success | boolean | Status of keyword creation (true if created successfully, false otherwise). |
keyword | string | The keyword that was processed. |
keyword_id | string | Unique identifier for the keyword (UUID). Returned only if success = true. |
error | string | Error message if the keyword could not be created. Returned only if success = false. |
Status Code | Error Message | Description |
---|---|---|
400 | "keywords array is required and must not be empty" | The keywords parameter is missing or empty. |
401 | "Unauthorized: Invalid API key" | Authentication failed due to an invalid or missing API key. |
500 | "Database error message" | Internal server error occurred while processing the request. Contact OutXAI |
Provide a Watchlist ID to retrieve the posts associated with one or more watchlists.
Once the request is processed, the response will include the watchlist details along with the corresponding posts.
curl -X GET "https://cafqluqomuhgtchexldv.supabase.co/functions/v1/api-posts?watchlist_id=<Watchlist_ID>"
-H "x-api-key: YOUR_TEAM_API_KEY_HERE"
Multiple watchlist_id Curl
curl -X GET "https://cafqluqomuhgtchexldv.supabase.co/functions/v1/api-posts?watchlist_id=<Watchlist_ID1>,<Watchlist_ID2>,<Watchlist_ID3>¤t_page=1&lang=true"
-H "x-api-key: YOUR_TEAM_API_KEY_HERE"
Required Parameters
Field Name | Type | Description |
---|---|---|
watchlist_id | string / array | Watchlist ID(s). Use comma-separated values for multiple IDs. |
Optional Parameters
Field Name | Type | Description |
---|---|---|
current_page | number | Page number for pagination. Default: 1. |
sort_by | string | Sort order. Allowed values: "recent_first", "popular_first". |
is_saved | boolean | Filter for bookmarked posts only. Values: true, false. |
lang | string | Language filter. Use "true" for English posts only. |
start_date | string | Date range start. Format: YYYY-MM-DD. |
end_date | string | Date range end. Format: YYYY-MM-DD. |
post_type | string | Post type filter Values: person, company, job_update and birthday_update |
trending | boolean | Filter for posts with 100+ likes. Values: true, false. |
interacted | boolean | Filter for posts you've liked or commented on. Values: true, false. |
seniority_level | string | Filter by author's seniority level. |
labels | array | Filter by tags. Use comma-separated values. Special value: "no labels" for posts without tags. |
{
"data": [
{
"id": "string",
"linkedin_post_url": "string",
"tracking_lists_id": "string",
"content": "string",
"image_url": "string",
"image_text": "string",
"author_name": "string",
"author_url": "string",
"created_at": "2024-01-01T00:00:00Z",
"posted_at": "2024-01-01T00:00:00Z",
"likes_count": 0,
"shares_count": 0,
"influence_score": 0,
"sentiment": "string",
"comments_count": 0,
"bookmark": false,
"post_type": "string",
"language": "string",
"tags": ["tag1", "tag2"],
"commented": false,
"author_headline": "string",
"author_image_url": "string",
"image_urls": ["url1", "url2"],
"videos": null,
"seniority_level": "string",
"liked": false,
"tagDescriptions": [
{
"tag": "string",
"description": "string"
}
]
}
],
"count": 100
}
Response Field
Field | Type | Description |
---|---|---|
data | array | Array of LinkedIn post objects returned in the response. |
count | number | Total number of posts matching the query. |
Inside data array (Post Object)
Field | Type | Description |
---|---|---|
id | string | Unique identifier for the post. |
linkedin_post_url | string | Direct URL to the LinkedIn post. |
tracking_lists_id | string | Identifier of the watchlist or tracking list associated with this post. |
content | string | Text content of the post. |
image_url | string | Primary image URL of the post (if any). |
image_text | string | Extracted text from the post image (OCR). |
author_name | string | Name of the author. |
author_url | string | URL of the author’s LinkedIn profile. |
created_at | string | Date/time when the record was created in the system (ISO 8601). |
posted_at | string | Date/time when the post was published on LinkedIn (ISO 8601). |
likes_count | number | Number of likes the post has received. |
shares_count | number | Number of times the post has been shared. |
influence_score | number | Calculated influence score for the post. |
comments_count | number | Number of comments on the post. |
bookmark | boolean | Whether the post is bookmarked by the user. |
post_type | string | Type of post (text, image, video, etc.). |
language | string | Language of the post. |
tags | array | List of tags assigned to the post. |
commented | boolean | Whether the authenticated user has commented on the post. |
author_headline | string | Headline/job title of the post author. |
author_image_url | string | Profile image URL of the author. |
image_urls | array | List of all image URLs in the post. |
videos | array/null | List of video URLs in the post (if any). |
seniority_level | string | Seniority level of the post author. |
liked | boolean | Whether the authenticated user has liked the post. |
tagDescriptions | array | Array of tag objects with additional details. |
Inside tagDescriptions array
Field | Type | Description |
---|---|---|
tag | string | The tag name. |
description | string | Description of the tag. |
Status Code | Error Message | Description |
---|---|---|
400 | "Missing or invalid watchlist_id parameter" | The watchlist_id parameter is missing or invalid. |
403 | "Access denied: You don't have permission to access these watchlists" | User does not have permission to access the specified watchlist(s). |
500 | "Internal server error" | Generic server-side error occurred while processing the request. Contact support @OutXAI |
Update Watchlist API allows you to modify an existing watchlist.
You can update several properties of the watchlist, such as:
All PUT data should be sent in the JSON format (UTF-8 encoding).
This endpoint is designed to help you maintain flexibility and keep your watchlists up to date as your monitoring needs evolve.
curl -X PUT "https://cafqluqomuhgtchexldv.supabase.co/functions/v1/api-watchlist"
-H "x-api-key: YOUR_TEAM_API_KEY_HERE"
-H "Content-Type: application/json"
-d '{
"id": "your-watchlist-id",
"fetchFreqInHours": 6
}'
Authentication
x-api-key: “YOUR TEAM API KEY HERE”
Essential Parameters
Parameter | Type | Description |
---|---|---|
id | string | The unique ID of the watchlist to update. |
Optional Parameters
Parameter | Type | Description |
---|---|---|
name | string | New name for the watchlist. Cannot be empty. |
fetchFreqInHours | number | Fetch frequency in hours. Allowed values: 1, 3, 6, 12, 24, 48, 72. |
disable | boolean | Disable or enable the watchlist. Values: true (disabled), false (enabled). |
Retrieve your UUID-string from POST Watchlist response
{
"id": "uuid-string",
"name": "Updated Name",
"fetchFreqInHours": 12,
"disable": false
}
Success (200) – Watchlist Updated
{
"id": "uuid-string",
"name": "Updated Name",
"fetchFreqInHours": 12,
"disable": false,
"updated": true,
"message": "Watchlist updated successfully"
}
Field | Type | Description |
---|---|---|
id | string | Unique watchlist identifier (UUID). |
name | string | Updated name of the watchlist. |
fetchFreqInHours | number | Frequency (in hours) at which the watchlist fetches new data. |
disable | boolean | Indicates whether the watchlist is disabled (true) or active (false). |
updated | boolean | Whether the update action was successful. |
message | string | Confirmation message about the update status. |
Status Code | Error Message | Description |
---|---|---|
400 | "id is required" | The id parameter is missing. |
401 | "Unauthorized: Invalid API key" | Authentication failed due to an invalid or missing API key. |
500 | "Database error message" | Internal server error occurred while processing the request. Contact support @OutXAI |
For more information about the OutXAI API, feel free to contact us at support@outx.ai.