🚀 Getting Started
Base URL
All API requests should be made to: https://skwipe.com/api/v1/
🏢 Companies API
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
search |
string | Optional | General search across name, category, city, country, region. Multiple terms are ANDed. |
name |
string | Optional | Filter by company name (case-insensitive, partial match). |
city |
string | Optional | Filter by city (case-insensitive, partial match). |
country |
string | Optional | Filter by country (case-insensitive, partial match). |
region |
string | Optional | Filter by region/state (case-insensitive, partial match). |
category |
string | Optional | Filter by business category, main_category, or sub_category (case-insensitive, partial match). |
main_category |
string | Optional | Filter by main business category (case-insensitive, partial match). |
industry |
string | Optional | Alias for category/main_category search. |
has_email |
boolean ("true"/"false") | Optional | Filter companies that have (or don't have) email addresses. |
has_website |
boolean ("true"/"false") | Optional | Filter companies that have (or don't have) a website. |
has_phone |
boolean ("true"/"false") | Optional | Filter companies that have (or don't have) phone numbers. |
page |
integer | Optional | Page number for pagination (default: 1). Max: 1000. |
page_size |
integer | Optional | Number of results per page (default: 20, max: 100). |
💼 Jobs API
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
search |
string | Optional | General search across job title, description, company, location, industry, and job function. |
job_title |
string | Optional | Filter by job title (case-insensitive, partial match). |
company |
string | Optional | Filter by company name (case-insensitive, partial match). |
location |
string | Optional | Filter by job location (case-insensitive, partial match). |
work_type |
string | Optional | Filter by work type (e.g., "full-time", "part-time", "contract", "internship"). Case-insensitive, exact match. |
industry |
string | Optional | Filter by industry (case-insensitive, partial match). |
experience_level |
string | Optional | Filter by experience level (e.g., "entry", "mid", "senior", "lead", "executive"). Case-insensitive, exact match. |
job_function |
string | Optional | Filter by job function (e.g., "Engineering", "Sales"). Case-insensitive, partial match. |
has_email |
boolean ("true"/"false") | Optional | Filter jobs that have (or don't have) a contact email. |
remote |
boolean ("true"/"false") | Optional | Filter for remote jobs. Looks for "remote" in location, work_type, or description. |
page |
integer | Optional | Page number for pagination (default: 1). Max: 1000. |
page_size |
integer | Optional | Number of results per page (default: 20, max: 100). |
👥 Skwipe Contact API
⚠️ High Credit Cost
Skwipe Contact API endpoints use contact credits which are more expensive. Ensure you have sufficient credits.
Request Body
* At least one identifier is required: linkedin_url
, email
, or
(name
+ company
)
Parameter | Type | Required | Description |
---|---|---|---|
linkedin_url |
string | Optional* | Full LinkedIn profile URL. |
email |
string | Optional* | Email address to enrich. |
name |
string | Optional* | Person's full name (requires company if used). |
company |
string | Optional* | Company name (requires name if used). |
Query Parameters
* At least one search criteria is required: company
, title
,
location
, industry
, or name
.
Parameter | Type | Required | Description |
---|---|---|---|
company |
string | Optional* | Company name to search within. |
title |
string | Optional* | Job title to search for. |
location |
string | Optional* | Geographic location (e.g., "New York", "London, UK"). |
industry |
string | Optional* | Industry to search within. |
seniority |
string | Optional | Seniority level (e.g., "manager", "director", "vp", "cxo", "entry", "senior"). |
department |
string | Optional | Department (e.g., "engineering", "sales", "marketing"). |
name |
string | Optional* | Person's full name or partial name. |
page |
integer | Optional | Page number for pagination (default: 1). |
page_size |
integer | Optional | Number of results per page (default: 25, max: 50). |
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
search_criteria |
object | Required | Main search criteria. E.g., {"company": "Acme Corp", "title": "Engineer"} . Valid
keys: company , title , location , industry , name . |
filters |
object | Optional | Additional filters. E.g., {"seniority": "senior", "skills": ["Python",
"Django"]} . Valid keys: seniority , department , company_size , skills (list). |
📧 Email Finder API
Request Body
* Either linkedin_url
or (first_name
, last_name
, and
company
) are required.
Parameter | Type | Required | Description |
---|---|---|---|
linkedin_url |
string | Optional* | LinkedIn profile URL. |
first_name |
string | Optional* | Person's first name. |
last_name |
string | Optional* | Person's last name. |
company |
string | Optional* | Company name. |
domain |
string | Optional | Company domain (e.g., "company.com"). If not provided, it may be inferred. |
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
email |
string | Required | The email address to verify. |
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
contacts |
array of objects | Required | A list of contact objects. Each object should contain first_name ,
last_name , and company . |
📤 Data Export API
💡 Export Process
Data exports are processed asynchronously. You will receive an export_id
to check the status. Once
completed, you can download the file using the provided download_url
from the status check endpoint.
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
query |
string | Optional | General search query (similar to company search). |
filters |
object | Optional | Object containing filters (e.g., {"city": "London", "has_email": true} ). See
Companies API for filter options. |
format |
string | Optional | Export format: "csv" or "json" (default: "csv"). |
fields |
array | Optional | List of company fields to include in the export (e.g., ["name", "city", "emails",
"website"] ). Defaults to all common fields. |
limit |
integer | Optional | Maximum number of records to export (default: 1000, max: 10,000). |
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
query |
string | Optional | General search query for contacts (e.g., "Sales Manager in Tech"). |
filters |
object | Optional | Object containing filters (e.g., {"company": "Acme", "title": "Engineer"} ). See
Skwipe Contact API search for filter options. |
format |
string | Optional | Export format: "csv" or "json" (default: "csv"). |
fields |
array | Optional | List of contact fields to include (e.g., ["name", "email", "company", "title",
"linkedin_url"] ). |
limit |
integer | Optional | Maximum number of records to export (default: 1000, max: 10,000). |
💳 Billing API
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
credits |
object | Required | An object specifying the number of credits to purchase for each type (e.g., {"search":
1000, "email": 500} ). Minimum purchase amount of $5.00 applies. |
callback_url |
string | Optional | URL to redirect the user to after payment completion (successful or failed). |
🛠️ Utilities API
🪝 Webhooks
Webhook Security
It's recommended to use the secret
provided during webhook creation to verify the signature of
incoming webhook payloads. The signature will be included in the X-Skwipe-Signature
header.
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
url |
string (URL) | Required | The HTTPS URL where webhook payloads will be sent. |
events |
array of strings | Required | A list of event types to subscribe to (e.g., ["credit.low", "export.completed",
"batch.failed"] ). |
secret |
string | Optional | A secret string used to sign webhook payloads. If not provided, one will be generated. Max 64 chars. |
Available Events: credit.low
, credit.exhausted
,
export.completed
, export.failed
, batch.completed
, batch.failed
,
apikey.status_changed
.
⚙️ Batch Processing
Batch Job Lifecycle
Submit a batch job and receive a batch_id
. Poll the status endpoint using this ID. When completed,
results might be delivered via webhook (if configured) or available for download via a URL provided in the status.
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
type |
string | Required | The type of batch job. Valid types: "company_search" , "email_find" ,
"contact_enrich" . |
data_file |
string | Required | URL to a CSV file containing the data for batch processing, or base64 encoded CSV content. Max file size/records apply. |
input_mapping |
object | Optional | For CSV data, maps CSV column headers to required input fields for the job type (e.g.,
{"firstName": "First Name Column", "companyName": "Company"} ). |
output_fields |
array of strings | Optional | Specifies which fields to include in the output results. |
callback_url |
string (URL) | Optional | An HTTPS URL to receive a notification when the batch job is completed or fails. |
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
status |
string | Optional | Filter by job status (e.g., "queued", "processing", "completed", "failed"). |
type |
string | Optional | Filter by job type (e.g., "email_find"). |
page |
integer | Optional | Page number for pagination (default: 1). |
page_size |
integer | Optional | Number of results per page (default: 20, max: 100). |
📊 Analytics API
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
start_date |
string (YYYY-MM-DD) | Optional | Start date for the analytics period. Defaults to 30 days ago. |
end_date |
string (YYYY-MM-DD) | Optional | End date for the analytics period. Defaults to today. |
⚠️ Common Error Responses
Common HTTP Status Codes
🚦 Rate Limiting & Best Practices
📈 Rate Limits by Plan
Rate limits are applied per API key and vary by plan. Default limits for the 'Pro' plan are typically around:
- Per Minute: 1,000 requests
- Per Hour: 10,000 requests
- Per Day: 100,000 requests
Specific endpoints might have stricter limits (e.g., contact enrichment). Refer to the X-RateLimit-*
headers in API responses or the Rate Limit Info utility endpoint.
⚠️ Best Practices for API Usage
- Implement Exponential Backoff: When you receive a
429 Too Many Requests
error, wait for the duration specified in theRetry-After
header (or a default) and then retry. Increase the wait time exponentially for subsequent failures. - Cache Responses: Cache frequently requested data on your end to reduce redundant API calls, especially for data that doesn't change often.
- Use Pagination Efficiently: Request only the number of records you need per page using
page_size
. Avoid excessively deep pagination if possible. - Monitor Credit Usage: Regularly check your credit balance via the Key Info endpoint or Billing API to prevent service interruptions.
- Validate Data Locally: Before making API calls, validate input data on your side to reduce errors and wasted credits on invalid requests.
- Handle Errors Gracefully: Your application should be robust enough to handle various API error responses, including network issues.
- Secure Your API Key: Treat your API key like a password. Do not embed it directly in client-side code or commit it to public repositories.
🛠️ SDK & Integration Examples
While official SDKs are not yet available, here are some basic examples of how to integrate with the Skwipe Data API in popular languages.
📞 Support & Contact
💬 Need Help?
If you have any questions, encounter issues, or need assistance with your integration, please don't hesitate to reach out to our support team.
Email: support@skwipe.com
Documentation: You are currently viewing it! For the latest version, visit docs.skwipe.com/api/v1/
API Status Page: Check real-time service status at status.skwipe.com (requires API key).
Our team strives to respond to all inquiries promptly. Typical response times vary by your API plan:
- Basic Plan: Within 24-48 business hours.
- Professional Plan: Within 12-24 business hours.
- Enterprise Plan: Within 4-8 business hours (includes priority support channels).
For urgent issues, please indicate the urgency in your communication.