Discovery (Nexium) API
Build discovery profiles, manage squads, post opportunities, and collaborate via the Emberly Nexium API.
Nexium is Emberly's team collaboration and talent discovery layer. The Discovery API lets you manage your public profile, skills, portfolio signals, squads, opportunities, and applications.
All Discovery endpoints require a session cookie (authenticated browser session). Squad file uploads use a squad upload token — see Squad Tokens.
Overview
| Resource | Description |
|---|---|
| Profile | Your public Nexium profile (bio, skills, signals) |
| Skills | Technology/skill tags on your profile |
| Signals | Portfolio links and GitHub repos |
| Squads | Teams with shared storage, roles, and workspaces |
| Opportunities | Job posts, bounties, and project requests |
| Applications | Apply to opportunities |
| Invites | Squad membership invitations |
Discovery Profile
GET /api/discovery/profile
Get your own Nexium discovery profile.
Response (200):
POST /api/discovery/profile
Create your discovery profile.
Request Body:
PUT /api/discovery/profile
Update your discovery profile.
Request Body (all optional):
DELETE /api/discovery/profile
Delete your discovery profile (removes it from public search).
GET /api/discovery/profile/[username]
Public profile lookup by username. No authentication required.
Response (200):
Skills
GET /api/discovery/skills
List your skills.
POST /api/discovery/skills
Add a skill, bulk-replace all skills, or reorder existing skills.
Add a skill:
Bulk replace:
Reorder:
DELETE /api/discovery/skills/[id]
Remove a specific skill from your profile.
Signals
Signals are portfolio entries — GitHub repositories, live URLs, YouTube videos, etc.
GET /api/discovery/signals
List your portfolio signals.
POST /api/discovery/signals
Add a signal or reorder existing ones. GitHub URLs are automatically validated via the GitHub API.
Add a signal:
Reorder:
DELETE /api/discovery/signals/[id]
Remove a specific signal.
GET /api/discovery/repos
List GitHub repositories from your linked GitHub account (OAuth token required — link GitHub under Settings → Linked Accounts).
Response (200):
Opportunities
Opportunities are public listings for jobs, bounties, freelance work, or open-source projects.
GET /api/discovery/opportunities
List open opportunities.
Query Parameters:
type— Filter byjob,bounty,freelance,opensourceskill— Filter by required skill namemine=true— List only opportunities you posted (requires auth)
Response (200):
POST /api/discovery/opportunities
Create a new opportunity (requires a Discovery profile).
Request Body:
GET /api/discovery/opportunities/[id]
Get a specific opportunity. Public — no auth required.
PUT /api/discovery/opportunities/[id]
Update an opportunity (poster only).
DELETE /api/discovery/opportunities/[id]
Remove an opportunity (poster only).
Applications
GET /api/discovery/opportunities/[id]/apply
List applications for an opportunity (poster only).
POST /api/discovery/opportunities/[id]/apply
Apply to an opportunity. Requires a Discovery profile.
Request Body:
Response (201):
GET /api/discovery/applications
List all opportunities you have applied to.
Squads
Squads are teams with shared storage, custom domains, upload tokens, and role-based access.
GET /api/discovery/squads
List all public squads.
Query Parameters:
skill— Filter by skillstatus— Filter by statusmine=true— List only squads you are a member of
POST /api/discovery/squads
Create a new squad.
Request Body:
Response (201):
GET /api/discovery/squads/[id]
Get squad details. Public squads are accessible without auth.
PUT /api/discovery/squads/[id]
Update squad info (owner only).
DELETE /api/discovery/squads/[id]
Disband a squad (owner only). Deletes all squad data.
Squad Members
GET /api/discovery/squads/[id]/members
List squad members (members only).
Response (200):
POST /api/discovery/squads/[id]/members
Join a squad, add a member, kick a member, or change a member's role.
Join a public squad:
Add a member (owner):
Kick a member (owner):
Change role (owner):
Available roles: OWNER, ADMIN, EDITOR, VIEWER
Squad Invites
GET /api/discovery/squads/[id]/invites
List pending invites for a squad (owner only).
POST /api/discovery/squads/[id]/invites
Send an invite to a user (owner only).
Request Body:
DELETE /api/discovery/squads/[id]/invites/[inviteId]
Revoke a pending invite (owner only).
GET /api/discovery/invites
List your pending incoming squad invites.
GET /api/discovery/invites/[token]/accept
Accept a squad invite via the email link token. Redirects with result.
GET /api/discovery/invites/[token]/decline
Decline a squad invite. Notifies the squad owner.
Squad Tokens
Squad upload tokens let members upload files attributed to the squad (not their personal account).
GET /api/discovery/squads/[id]/token
Get the squad upload token (owner only). Token is displayed with a masked prefix.
POST /api/discovery/squads/[id]/token
Rotate the squad upload token (owner only). Previous token is immediately invalidated.
Squad API Keys
API keys provide programmatic access to squad operations (separate from the upload token).
GET /api/discovery/squads/[id]/keys
List API keys for the squad (members can see prefix only, not full key).
POST /api/discovery/squads/[id]/keys
Create a new API key (owner only). The full key is shown only once.
Response (201):
Copy the API key immediately — it is shown only once and cannot be retrieved afterward.
DELETE /api/discovery/squads/[id]/keys/[keyId]
Revoke an API key (owner only).
Squad Storage
GET /api/discovery/squads/[id]/quota
Get the squad's storage quota and current usage (members only).
Response (200):
Squad Custom Domains
GET /api/discovery/squads/[id]/domains
List custom domains configured for the squad (members only).
POST /api/discovery/squads/[id]/domains
Add a custom domain to the squad (owner only).
Request Body:
DELETE /api/discovery/squads/[id]/domains/[domainId]
Remove a squad domain (owner only).
Squad ShareX Config
GET /api/discovery/squads/[id]/sharex
Download a ShareX .sxcu config pre-configured with the squad upload token and domain (members only). See ShareX Integration.
Related
- Teams & Squads User Guide
- Files API — personal file uploads
- Domains API — custom domain management