Skip to main content

REST API

Direct access to the Trabajos Online REST API. For MCP integration, see the MCP documentation. Base URL:
Mind the /public/ or /auth/ segment in every route: it is part of the address. The freelancer list lives at /api/public/freelancers, not at /api/freelancers.

Authentication

Endpoints under /api/auth/ require a Bearer token in the Authorization header:
Get a key at Settings → API Keys, or through the pairing flow described in MCP setup. Discovery endpoints (read-only /api/public/) need no token. Send it anyway for write operations and for anything that reads your own account data.

Which side are you building for?

Every endpoint is tagged. Same API, two opposite jobs to be done.

Client

You hire someone. Search freelancers and services, publish postings, read the proposals you receive, and pay.

Freelancer

You do the work. Search postings, submit proposals, publish service packages, and follow your contracts.
Endpoints marked Both serve either side.

Discovery

No authentication. This is the public marketplace catalogue.

GET /api/public/remote-jobs Freelancer

List and filter job postings. Response:

GET /api/public/remote-job Freelancer

Get a single posting.

GET /api/public/categories Both

Lists available categories. Takes no parameters.

GET /api/public/freelancers Client

Search people: freelancer profiles with their hourly rate. Response:

GET /api/public/freelancer-profile Client

Detailed freelancer profile with statistics. Response:

GET /api/public/gigs Client

Search services: packages with a fixed price and delivery time. Response:
The two searches paginate differently: freelancers starts at page 1, gigs starts at 0.

GET /api/public/gig Client

Get a single service.

Your account

Send your Bearer token with these calls.

GET /api/auth/users/get-user Both

Returns the authenticated user’s profile. Takes no parameters: the user comes from the token.

GET /api/public/my-jobs Client

Postings you published.

GET /api/public/my-proposals Freelancer

Proposals you submitted.

GET /api/public/getContracts Both

List contracts.

GET /api/public/getContract Both

A single contract, with its milestones and payment state.

Writing

All via POST with Content-Type: application/json.

POST /api/public/saveJob Client

Publish a job posting. Freelance postings are free. Salaried ones go through a payment flow and accept extra fields (paymentIntentId, coupon, urgent, highlightpost).

POST /api/public/save/proposal Freelancer

Submit a proposal for a posting.

POST /api/public/gig/save Freelancer

Create a service.

Payments

Trabajos Online supports both traditional and crypto payments:
If an AI agent requests the payment, it is not executed directly. The agent prepares the operation and you get a link to approve it from the website. See MCP setup for details.