The Hog Scrapers API
The Scrapers API from The Hog — 34 operation(s) for scrapers.
The Scrapers API from The Hog — 34 operation(s) for scrapers.
openapi: 3.0.0
info:
title: The Hog Company Search Scrapers API
description: Public API reference for The Hog.
version: '1.0'
contact: {}
servers:
- url: https://developer.thehog.ai
tags:
- name: Scrapers
paths:
/api/v1/platform/scrapers/image/deepfake-detection:
post:
description: Analyze an image for signs of face manipulation. Submit either a public image URL or a multipart image file.
operationId: detectImageDeepfake
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformImageDeepfakeDetectionDto'
multipart/form-data:
schema:
$ref: '#/components/schemas/PlatformImageDeepfakeDetectionDto'
responses:
'200':
description: Image authenticity analysis result.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
$ref: '#/components/schemas/ImageDeepfakeDetectionResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'503':
description: The service is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 503
error: Service Unavailable
message: Service temporarily unavailable.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: Detect image deepfakes
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/finder:
post:
description: Find LinkedIn company URLs from website domains or URLs.
operationId: findLinkedInCompanies
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInFinderDto'
responses:
'200':
description: LinkedIn company URLs found from domains or URLs.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
type: array
items:
$ref: '#/components/schemas/LinkedInFinderResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: Find LinkedIn companies
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/profile:
post:
description: Fetch public profile details for a LinkedIn username.
operationId: getLinkedInProfile
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInProfileDto'
responses:
'200':
description: LinkedIn profile data.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
nullable: true
allOf:
- $ref: '#/components/schemas/LinkedInProfileResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: Get LinkedIn profile
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/company:
post:
description: Fetch public company details for a LinkedIn slug or URL.
operationId: getLinkedInCompany
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInCompanyDto'
responses:
'200':
description: LinkedIn company data.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
nullable: true
allOf:
- $ref: '#/components/schemas/LinkedInCompanyResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: Get LinkedIn company
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/company-posts:
post:
description: Fetch recent posts for a LinkedIn company page.
operationId: listLinkedInCompanyPosts
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInCompanyPostsDto'
responses:
'200':
description: LinkedIn company posts.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
$ref: '#/components/schemas/LinkedInCompanyPostsResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: List LinkedIn company posts
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/profile-posts:
post:
description: Queue a LinkedIn profile posts scrape and poll the returned operation URL for results.
operationId: listLinkedInProfilePosts
parameters:
- name: Idempotency-Key
in: header
description: Optional. Reusing the same key for the same organization returns the existing queued profile-posts operation.
required: false
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInProfilePostsDto'
responses:
'202':
description: Profile posts scrape accepted. Poll the returned operation URL for results.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
$ref: '#/components/schemas/WebCrawlAcceptedResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'503':
description: The service is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 503
error: Service Unavailable
message: Service temporarily unavailable.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: List LinkedIn profile posts
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/keyword-posts:
post:
description: Search LinkedIn posts by keyword.
operationId: searchLinkedInKeywordPosts
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInKeywordPostsDto'
responses:
'200':
description: LinkedIn posts matching a keyword.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
type: array
items:
$ref: '#/components/schemas/LinkedInPostResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: Search LinkedIn posts
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/post-reactions:
post:
description: Fetch reactions for one or more LinkedIn post URLs.
operationId: listLinkedInPostReactions
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInPostUrlsDto'
responses:
'200':
description: LinkedIn post reactions.
content:
application/json:
schema:
type: object
required:
- data
- meta
additionalProperties: false
properties:
data:
type: array
items:
$ref: '#/components/schemas/LinkedInPostReactionResponseDto'
meta:
$ref: '#/components/schemas/PublicResponseMetaDto'
'400':
description: The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 400
error: Bad Request
message: Validation failed
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
errors:
- property: body.query
message: query must be a string
constraints:
isString: query must be a string
'401':
description: Authentication is required.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 401
error: Unauthorized
message: Authentication is required.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'402':
description: The organization does not have enough credits for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 402
error: Payment Required
message: Insufficient credits.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 500
error: Internal Server Error
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
'502':
description: The upstream service could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponseDto'
example:
statusCode: 502
error: Bad Gateway
message: An unexpected error occurred.
path: /api/v1/search
timestamp: '2026-05-21T09:08:10.000Z'
requestId: 506af9b3-01a9-43be-9eb4-8458fe3e4f5b
security:
- AccessKey: []
SecretKey: []
summary: List LinkedIn post reactions
tags:
- Scrapers
/api/v1/platform/scrapers/linkedin/post-comments:
post:
description: Fetch comments for one or more LinkedIn post URLs.
operationId: listLinkedInPostComments
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformLinkedInPostUrlsDto'
responses:
'200':
description: LinkedIn post comments.
content:
application/json:
schema:
type: object
required:
- data
- meta
# --- truncated at 32 KB (184 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/the-hog/refs/heads/main/openapi/the-hog-scrapers-api-openapi.yml