Convex CommunityCCConvex Community
Powered by
JeffWScottJ
Convex Community•6mo ago•
6 replies
JeffWScott

/api/action returning 404

Hello,
I have a convex deployment and I'm trying to send some data to my table using an action from a go program.

From the docs it looks straightforwards but I was having some truouble.

So I set up a simple action that just prints Hello to teh console. This action runs in the dashboard manually.

When I call this function from my go code I get "HTTP error 404: This Convex deployment does not have HTTP actions enabled."

I don't see anywhere to "enable HTTP actions".

this is my action:
// convex/items.ts
export const testHttpActions = action({
    args: {},
    handler: async () => {
        console.log("ACTION!")
    },
});
// convex/items.ts
export const testHttpActions = action({
    args: {},
    handler: async () => {
        console.log("ACTION!")
    },
});


This is my go code code:

...
    url := "https://<removed_from_example>.convex.site/api/action"

    body := map[string]interface{}{
        "path":   "items:testHttpActions",
        "args":   "",
        "format": "json",
    }

    jsonBody, err := json.Marshal(body)
    if err != nil {
        return err
    }

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonBody))
    if err != nil {
        return err
    }
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", CONVEX_API_KEY))

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return err
    }
    defer resp.Body.Close()
...
...
    url := "https://<removed_from_example>.convex.site/api/action"

    body := map[string]interface{}{
        "path":   "items:testHttpActions",
        "args":   "",
        "format": "json",
    }

    jsonBody, err := json.Marshal(body)
    if err != nil {
        return err
    }

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonBody))
    if err != nil {
        return err
    }
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", CONVEX_API_KEY))

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return err
    }
    defer resp.Body.Close()
...


When I google this error or talk to AI about it I get a lot of stuff about setting up "http actions" but that's not what I want to do.

I want to do what's in this documentation:
https://docs.convex.dev/http-api/#functions-api

Can someone help me understand please? I thought this was going to be pretty straightforward by looking at the docs and now i'm just spinning.
Convex HTTP API | Convex Developer Hub
Connecting to Convex directly with HTTP
Convex HTTP API | Convex Developer Hub
Convex Community banner
Convex CommunityJoin
Join the Convex Discord! Explore Convex, the backend platform that keeps your app in sync.
15,138Members
Resources
Recent Announcements

Similar Threads

Was this page helpful?
Recent Announcements
james

Hi @everyone with everything going on today I forgot to post on discord about our EU launch! We have a region in Dublin now! You can start using it immediately, even for folks on the free plan. https://news.convex.dev/we-finally-got-our-eu-visa/ Stay tuned for more regions but also stay tuned for more infra improvements where we improve latency for teams no matter where their servers are located. Just at the tip of the iceberg re all the optimizations we have lined up.

james · 4d ago

Wayne

Hi @everyone happy Monday. Components Authoring [Challenge](https://www.convex.dev/components/challenge) updates! Meet the second batch of community-approved components **Firecrawl Scrape **- Scrape any URL and get clean markdown, HTML, screenshots, or structured JSON - with durable caching and reactive queries. https://www.convex.dev/components/firecrawl-scrape Built by: Gitmaxd **Durable Agents **- A Convex component for building durable AI agents with an async tool loop. https://www.convex.dev/components/durable-agents Built by: Siegfried **Convex Debouncer** - A server-side debouncing component for debouncing expensive operations like LLM calls, metrics computation, or any heavy processing that should only run after a period of inactivity. https://www.convex.dev/components/debouncer Built by: Ilya **DatabaseChat **- A Convex component for adding natural language database queries to your app. https://www.convex.dev/components/database-chat Built by: Nick **Transloadit** - A Convex component for creating Transloadit Assemblies, handling resumable uploads with status, and persisting status/results in Convex. https://www.convex.dev/components/transloadit Built by: Kvz **Loops** - A Convex component for integrating with Loops.so email marketing platform. https://www.convex.dev/components/loops Built by: Bobby The [challenge](https://www.convex.dev/components/challenge) is now ongoing, so keep building, and we'll keep rewarding. Thanks, everyone!

Wayne · 3w ago

Liz C

Hi everyone! Have you ever wanted to get your hands on some convex swag? Well you're in luck! We just launched our Convex swag store. Check it out here ---> https://store.convex.dev/

Liz C · 3w ago

Similar Threads

POST /api/action 404 in 510ms
RonchoRRoncho / support-community
6mo ago
POST /api/auth 404 ???
MartinMMartin / support-community
2y ago
/api/auth 404 (Not Found)
JeremyJJeremy / support-community
10mo ago
youtube api in action
Web Dev CodyWWeb Dev Cody / support-community
17mo ago