# Frevia Freelance > A freelance marketplace (services/gigs, jobs, escrow payments in USD/MYR). AI agents can search services, place orders for a user, message sellers and track delivery. ## For agents - MCP server (Streamable HTTP): https://freviafreelance.com/mcp — send `Authorization: Bearer fvk_…` to act for a user; search works without a key. - REST API: https://freviafreelance.com/api/v1 — OpenAPI: https://freviafreelance.com/api/v1/openapi.json - Get a key: https://freviafreelance.com/settings/api-keys - Docs: https://freviafreelance.com/developers ## Rules - Never ask users for card or bank details. create_order returns a payUrl; the user pays on Frevia (card, PayPal or DuitNow). - Payment is held in escrow until the buyer accepts the delivery. Only call accept_delivery when the user confirms. - Keep all communication on Frevia; sharing contact details off-platform is blocked. ## Tools - list_categories (GET /api/v1/categories) [public]: All Frevia Freelance service categories (slug + name). Use a slug as the `category` filter in search_services or search_jobs. - search_services (GET /api/v1/services) [public]: Search live freelance services. Returns price (from), fastest delivery, seller, rating and a link. Then call get_service for packages and extras. - get_service (GET /api/v1/services/{id}) [public]: Full details of one live service: description, Basic/Standard/Premium packages (price, delivery days, revisions), paid extras (by index), FAQ, requirement questions, seller and recent reviews. - search_jobs (GET /api/v1/jobs) [public]: Search jobs that clients have posted (for freelancers looking for work). - whoami (GET /api/v1/me) [key: read]: The Frevia account this API key acts for: name, roles and the key's scopes. - create_order (POST /api/v1/orders) [key: order]: Place an order for a service package (and optional extras). The order starts as awaiting_payment and the response has a payUrl: give that link to the user so they pay securely on Frevia (card, PayPal or DuitNow). Agents never handle card details. Money is held in escrow until the user accepts the delivery. - list_orders (GET /api/v1/orders) [key: read]: Orders where this account is the buyer (as=client) or the seller (as=freelancer). - get_order (GET /api/v1/orders/{id}) [key: read]: One order with its timeline and deliveries (messages, links). - submit_requirements (POST /api/v1/orders/{id}/requirements) [key: order]: Buyer: send the brief/answers the seller needs to start. - accept_delivery (POST /api/v1/orders/{id}/accept) [key: order]: Buyer: accept a delivered order. This completes it and releases the escrowed payment to the seller — only do this when the user has confirmed they are happy. - request_revision (POST /api/v1/orders/{id}/revision) [key: order]: Buyer: ask the seller to change a delivered order (uses one of the package's revisions). - deliver_order (POST /api/v1/orders/{id}/deliver) [key: work]: Seller: deliver work on an in-progress order with a message and up to 10 links. - submit_proposal (POST /api/v1/jobs/{id}/proposals) [key: work]: Freelancer: apply to an open job with a cover letter, bid and delivery time. - contact_seller (POST /api/v1/services/{id}/contact) [key: message]: Start (or continue) a conversation with the seller of a service before ordering, and send a first message. - list_conversations (GET /api/v1/conversations) [key: read]: Inbox: conversations with last message and unread count. - get_conversation (GET /api/v1/conversations/{id}) [key: read]: All messages in one conversation (marks it read). - send_message (POST /api/v1/conversations/{id}/messages) [key: message]: Reply in a conversation. Sharing phone numbers, emails or off-site payment details is blocked by marketplace rules. - save_service (POST /api/v1/services/{id}/save) [key: read]: Heart (save) or un-save a service in the user's list. - list_saved (GET /api/v1/saved) [key: read]: Services the user has saved (hearted).