Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Curated for You Companies API
description: '# API Usage Guide
## Overview
The Curated for You API provides endpoints to manage and retrieve
information authentication, curations, companies, and attributes. This
guide will help you understand how to authenticate and interact with
the API effectively. Your permissions are setup beforehand when you
join the organization, for additional permissions please contact your
customer care representative.
## Authentication
The Curated for You API uses OAuth 2.0 Bearer token
authentication. Follow these steps to authenticate your requests:
```bash
curl -X POST ''https://api.curatedforyou.io/api/v1/user/login'' \
-H ''Content-Type: application/x-www-form-urlencoded'' \
--data-urlencode ''username=your_email@example.com'' \
--data-urlencode ''password=your_password''
```
### Use the Token
After a successful login, you will receive a token. This token lasts
for 30 minutes(?). Include the received token in the Authorization header
for all subsequent requests
```bash
curl -G ''https://api.curatedforyou.io/api/v2/endpoint'' \
-H ''Authorization: Bearer ENTER_AUTH_TOKEN_HERE'' \
-H ''accept: application/json''
```
## Get Curation Products Guide
### 1. Get Company Information
Retrieve the companies you have access to:
```bash
curl -G ''https://api.curatedforyou.io/api/v2/companies'' \
-H ''Authorization: Bearer ENTER_AUTH_TOKEN_HERE'' \
-H ''accept: application/json'' \
-d ''projection=code_name'' \
-d ''projection=display_name''
```
In this example, we use projection limit our response to only
`display_name` and the `code_name`.
### 2. Get Curations
Use the found `company_id` to get the curations within that company:
```bash
curl -G ''https://api.curatedforyou.io/api/v2/curations'' \
-H ''Authorization: Bearer ENTER_AUTH_TOKEN_HERE'' \
-H ''accept: application/json'' \
-d ''company_id=ENTER_COMPANY_ID_HERE'' \
-d ''sort_by=created_at:desc'' \
-d ''limit=50'' \
-d ''offset=0'' \
-d ''projection=curation_display_name'' \
-d ''projection=curation_group_number'' \
-d ''projection=curation_description'' \
-d ''projection=export_page_url_handle'' \
-d ''projection=company_product_ids''
```
This example shows the different ways we can return information by
specifying different projections.
### 3. Get Most Recent Snapshot
After finding your specific curation we can query the snapshot that
was exported to determine what information we should be displaying.
The curation_group_number is the important id to use and the
information on how and what was exported can be found in the
`meta_data` field.
```bash
curl -G ''https://api.curatedforyou.io/api/v2/curation_snapshots'' \
-H ''Authorization: Bearer ENTER_AUTH_TOKEN_HERE'' \
-H ''accept: application/json'' \
-d ''company_id=ENTER_COMPANY_ID_HERE'' \
-d ''curation_group_number=CURATION_GROUP_NUMBER_HERE'' \
-d ''sort_by=created_at:desc'' \
-d ''limit=50'' \
-d ''offset=0'' \
-d ''projection=products'' \
-d ''projection=meta_data'' \ # <<< where the last export time is found
-d ''projection=display_name'' \
-d ''projection=created_at''
```'
version: 2.0.1
x-logo:
url: https://app.curatedforyou.io/cfy_logo.png
tags:
- name: Companies
x-displayName: Companies
paths:
/api/v2/companies/:
get:
tags:
- Companies
summary: Get Companies
description: 'This endpoint returns filtered & sorted companies.
AUTHENTICATION (dual-mode):
- Global admin (Clerk or legacy) → all companies.
- Clerk non-admin → companies whose Clerk org the user belongs to (Redis).
- Legacy non-admin → companies from permission_id=3 entries in DB.'
operationId: get_companies_api_v2_companies__get
parameters:
- name: projection
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Fields to return.
title: Projection
description: Fields to return.
example:
- id
- code_name
- display_name
- name: authorization
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Authorization
responses:
'200':
description: Successful Response
content:
application/json:
schema:
title: Response Get Companies Api V2 Companies Get
examples:
default:
summary: Default Response
value:
data:
- code_name: example_company
display_name: Example Company
id: 191
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
x-provenance:
method: harvested
publisher: Curated for You
source: https://api.curatedforyou.io/api/schema.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)